Добавление двух шлюзов по умолчанию в файл интерфейсов Debian

10

Это мой интерфейсный файл:

auto eth0
iface eth0 inet static
   address 192.168.1.10
   netmask 255.255.255.0
   gateway 192.168.1.1

auto eth1
iface eth1 inet static
   address 192.168.2.10
   netmask 255.255.255.0
   gateway 192.168.2.1

Если я перезапустить сетевой демон , я получаю эту ошибку: eth1 is not up. Я хочу, чтобы два шлюза по умолчанию достигли того, что указано в принятом ответе на этот вопрос . Вот как должна выглядеть моя таблица маршрутизации:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
default         192.168.2.1     0.0.0.0         UG    0      0        0 eth1
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1

Я получил таблицу выше, используя ifconfigи route add default gwкоманды. Но я хочу сделать это с /etc/network/interfacesфайлом. Как мне это сделать?

Update1:

iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    up ip route del 192.168.1.0/24
    post-up ip route add 192.168.1.0/24 dev eth0 metric 1
    up route add default gw 192.168.1.1 metric 1
nixnotwin
источник
1
Пока вам все равно, как уходит ваш трафик. В Solaris и более ранних версиях Linux это было сделано в режиме Round-Robin
Карлсон,
Ваш интерфейсный файл выглядит правильно. Обычно DHCP сегодня намного удобнее, и именно это я использовал в этих обстоятельствах. Вы можете дать определенным MAC-адресам заданный IP-адрес в настройках DHCP-сервера.
casualunixer
Напомним, что NetworkManager недавно добавил расширенную поддержку метрик маршрутов. Он обрабатывает их автоматически, или вы можете установить их вручную. Это может быть более удобный способ, или вы можете подать запрос функции для вашего инструмента.
Павел Шимерда
Также вы можете добавить подробности о том, почему вы хотите иметь два маршрута по умолчанию. Я могу только догадываться, что два маршрута с разными метриками не будут работать так, как вы ожидаете.
Павел Шимерда
Файл интерфейсов позволяет установить метрику. Не должно быть необходимости добавлять маршруты вручную, используя up и post-up
Госвин фон Бредерлоу

Ответы:

10

Этот / etc / network / interfaces работает для меня на 2.6.32-40 Ubuntu 10.04 LTS:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.254
    post-up route add default gw 192.168.1.1 metric 1
    pre-down route del default gw 192.168.1.1

auto eth1
iface eth1 inet static
    address 192.168.2.10
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.2.254
    post-up route add default gw 192.168.2.1 metric 2
    pre-down route del default gw 192.168.2.1

Я получаю два маршрута по умолчанию:

root@gamla:/etc/network# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    1      0        0 eth0
0.0.0.0         192.168.2.1     0.0.0.0         UG    2      0        0 eth1

Обратите внимание на метрику. Я понял ваш вопрос?

Эли Розенкруфт
источник
Сеть и шлюз, связанные с ним, eth0должны появиться первыми, так как это основная сеть и шлюз. Что выводится netstat -anrили просто routeкоманды в вашей настройке?
nixnotwin
Я отредактировал, добавив метрические параметры, чтобы получить желаемый порядок маршрута. В моей системе есть ряд других интерфейсов, которые я отредактировал из вывода, и мои имена интерфейсов не являются ethX, поэтому я не уверен на 100%, что мое решение будет работать для вас. Попробуйте и дайте мне знать результаты.
Эли Розенкруфт
Добавление метрики для шлюзов по умолчанию работает. Но как я могу добавить метрику для маршрутов? Моя таблица маршрутизации имеет подсеть класса B, которая должна предшествовать моей другой подсети класса A. Указание metric 3из ifmetricпакета debian для меня не сработало.
nixnotwin
1
Ядро хранит метрику, но не использует ее для маршрутизации. Чтобы использовать метрику, вам нужно запустить демон маршрутизации, такой как quagga (был зеброй) или bird.
Эли Розенкруфт
1
@EliRosencruft Можете ли вы привести ссылку PLZ?
drAlberT