====== Ubuntu Networking ====== * [[Bonding]] * [[Networking]] * [[ifconfig]] * [[ifenslave]] * [[ifup]] * [[ip]] * [[route]] * [[https://wiki.debian.org/Bonding|Debian wiki - Bonding]] The programs for configuring networking on Ubuntu are ''ifup'' and ''ifdown''. The read their configuration from ''/etc/network/interfaces''. See the man page for ''interfaces''. Also, see ''/usr/share/doc/ifupdown/examples'' directory. Setting ''auto'' for an interface means that it will be brought up either on network start or ''ifup -a''. Lines beginning with the word "auto" are used to identify the physical interfaces to be brought up when ifup is run with the -a option. To make a device even recognized, all that needs to be done is set it to load automatically. This configuration will make the devices available, but not set anything for them: auto eth0 iface eth0 inet manual auto eth1 iface eth1 inet manual == Reload Network Configuration == To use new settings in your ''interfaces'' file, such as a new static IP address, bring the interface down, and back up. ifdown eth0; ifup eth0 === DHCP Client === In the simplest case, getting an address from a DHCP server is easy. Here's an example: auth eth0 iface eth0 auto dhcp Additional options for the ''dhcp'' method: * **hostname** - hostname to be requested * **metric** - metric for added routes (when using dhclient) * **leasehours** - request lease time in hours (when using pump) * **leasetime** - require least time in seconds (when using dhcpcd) * **vendor** - vendor class identifier (dhcpcd) * **client** - client identifier (when using dhcpcd or udhcpc) * **hwaddress** - MAC address === Manual IP Configuration === Use a manual IP when you want the device to be available, but with no instructions attached to it. * **hwaddress ** - link local address * **mtu ** - MTU size === Static IP Address === When setting a static IP address, use ''static'' as the inet type. Here's the other available options: * **address** - static IP address (required) * **netmask** - dotted quad or CIPR format * **broadcast**
* **metric** - routing metric for default gateway (type integer) * **gateway** - default gateway, dotted-quad format * **pointtopoint** - address of other end-point, dotted-quad format * **hwaddress** - MAC address * **mtu** - MTU size * **scope** - Address validity scope. Possible values: global, link, host Here's an example of setting a static IP and manually setting DNS servers to Comcast: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 75.75.75.75 75.75.76.76 Google also offers some public DNS servers: dns-nameservers 8.8.4.4 8.8.8.8 === Bonding === Documentation for bonding in Ubuntu is found in the [[ifenslave]] documentation -- see ''/usr/share/doc/ifenslave''. In this scenario, active-backup bonding is set up, meaning that if the first device specified goes down, the second becomes the active device. The MAC address of the first device will continue to be used. Before anything, the bonding module for the kernel has to be loaded. Once it is, you will have an ethernet device ''bond0'' appear. Also install the ''ifenslave'' package. modprobe bonding Set up the system to load the bonding module on boot, in ''/etc/modules'': bonding You will also need the ''ifenslave'' package installed: apt-get install ifenslave In ''/etc/network/interfaces'', add the configuration for the Ethernet devices that will act as slaves: auto eth0 iface eth0 inet manual bond-master bond0 auto eth1 iface eth1 inet manual bond-master bond0 Once they are added, add the settings for the bonding configuration. In this scenario, the connection is checked very 100 ms. The mode is active-backup, meaning that if one slave fails, the other will take over. After that, you can configure the device as usual. For simplicity's sake, we're using DHCP here: auto bond0 iface bond0 inet dhcp bond-primary eth0 eth1 bond-mode active-backup bond-miimon 100 Load the new networking configuration. To be safe, bring the eth* devices down first: ifconfig eth0 down ifconfig eth1 down ifup bond0