April 2014

Getting static addresses in a Linux client under NAT and VMware Fusion

I had a client working fine enough with DHCP, but I really want to be able to
consistently ssh into it.

I looked at:

/Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf

and determined that I did not have to modify it to get a static address:

allow unknown-clients;
default-lease-time 1800;                # default is 30 minutes
max-lease-time 7200;                    # default is 2 hours

subnet 172.16.249.0 netmask 255.255.255.0 {
        range 172.16.249.128 172.16.249.254;
        option broadcast-address 172.16.249.255;
        option domain-name-servers 172.16.249.2;
        option domain-name localdomain;
        default-lease-time 1800;                # default is 30 minutes
        max-lease-time 7200;                    # default is 2 hours
        option netbios-name-servers 172.16.249.2;
        option routers 172.16.249.2;
}
host vmnet8 {
        hardware ethernet 00:50:56:C0:00:08;
        fixed-address 172.16.249.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
        option routers 0.0.0.0;
}

I.e., I could use addresses 172.16.249.2 -> 172.16.249.127 for static assignment. (There is a bug in that statement, which is why I am writing this down.)

I always skip the first 20 addresses, so I assigned:

KinSlayer:flexfiles loghyr$ more /private/etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost
172.16.249.1    kinslayer
172.16.249.21   skull
172.16.249.22   kitty

skull to be 172.16.249.21.

I modified skull’s /etc/sysconfig/network:

[root@skull linux]# more /etc/sysconfig/network
# Created by anaconda
HOSTNAME=skull

and /etc/sysconfig/network-scripts/ifcfg-eno16777736

[root@skull linux]# more /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="3e93f225-d48a-4de0-919a-5ef5d1f428e7"
ONBOOT="yes"
HWADDR="00:0C:29:98:83:E7"
PEERDNS="yes"
PEERROUTES="yes"
DEVICE=eno16777736
NM_CONTROLLED=no
IPADDR=172.16.249.21
NETMASK=255.255.255.0
GATEWAY=172.16.249.1
DNS1=172.16.249.1

Disabled Network Mangler and turned on network:

service NetworkManager stop
chkconfig NetworkManager off
yum erase NetworkManager
service network start
chkconfig network on

I tested that I could ssh into and out of skull to my laptop. Fine, job done.

Only DNS wasn’t working the next day:

[root@skull linux]# more /etc/resolv.conf
# Generated by NetworkManager
domain localdomain
search localdomain
nameserver 172.16.249.1

I checked online, and found I should be using 172.16.249.2. Fine, job done.

Well then I couldn’t get to github.com port 22 to get a project update.

Push comes to shove, I should have not assumed that 172.16.249.1 is special
with this NAT. It is not the laptop as far as a DNS server and gateway is concerned.

So I changed this line in /etc/sysconfig/network-scripts/ifcfg-eno16777736:

GATEWAY=172.16.249.2

And restarted the network – now my DNS change was gone (why does service network restart add in the line about “# Generated by NetworkManager” to /etc/resolv.conf ??).

Fine, fixed this line as well:

DNS1=172.16.249.2

And restarted.

Now it all works, I think. 🙂

Getting mail clients to work with domains at Gmail

My work email is Thomas.Haynes@example.org and is actually maintained at gmail.com.

Both Mail.app and mutt have had a hard time configuring for it.

For Mail.app:

  1. Set it up as normal for a Google IMAP account.
  2. Then go to Mail -> Preferences, select the account.
  3. Then on the “Outgoing Mail Server (SMTP):”, select by left click the server
  4. and then “Edit SMTP Server List …”.
  5. Now, select the server again
  6. First you’ll want to change the “Description” to be “Example.org” (this is in the “Account Information”)
  7. Second you will want to select Advanced
  8. Third, change the “User Name:” from “First.Last@gmail.com” to be “First.Last@example.org”

It should work now

For mutt, I followed the directions at Consolify your Gmail with MUTT with the exception of the following line:

set smtp_url = "smtp://yourusername@smtp.gmail.com:587/"

I modified it to be:

set smtp_url = "smtp://First.Last@example.org@smtp.gmail.com:587/"

 

Installing xml2rfc on OSX

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
pip install xml2rfc

yields:

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

error: command 'cc' failed with exit status 1

So try:

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
python get-pip.py
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
pip install xml2rfc

As partially documented here in Ansible Installation -clang: error: unknown argument: ‘-mno-fused-madd’.