Выбор маршрута в Linux не использует ожидаемое правило

necesita instalar gir1.2-poppler-0.18no se instala con mat pero mat necesita que se ejecute

0
18.06.2019, 21:05
1 ответ

Во-первых, лучше всего использовать только команды ip, поэтому вы должны были использоватьip route show(или ip rдля краткости )для просмотра таблицы маршрутизации.

В этом случае маршрут через VPN предназначен для 10.0.2.0/255.255.255.192 или 10.0.2.0/26. Это подсеть 0 -63. Ваш пример назначения 10.0.2.70 попадает за пределы этого диапазона, поэтому он не маршрутизируется через VPN, а вместо этого использует следующий -более -конкретный маршрут 10.0..2.0/24, который выше enp0s3.

Вы упомянули «самое длинное совпадение префикса», я обычно слышу «наиболее конкретное совпадение», т.е. где диапазон наименьший, что действительно подразумевает самый длинный префикс. Однако, как указано выше, IP-адрес, который вы тестируете, не попадает в префикс, который, по вашему мнению, входит.

В Debian (и его производных )есть очень полезная утилита netmask, которая может помочь прояснить ситуацию:

$ netmask -r 10.0.2.0/255.255.255.192
       10.0.2.0-10.0.2.63       (64)

Обратите внимание, что ip route showне показывает всей картины, возможно, здесь задействована маршрутизация на основе политики -. Вам также необходимо указать все правила маршрутизации, это обычный вывод:

$ ip rule show
0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 

Затем вы можете перечислить записи маршрутизации в данной таблице таким образом, здесь для «локальной» таблицы:

$ ip route show table local

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

2
28.01.2020, 02:30

Теги

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