Додавання двох шлюзів за замовчуванням у файл інтерфейсів 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файлом. Як я можу це зробити?

Оновлення1:

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

1
Поки вам не байдуже, як трафік виходить. Для Solaris та більш ранніх версій Linux це робилося в
кругообіг

Ваш файл інтерфейсів виглядає правильно. Зазвичай DHCP набагато зручніший сьогодні, і саме це я використовував у цій обставині. Ви можете надати конкретним MAC-адресам встановлену IP-адресу в налаштуваннях сервера DHCP.
casualunixer

Лише бічна примітка, NetworkManager нещодавно додав більш розширену підтримку показників маршруту. Він обробляє їх автоматично або ви можете встановити їх вручну. Це може бути більш зручним способом, або ви можете подати запит на функцію для свого інструменту.
Павло Шімерда

Також ви можете додати детальну інформацію про те, чому ви хочете мати два маршрути за замовчуванням взагалі. Я можу лише здогадуватися, що два маршрути з різними показниками працюватимуть не так, як ви очікували.
Павло Шимерда

Файл інтерфейсів дозволяє встановити метрику. Не потрібно додавати маршрути вручну, використовуючи вгору та після нього
Госвін фон Бредерлоу

Відповіді:


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

Я відредагував, додавши метричні параметри, щоб отримати бажаний порядок маршруту. У моїй системі є ряд інших інтерфейсів, які я редагував із вихідних даних, а назви моїх інтерфейсів не є etX, тому я не на 100% впевнений, що моє рішення буде працювати для вас. Спробуйте і дайте мені знати результати.
Eli Rosencruft

Додавання метрики до шлюзів за замовчуванням працює. Але як я можу додати показники для маршрутів? У моїй таблиці маршрутизації є підмережа класу B, яка повинна передувати моїй іншій підмережі класу A. Вказання metric 3з ifmetricпакета debian для мене не працювало.
nixnotwin

1
Ядро зберігає показник, але не використовує його для маршрутування. Щоб використовувати метрику, потрібно запустити демон-маршрутизатор, наприклад, квагга (була зебра) або птах.
Елі Розенкруфт

1
@EliRosencruft Ви можете навести посилання PLZ?
drAlberT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.