Назад | Перейти на главную страницу

Linux: как настроить дополнительный IP-адрес при загрузке?

Приветствую знатоков,

Я настроил здесь симпатичный маленький брандмауэр Linux. У него есть eth1 для внутренней сети (10.0.0. *), и eth2 для внешней сети (65.130.27.69/27). eth0 в настоящее время не используется. (Я, кстати, использую поддельные IP-адреса. Я не знаю, у кого они есть.)

Я сделал и правильно настроил все iptables с помощью DNAT, все работает нормально, и я обновил /etc/sysconfig/iptables. Все хорошо.

Вот где бывает весело. У нас есть несколько IP-адресов, и другой сервер хочет получать трафик порта 80, но на другом IP-адресе. Я добавил правило в iptables, затем добавил вторичный IP в eth2 вот так:

# ip addr  add 65.130.27.70/27  dev eth2  broadcast 65.130.27.79

И это работает:

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 08:00:09:dc:f4:c1 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:a0:c9:03:ac:9b brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.0/8 brd 10.255.255.255 scope global eth1
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:a0:c9:73:7f:97 brd ff:ff:ff:ff:ff:ff
    inet 65.130.27.69/28 brd 65.130.27.79 scope global eth2
    inet 65.130.27.70/28 brd 65.130.27.79 scope global secondary eth2

Теперь устройство eth2 слушает два IP-адреса, 0,69 и 0,70. Все хорошо, работает отлично. Межсетевой экран направляет трафик должным образом, внутренний сервер получает трафик должным образом.

Затем однажды по неизвестным причинам компьютер с брандмауэром был перезагружен. С тех пор, как я установил его изначально, прошло несколько лет, поэтому я полностью забыл об этом дополнительном IP-адресе. Позже люди стали жаловаться на то, что такой-то сервис не работает. Это не сработало, потому что компьютер с брандмауэром вернулся без вторичного IP-адреса, .70 один выше. Итак, я снова добавил его вручную с помощью вышеуказанной волшебной команды.

Вот вопрос: как мне настроить этот компьютер на автоматическое добавление вторичного IP-адреса при загрузке?

Некоторые решения, которые я уже придумал:

Я уже добавил эту волшебную команду в /etc/rc.d/rc.local:

# ip addr  add 65.130.27.70/27  dev eth2  broadcast 65.130.27.79

и я почти уверен, что он сработает, если (или когда) он когда-нибудь снова перезагрузится. Однако я наткнулся на эти документы:

http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/s1-networkscripts-interfaces.html

Следуя примеру внизу с интерфейсом клонирования, я мог бы создать другой файл, /etc/sysconfig/network-scripts/ifcfg-eth2-secondary и вставьте в него одну строчку:

IPADDR=65.130.27.70

Заменит ли это существующий IP-адрес на этом устройстве или добавит еще один? Рекомендуется ли этот метод по сравнению с приведенным выше?

Почему бы мне самому не попробовать? Я не собираюсь возиться с производственной машиной, пока я не настрою для игры еще одну машину с брандмауэром.

Обычно вам нужно создать псевдоним, чтобы один IP был привязан к eth2, а другой - к eth2: 1

Вы бы настроили свои сценарии запуска как таковые

/ и т. д. / sysconfig / сетевые сценарии / ifcfg-eth2
УСТРОЙСТВО = eth2
IPADDR = 65.130.27.69
ONBOOT = да
BOOTPROTO = статический
ТРАНСЛЯЦИЯ = ... и т. Д. И т. Д.


/ и т.д. / sysconfig / сетевые сценарии / ifcfg-eth2: 1
УСТРОЙСТВО = eth2: 1
IPADDR = 65.130.27.70
ONBOOT = да
BOOTPROTO = статический
ТРАНСЛЯЦИЯ = ... и т. Д. И т. Д.