Если я хочу заменить стандартные правила маршрутизации dhcp статическими, я должен добавить правило ip route add scope link dev eth0 . Или я получу ошибку: «У Nexthop неверный шлюз».

Вот мои вопросы:
Q1: Что означает «ссылка на область» в ip route?
Q2: Почему необходимо изменить правила dhcp на статические правила?

1 ответ1

2

Эти маршруты - как вы сообщаете ядру Linux, в каких подсетях вы находитесь.

Эта информация не сохраняется в скрытом поле "Моя текущая подсеть" при добавлении IP-адреса; вместо этого он всегда преобразуется в маршрут 'link link' без указания шлюза (также называемый "маршрут устройства" или "интерфейсный маршрут"), и всякий раз, когда ядру необходимо определить, доступен ли какой-либо адрес напрямую, он просто выполняет проверку таблицы маршрутизации. ,

Обычно эти маршруты добавляются автоматически, как только вы настраиваете IP-адрес - например, при запуске ip addr add 192.168.1.5/24 назначается IP-адрес 192.168.1.5 и создается маршрут подсети для 192.168.1.0/24. Поэтому нет необходимости добавлять эти маршруты при обычном использовании.

Но когда вы слепо "удаляете все маршруты", вы также в конечном итоге удаляете эти автоматически созданные маршруты, и проверки "этот адрес в моей подсети" ядра больше не работают. Вот почему вам приходится заново добавлять маршруты вручную.

(Ядро должно выполнить эту проверку во время ip route add потому что шлюзы маршрута (nexthops) должны быть напрямую доступны на том же соединении L2 - они не могут быть позади другого шлюза. То есть шлюз должен быть в вашей подсети.

Области маршрута - это общий механизм для выражения этого ограничения: следующий маршрут нового маршрута должен быть доступен через существующий маршрут с меньшей областью действия. Другими словами, вы должны пройти через локальный хост (область ссылок), прежде чем сможете достичь удаленного хоста (глобальная область).)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .