У мене є система з двома NIC на ній. Ця машина та кілька супровідних пристроїв будуть переміщені та приєднані до різних локальних мереж або іноді для цього буде використовуватися комутований комутатор.
eth0:
- 10.x.x.x address space
- no internet gateway
- only a few devices
eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet
ppp0 (when used):
- internet access through dialup using KPPP
Я використовую ifconfig для підведення інтерфейсів вгору або вниз (крім, ніж з ppp0, яким керує KPPP).
Якщо я спочатку підберу eth1, він отримує адресу від свого DHCP і отримує шлюз, і це додається до маршрутизації, щоб не виникало проблем з доступом до локальної мережі та Інтернету.
Якщо я виведу eth0 першим або другим, він отримує свою адресу і встановлює шлюз за замовчуванням в межах свого адресного простору (в діапазоні 10.xxx). Якщо я виведу eth0 першим і eth1 другим, шлюз за замовчуванням все ще зберігається в межах 10.xxx.
Отже, незалежно від того, що я роблю, eth0 замінить eth1 і "вимагатиме" шлюз у маршрутизації.
Чи є якийсь спосіб або не допустити, щоб eth0 вимагала шлюзу, або переконатися, що eth1 (якщо вона виведена 2-й) використовує свій шлюз? Або я можу якось розставити пріоритет у рейтингу, який шлюз інтерфейсу слід використовувати над іншими?
Я в основному хочу переконатися, що використовується шлюз адресного простору за замовчуванням eth1, якщо він активний, а якщо ні, то використовується шлюз за замовчуванням ppp0. Я хотів би мати можливість не допустити, щоб eth0 коли-небудь мав шлюз за замовчуванням.
ifconfig
викликає будь-яку взаємодію DHCP. Зазвичай цеifup
буде робити, починаючиdhclient
. Можливо, ваш інтерфейс eth * підводиться під час завантаження системи, скажімо/etc/init.d/network
, або NetworkManager?