Приветствую знатоков,
Я настроил здесь симпатичный маленький брандмауэр 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 = статический
ТРАНСЛЯЦИЯ = ... и т. Д. И т. Д.