Когда я вызываю «route PRINT» из командной строки в Windows XP, я получаю (символы? - это IP-адреса, которые я намеренно запутал для публикации):
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.50.1 192.168.50.106 25
0.0.0.0 0.0.0.0 192.168.254.254 192.168.254.64 9999
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.50.0 255.255.255.0 192.168.50.106 192.168.50.106 25
192.168.50.106 255.255.255.255 127.0.0.1 127.0.0.1 25
192.168.50.255 255.255.255.255 192.168.50.106 192.168.50.106 25
192.168.254.0 255.255.255.0 192.168.254.64 192.168.254.64 9999
192.168.254.64 255.255.255.255 127.0.0.1 127.0.0.1 9999
192.168.254.255 255.255.255.255 192.168.254.64 192.168.254.64 9999
207.???.???.??? 255.255.255.255 192.168.50.1 192.168.50.106 1
207.???.???.??? 255.255.255.255 192.168.50.1 192.168.50.106 1
224.0.0.0 240.0.0.0 192.168.50.106 192.168.50.106 25
224.0.0.0 240.0.0.0 192.168.254.64 192.168.254.64 9999
255.255.255.255 255.255.255.255 192.168.50.106 192.168.50.106 1
255.255.255.255 255.255.255.255 192.168.50.106 10006 1
255.255.255.255 255.255.255.255 192.168.50.106 60003 1
255.255.255.255 255.255.255.255 192.168.254.64 192.168.254.64 1
Default Gateway: 192.168.50.1
Когда я звоню
Get-WmiObject Win32_IP4RouteTable | ft Destination, Mask, NextHop, InterfaceIndex, Metric1, Metric2, Metric3
из PowerShell на той же машине с Windows XP, я получаю следующее:
Destination Mask NextHop InterfaceIndex Metric1 Metric2 Metric3
----------- ---- ------- -------------- ------- ------- -------
0.0.0.0 0.0.0.0 192.168.50.1 262146 26 -1 -1
0.0.0.0 0.0.0.0 192.168.254.254 65541 1 -1 -1
127.0.0.0 255.0.0.0 127.0.0.1 1 2 -1 -1
192.168.50.0 255.255.255.0 192.168.50.106 262146 26 -1 -1
192.168.50.106 255.255.255.255 127.0.0.1 1 26 -1 -1
192.168.50.255 255.255.255.255 192.168.50.106 262146 26 -1 -1
192.168.254.0 255.255.255.0 192.168.254.64 65541 1 -1 -1
192.168.254.64 255.255.255.255 127.0.0.1 1 10000 -1 -1
192.168.254.255 255.255.255.255 192.168.254.64 65541 1 -1 -1
224.0.0.0 240.0.0.0 192.168.50.106 262146 26 -1 -1
224.0.0.0 240.0.0.0 192.168.254.64 65541 1 -1 -1
255.255.255.255 255.255.255.255 192.168.254.64 65541 1 -1 -1
255.255.255.255 255.255.255.255 192.168.50.106 262146 2 -1 -1
255.255.255.255 255.255.255.255 192.168.50.106 65542 2 -1 -1
255.255.255.255 255.255.255.255 192.168.50.106 393219 2 -1 -1
192.168.254.64 - это IP-адрес виртуального адаптера для моей VPN. Политика VPN в настоящее время настроена так, что обычный интернет-трафик должен обходить VPN, и показатели, отображаемые маршрутом PRINT, имеют смысл в этом контексте. Виртуальному интерфейсу назначена метрика 9999, поэтому трафик по умолчанию будет использоваться для любого другого доступного интерфейса.
Однако таблица маршрутизации, возвращаемая WMI, показывает метрику как 1. Если я вызываю GetIpForwardTable с помощью API IpHelper, я получаю те же значения, что и с WMI. Кто-нибудь знает, почему эти две таблицы не совпадают?