CentOS: не Может добавить маршрут после удаления правила/24 от основной таблицы маршрутизации

Как в заголовке говорится после удаления правила от основной маршрутизации, которая в состоянии, я не могу добавить любой маршрут, пока я не делаю

service network restart 

или

ifup eth0

Воспроизвести проблему:

ip route list table main
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.47 
default via 192.168.2.1 dev eth0 

Я могу удалить и добавить маршрут по умолчанию

#ip route del default
#ip route list
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.47 
#ip route add default via 192.168.2.1

#ip route list
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.47 
default via 192.168.2.1 dev eth0 

Однако, если я удаляю маршрут 192.168.2.0/24, я не могу больше добавлять маршрут.

# ip route del 192.168.2.0/24

# ip route list
default via 192.168.2.1 dev eth0 
# ip route add 192.168.2.0/24
RTNETLINK answers: No such device

# ip route add 192.168.2.0/24 via 0.0.0.0
RTNETLINK answers: No such device
# ip route add 192.168.2.0/24 src 192.168.2.47
RTNETLINK answers: No such device
# ip route list
default via 192.168.2.1 dev eth0 
-1
задан 4 August 2014 в 17:55
2 ответа

Причина в том, что на самом деле у вас есть два элемента таблицы маршрутизации. Сначала есть пункт по умолчанию, который указывает на шлюз 192.168.2.1 в сети 192.168.2.0/24, а затем есть сетевой маршрут для сети интерфейса eth0 (т.е. 192.168.2.0/24).

Если вы удаляете сетевой маршрут активного, он фактически отключает его. В данном конкретном случае удаление маршрута 192.168.2.0/24 означает, что у вас нет удобных интерфейсов для маршрутов, и таким образом добавление маршрутов будет неудачным.

Summa summarum: Вы просто делаете это неправильно или, по крайней мере, в неправильном порядке. Не удаляйте сеть 192.168.2.0/24, если у вас есть активный интерфейс в этой сети

.
2
ответ дан 5 December 2019 в 19:27

Наконец-то я понял, в чем проблема.

В основном, при добавлении маршрута нам также нужно определить границы видимости и прото.

В моем случае причина, по которой я не смог добавить его обратно, заключается в том, что я не определял область видимости. Граница определяла видимость IP в сети. Это мог быть хост, ссылка [ограниченная LAN], глоссальный и т.д.

Так что правильный синтаксис для добавления был бы

ip route add 192.168.2.0/24 via 0.0.0.0 dev eth0 scope link
0
ответ дан 5 December 2019 в 19:27

Теги

Похожие вопросы