У меня есть машина с Ubuntu 18.04.
со следующим/etc/network/interfaces
auto ens160
iface ens160 inet static
address 10.16.21.80
gateway 10.16.21.254
netmask 255.255.255.0
dns-nameservers 10.16.15.1 10.16.15.2 127.0.0.53
dns-search eqx.solaredge.com
auto ens160:235
iface ens160:235 inet static
address 10.16.15.235
netmask 255.255.255.0
Каждый раз, когда я перезапускаю машину маршрутизация 10.16.15.0
вернулся к таблице маршрутизации, и я должен удалить ее вручную. Там другой путь состоит в том, чтобы отключить этот маршрут постоянно?
Я выполняю следующую команду каждый раз:
route del -net 10.16.15.0 netmask 255.255.255.0
Я использую /etc/rc.local
чтобы одна машина выполнила эту команду для каждого запуска, но интересно, существует ли некоторый другой путь.
У Вас есть интерфейс в 10.16.15.0/24 сети.
Linux по умолчанию добавит маршрут к любым локальным интерфейсам. Как Вы ожидаете к контактным устройствам на Вашем 10.16.15.0/24 сегменте, если у Вас не будет маршрута для него? Вы хотите, чтобы трафик к 10.16.15.0/24 пошел через 10.16.21.254?
Если так, просто удалите описание интерфейса для auto ens160:235
.
Раздел для удаления был бы
auto ens160:235
iface ens160:235 inet static
address 10.16.15.235
netmask 255.255.255.0
Развернуть ответ немного.
Когда Вы хотите отправить пакет в адрес, Ваша ОС смотрит в своей таблице маршрутизации. Обычно таблица маршрутизации состоит из двух записей: Ваша локальная подсеть, это достижимо непосредственно, и шлюз по умолчанию. Это может содержать любое количество маршрутов как бы то ни было.
Маршруты несут вес, обычно известный как метрика. Это видно в демонстрационном выводе ниже:
default via 10.0.3.1 dev wlan0 proto dhcp metric 600
10.0.3.0/24 dev wlan0 proto kernel scope link src 10.0.3.48 metric 600
Маршруты выбраны на основе самый определенный маршрут, и если два равных маршрута существуют, наименьшая метрика предпочтена. Маршрут по умолчанию действительно 0.0.0.0/0, таким образом, это столь неконкретно, как Вы добираетесь с IPv4. Это означает, что это - маршрут последней инстанции, если никакие другие маршруты не соответствуют!
У Вас есть непосредственно связанный интерфейс с сетевой маской/24, или 255.255.255.0. Это - путь, более конкретный, чем сетевая маска/0, таким образом, независимо от веса, это победит. Трафик, предназначенный для 10.16.15.0/24, будет отправлен непосредственно на ens160:235
интерфейс, без любой маршрутизации.
Это - вероятно, поведение, которое Вы хотите. При присоединении хоста сегмента сети L2 это - потому что Вы хотите, чтобы тот хост общался с другими хостами на том же сегменте без издержек маршрутизации.
Если Вы не хотите это поведение, я предлагаю, чтобы Вы объяснили, почему Вы не хотите его. Это - нестандартное решение, таким образом, это может потребовать сценариев. Надлежащий способ сделать, который должен назвать сценарий или управлять, когда интерфейс произошел.
Но снова, который является, вероятно, не, что Вы хотите.