У меня есть следующий результат для моего маршрута по умолчанию:
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
маршрут -n вывод:
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
...
Зачем ??
Спасибо !
Маршруты обрабатываются от наиболее специфичных до наименее специфичных. Если есть два маршрута с одинаковым уровнем специфичности, только тогда проверяется метрика.
Вы используете route -n
формат, который отстой, ИМО, он выглядел бы лучше и был бы более очевидным, если бы вы сделали 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-й столбцы. Маршрут - это сетевой адрес и маска.