У меня есть устройства Linux с одним интерфейсом Ethernet и двумя IP-адресами.
Первый (eth0
) статически настроен на 10.1.1.146/24
.
Второй (eth0:1
) настроен через DHCP, и может случиться так, что он получит такой же IP, как 10.1.1.233/16
, означающий, что подсети перекрываются.
Таблица маршрутизации выглядит так:
# ip route show
default via 10.1.1.11 dev eth0
10.1.0.0/16 dev eth0 proto kernel scope link src 10.1.1.233
10.1.1.0/24 dev eth0 proto kernel scope link src 10.1.1.146
Когда два из этих устройств находятся в одной сети, очевидно, что 10.1.1.146
адрес вызывает коллизию и не должен использоваться. Следует использовать адрес DHCP. 10.1.1.146 предназначен для подключения один к одному.
К сожалению, когда вы делаете простые вещи вроде ping 10.1.1.1
или при попытке доступа к Интернету ядро решает использовать IP-адрес ... 146 в качестве источника в такой ситуации. AFAIK, потому что он предпочитает сеть / 24 так как он меньше.
Вопрос: Можно как-то отдать приоритет DHCP подсети (возможно, через некоторые ip
использование команды), даже если есть другая подходящая подсеть?