У меня есть следующий вывод для моего маршрута по умолчанию:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.167.1 0.0.0.0 UG 100 0 0 enp1s0
192.168.167.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
А здесь выбранный маршрут к 8.8.8.8. Пока здесь ничего экстраординарного.
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 192.168.167.1 (192.168.167.1) 0.326 ms 0.465 ms 0.527 ms
2 192.168.1.254 (192.168.1.254) 1.409 ms 1.422 ms 1.429 ms
Когда я активирую VPN, маршрут становится:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.13 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.167.1 0.0.0.0 UG 100 0 0 enp1s0
10.8.0.1 10.8.0.13 255.255.255.255 UGH 0 0 0 tun0
10.8.0.13 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.13 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 tun0
192.168.167.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
213.246.56.21 192.168.167.1 255.255.255.255 UGH 0 0 0 enp1s0
Какое бы значение я ни установил для метрики tun0:
sudo ifmetric tun0 3000
route -n output:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.13 128.0.0.0 UG 3000 0 0 tun0
0.0.0.0 192.168.167.1 0.0.0.0 UG 100 0 0 enp1s0
10.8.0.1 10.8.0.13 255.255.255.255 UGH 3000 0 0 tun0
10.8.0.13 0.0.0.0 255.255.255.255 UH 3000 0 0 tun0
128.0.0.0 10.8.0.13 128.0.0.0 UG 3000 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 3000 0 0 tun0
192.168.167.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
213.246.56.21 192.168.167.1 255.255.255.255 UGH 0 0 0 enp1s0
Выбранный маршрут всегда проходит через интерфейс tun0 :
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 10.8.0.1 (10.8.0.1) 28.510 ms 33.924 ms 33.941 ms
2 ik056002.ikoula.com (213.246.56.2) 33.960 ms
...
Почему ??
Спасибо!
Маршруты обрабатываются от наиболее специфичных к наименее специфичным, если есть два маршрута с одинаковым уровнем специфичности, только тогда проверяется метрика.
Вы используете маршрут -n Формат
, который отстой, IMO, он выглядел бы лучше и был бы более очевидным, если бы вы выполнили ip route show
, вывод которого, вероятно, для вас выглядит следующим образом.
default via 192.168.167.1 dev enp1s0 metric 100
0.0.0.0/1 via 10.8.0.13 dev tun0 metric 3000
128.0.0.0/1 via 10.8.0.13 dev tun0 metric 3000
...
специфичность, поэтому метрика не имеет значения. / 1
более конкретен (на 1 бит), чем маршрут / 0
.
Когда вы смотрите на выход route -n
, вы следует помнить, что вы должны учитывать как 1-й, так и 3-й столбцы. Маршрут - это сетевой адрес и маска.