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

сохранение многосетевой настройки при перезагрузках

Прочитав «два шлюза / два провайдера с разными IP-адресами»и статью Clinton East, на которую она ссылается, я успешно настроил многосетевую систему RHEL5. Однако я надеюсь найти лучший способ сохранить это состояние, чем вызов ip rule и ip route команды из rc.local. Есть ли файл конфигурации, который я мог бы отредактировать, который будет читаться при появлении интерфейсов? Возможно, что-то вроде iptables-save и iptables-restore?

Красная Шапка: У меня нет под рукой коробок для проверки, но должно быть что-то вроде /etc/sysconfig/network/routes файл, в котором можно настроить статические маршруты.

SuSE:

$ cat /etc/sysconfig/network/ifroute-eth-id-MAC:
#NETWORK/MASK GATEWAY_IP
192.168.100.0/24 192.168.1.1

Debian:

$ cat /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
up ip route add 192.168.100.0/24 via 192.168.1.1
down ip route del 192.168.100.0/24 via 192.168.1.1

В RHEL есть два места, куда эти вещи, вероятно, должны пойти.

Для добавления статических маршрутов в RHEL вы добавляете их в / etc / sysconfig / network-scripts / route-ИНТЕРФЕЙС где ИНТЕРФЕЙС совпадает с именем ifcfg-ИНТЕРФЕЙС записи. Операторы в файлах route- * будут переданы в ip route add и ip route del когда интерфейс поднят или опущен.

Теперь для ip rule команд, лучшее место, которое я могу придумать, вероятно, будет в /sbin/ifup-local. Если этот файл существует, он запускается после запуска интерфейса. Одно примечание к этому, если /sbin/ifup-local существует, он будет вызван как исполняемый файл и передаст аргумент имени интерфейса. Поэтому вам нужно будет написать код обработчика, чтобы проверить этот аргумент на интерфейсах, для которых вы хотите добавить конфигурации, а затем предпринять соответствующие действия.

Например:

#/bin/bash

case $1 in
  eth0)
    /sbin/ip rule foo
    /sbin/ip rule bar
    ;;
  eth1)
    /sbin/ip rule baz
    /sbin/ip rule quux
    ;;
  *)
    /usr/bin/logger -t 'ifup-local' 'Called with unknown interface:  $1'
    ;;
esac

При желании вы можете включить правила маршрутизации IP для каждого интерфейса в ifup-local, слишком. Если вы хотите удалить соответствующие правила, когда интерфейс не работает, вы можете создать аналогичный /sbin/ifdown-local сценарий, чтобы справиться с этим.

Если бы это был я, хотя RHEL предоставляет стандартизованный способ обработки статических маршрутов, я бы, вероятно, сделал все в ifup-local и ifdown-local, просто чтобы сохранить вместе все специфические для моего интерфейса части.