...
First make sure you know how your current network looks on your server with the already assigned IP address,
ifconfig -a eth0 Link encap:Ethernet HWaddr 00:16:3c:3f:68:7f inet addr:64.73.220.110 Bcast:64.73.220.255 Mask:255.255.255.0 inet6 addr: fe80::216:3cff:fe3f:687f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1677062 errors:0 dropped:952 overruns:0 frame:0 TX packets:11659 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:88552695 (88.5 MB) TX bytes:2706451 (2.7 MB) # you will see more but ignore cat /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # get gateway route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 64.73.220.1 0.0.0.0 UG 0 0 0 eth0 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 lxcbr0 64.73.220.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 # Get name servers, cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 216.15.129.205 nameserver 216.15.129.206 |
Key things to note is your ethernet card device name (usually eth0), mask, gateway and name servers. In this example,
Network Attribute | Value |
---|---|
ethernet card device | eth0 |
mask | 255.255.255.0 |
gateway | 64.73.220.1 |
name servers | 216.15.129.205 |
You may use the ifconfig or ip command. I like the ifconfig as you do not need to calculate the netmask from Dotted Decimal to Bitmask (Bits). I also noticed a difference between the two commands. With the ifconfig, a brd number is added. I have no idea what the brd number is used for. Both approaches do work.
In this example, we will add 64.73.220.110 to the existing ethernet card.
This approach has a brd number,
# syntax with add or del to add or delete the ip # ip address add/del [ip]/[mask-digits] dev [nic] ifconfig eth0:0 64.73.220.117 netmask 255.255.255.0 up # verify new address shows up, ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:16:3c:3f:68:7f brd ff:ff:ff:ff:ff:ff inet 64.73.220.110/24 brd 64.73.220.255 scope global eth0 valid_lft forever preferred_lft forever inet 64.73.220.111/24 brd 64.73.220.255 scope global secondary eth0:0 valid_lft forever preferred_lft forever inet6 fe80::216:3cff:fe3f:687f/64 scope link valid_lft forever preferred_lft forever 3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether fe:33:d8:e0:ef:6b brd ff:ff:ff:ff:ff:ff inet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0 valid_lft forever preferred_lft forever inet6 fe80::b06f:d2ff:fe9d:49be/64 scope link valid_lft forever preferred_lft forever 5: vethHVREWV: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master lxcbr0 state UP group default qlen 1000 link/ether fe:33:d8:e0:ef:6b brd ff:ff:ff:ff:ff:ff inet6 fe80::fc33:d8ff:fee0:ef6b/64 scope link valid_lft forever preferred_lft forever |
This approach results in not brd number and you need to make sure to calculate the netmask from Dotted Decimal to Bitmask (Bits). In this case, 255.255.255.0 = 24,
# syntax with add or del to add or delete the ip # ip address add/del [ip]/[mask-digits] dev [nic] sudo ip address add 64.73.220.111/24 dev eth0 # verify new address shows up, ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:16:3c:3f:68:7f brd ff:ff:ff:ff:ff:ff inet 64.73.220.110/24 brd 64.73.220.255 scope global eth0 valid_lft forever preferred_lft forever inet 64.73.220.111/24 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::216:3cff:fe3f:687f/64 scope link valid_lft forever preferred_lft forever 3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether fe:33:d8:e0:ef:6b brd ff:ff:ff:ff:ff:ff inet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0 valid_lft forever preferred_lft forever inet6 fe80::b06f:d2ff:fe9d:49be/64 scope link valid_lft forever preferred_lft forever 5: vethHVREWV: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master lxcbr0 state UP group default qlen 1000 link/ether fe:33:d8:e0:ef:6b brd ff:ff:ff:ff:ff:ff inet6 fe80::fc33:d8ff:fee0:ef6b/64 scope link valid_lft forever preferred_lft forever |
To make the changes permanent modify the /etc/network/interfaces with the following syntax,
auto [NIC]:[n] iface [NIC]:[n] inet static address [ip.add.rr.ss] gateway [gw.ip.ad.rs] netmask [ne.tm.as.kk] |
Continuing with the example the full file would look like this,
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # Second IP auto eth0:1 iface eth0:1 inet static address 64.73.220.111 gateway 64.73.220.1 netmask 255.255.255.0 |
Best article yet - https://www.garron.me/en/linux/add-secondary-ip-linux.html
# syntax ifconfig [nic]:0 [IP-Address] netmask [mask] upsudo ifconfig eth0:0 64.73.220.110 netmask 255.255.255.0 up