Ubuntu – Internet sharing with static mac-addr to IP mapping

internetip addressnetworking

I can create a network between my ubuntu 14.04 and another machine by connecting ethernet cable between my ubuntu machine and second machine, and then setting "IPv4" to "share to other computers". The network created has IP that's something like 10.42.0.x. I'm doing this not to share internet, but to create a network between two machines, and this works very well.

For the two machines to address each other using hostname, I'd edit their /etc/hosts with respective IPs. I'd like this to be simpler, using MAC to IP mapping that's found in modern routers. What would be the easiest way to accomplish this?

Best Answer

  • Typically, IP address assignment based on MAC is achieved via a DHCP server and its configuration file in /etc/dhcp/dhcpd.conf. The below example reserves a pool of IP addresses for guests, and the rest are assigned based on MAC:

    # The ddns-updates-style parameter controls whether or not the server will
    # attempt to do a DNS update when a lease is confirmed. We default to the
    # behavior of the version 2 packages ('none', since DHCP v2 didn't
    # have support for DDNS.)
    ddns-update-style none;
    # option definitions common to all supported networks...
    default-lease-time 86400;
    max-lease-time 93000;
    option domain-name "xxxxxx.com";
    option domain-name-servers;
    option subnet-mask;
    option broadcast-address;
    option routers;
    # If this DHCP server is the official DHCP server for the local
    # network, the authoritative directive should be uncommented.
    # Use this to send dhcp log messages to a different log file (you also
    # have to hack syslog.conf to complete the redirection).
    log-facility local7;
    # The Basic DHCP allocated addresses
    subnet netmask {
    # Some specifically declared static IP addresses
    host Wireless-R {
      hardware ethernet 00:22:6B:82:01:55;
    host Doug-XPS {
      hardware ethernet 00:23:4d:a6:ed:c4;
    host Doug-XPS {
      hardware ethernet 00:23:4d:a6:ed:c4;
    host Doug-XPS2 {
      hardware ethernet 00:21:9B:F9:21:26;
    host S10 {
      hardware ethernet A0:F3:C1:10:22:EA;

    Alternatively, and if you prefer to use dnsmasq, or are already using it by default, you can specify via MAC in /etc/dnsmasq.conf via:


    Disclaimer: I am actually not familiar with dnsmasq, but the DHCP example is directly from my system.