У меня есть сервер (Ubuntu 14.04), и я хочу назначить эти несколько общедоступных IP-адресов.
Ожидается:
Текущая настройка:
Конфигурация интерфейса (/ etc / network / interfaces):
auto eth0:0
iface eth0:0 inet static
address XXX.XXX.XXX.128
netmask 255.255.255.240
Вы можете указать несколько IP-адресов, просто указав несколько интерфейсов на одном устройстве в файле интерфейсов. Например:
auto eth0
iface eth0 inet static
address 192.168.0.129
netmask 255.255.255.240
iface eth0 inet static
address 192.168.0.130
netmask 255.255.255.240
и так далее. В более старых версиях вам нужно было использовать синтаксис eth0: 0, eth0: 1, eth0: 2 и т. Д. При определении интерфейсов для этого, но я уверен, что 14.04 поддерживает его без.
Другие способы сделать то же самое включают использование строки «вверх» в строфе iface для добавления дополнительных IP-адресов при запуске интерфейса, например:
auto eth0
iface eth0 inet static
address 192.168.0.129
netmask 255.255.255.240
up /sbin/ip address add 192.168.0.130/28 dev eth0
down /sbin/ip address delete 192.168.0.130 dev eth0
Предложение down рекомендуется, чтобы гарантировать, что интерфейс будет полностью отключен, если он когда-либо будет отключен или отключен. Вы можете указать несколько команд вверх или вниз или, возможно, в вашем случае, поскольку у вас есть большой список IP-адресов, которые вы хотите добавить в интерфейс, вызовите сценарий, который использует команду ip для добавления / удаления желаемых IP-адресов.
Имейте в виду, что в указанной вами подсети .128 и .143 зарезервированы как сетевой и широковещательный адреса, поэтому вы не должны назначать их интерфейсу. Вы также не указали шлюз по умолчанию для исходящего трафика. Маска подсети не используется для объявления «Я хочу все эти IP-адреса», это информация о сети, в которой находится интерфейс, позволяющая системе определить, может ли она отправлять трафик напрямую на IP-адрес (если он находится в своем локальном подсеть), либо его необходимо маршрутизировать через шлюз (определенный на интерфейсе с помощью линии «шлюз ABCD»). Вы должны узнать, какова фактическая маска подсети и данные шлюза для вашей сети, если / 28 неточен.
В дополнение к ответу Иана:
Используемый синтаксис (eth0:0
) является устаревшим и не рекомендуется.
Если вы хотите использовать IP-адреса постоянно, используйте следующую информацию как подсказку о том, как использовать /etc/network/interfaces
:
auto eth0
iface eth0 inet static
[insert your current settings]
up ip addr add XXX.XXX.XXX.129/28 dev $IFACE label $IFACE:0
down ip addr del XXX.XXX.XXX.129/28 dev $IFACE label $IFACE:0
up ip addr add XXX.XXX.XXX.130/28 dev $IFACE label $IFACE:1
down ip addr del XXX.XXX.XXX.130/28 dev $IFACE label $IFACE:1
[continue for all your IPs accordingly]
Из кли вы можете использовать ip addr add <ip address/netmask> dev <devicename>
например
ip addr add XXX.XXX.XXX.129/28 dev eth0
Вы можете использовать простой цикл for для перебора последнего октета. Не забывайте также, что x.x.x.128 / 28 имеет только 14 пригодных для использования адресов, поскольку .128 - это сетевой адрес, а .143 - широковещательный, и поэтому не могут использоваться.