У меня есть система с двумя сетевыми картами. Эта машина и несколько сопутствующих устройств будут перемещены и подключены к разным локальным сетям, а иногда будет использоваться модем.
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 (если он установлен 2nd) использует свой шлюз? Или я могу как-то расставить приоритеты в ранжировании того, какой интерфейсный шлюз должен использоваться поверх других?
Я в основном хочу убедиться, что шлюз адресного пространства eth1 используется по умолчанию, если он активен, а если нет, то используется шлюз ppp0 по умолчанию. Я бы хотел, чтобы у eth0 никогда не было шлюза по умолчанию.
ifconfig
приведет к какому-либо взаимодействию DHCP. Как правило,ifup
будет делать это, начинаяdhclient
. Возможно, ваши интерфейсы eth * запускаются процессом загрузки системы, скажем/etc/init.d/network
, или NetworkManager?