«Ip route get» показывает неверный IP-адрес источника

8

У меня есть машина с интерфейсом, который имеет два IP-адреса:

inet 192.168.1.15/32 scope global eth0
inet 10.10.118.45/24 brd 10.10.118.255 scope global eth0:hosts4

Если я выполню, например ip -s route get 8.8.8.8, то в соответствии с этим исходящий пакет будет иметь IP-адрес источника 10.10.118.45:

8.8.8.8 via 10.10.118.254 dev eth0  src 10.10.118.45 
    cache  users 1 used 1

Тем не менее, когда я, например, pingили SSHк 8.8.8.8, то исходный IP-адрес 192.168.1.15:

15:19:38.092508 IP 192.168.1.15 > 8.8.8.8: ICMP echo request, id 9135, seq 2, length 64
15:19:38.097962 IP 8.8.8.8 > 192.168.1.15: ICMP echo reply, id 9135, seq 2, length 64

По какой причине в этом случае ip route getне отображается правильный IP-адрес источника?

Мартин
источник
1
Какой выход ip rule list? И для каждой таблицы в списке, что является выходом ip route list table $table?
Хесусаур
1
Что ip route show to match 8.8.8.8говорит?
Цеппелин
2
@Martin ip route getпечатает результат алгоритма выбора маршрутизации и печатает адрес источника из srcполя соответствующей записи таблицы маршрутизации. Однако приложение может привязать адрес к сокету, который затем используется вместо этого в качестве адреса источника в IP-пакетах. См. Выбор адреса источника . Может быть, ваша программа ping делает это? (Есть несколько программ ping; из какого пакета ваша?)
Johan Myréen

Ответы:

1

У машины может быть только один шлюз по умолчанию. Вы можете использовать ping -i, чтобы выбрать, с какого интерфейса вы хотите получить пакет. Из предоставленной вами информации видно, что ваш IP-адрес по умолчанию - 192.168.1.15. 10.10.118.45 представляется псевдонимом. Проверьте свою /etc/networks, /etc/sysconfig/networkа также конфигурацию интерфейса внутри/etc/network-scripts/ifcfg-*

Вот пример вывода аналогичного конфига.

[root@cp-rc ~]# ip route show
default via 192.185.130.1 dev eth0 proto static metric 100
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.9 metric 100
192.185.130.0/24 dev eth0 proto kernel scope link src 192.185.130.90 metric 100
[root@cp-rc ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.185.130.1   0.0.0.0         UG    100    0        0 eth0
10.1.1.0        0.0.0.0         255.255.255.0   U     100    0        0 eth1
192.185.130.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0
digital_chocolate
источник
Добро пожаловать в U & L. Пожалуйста, прочитайте тур , он предоставляет некоторую полезную информацию. Если у вас есть многострочный вывод программы (или код), выделите строки, а затем щелкните {}для более удобочитаемого текста.
Anthon
0

Может быть, это ваш 10.10.118.45/24адрес DHCP? вы можете попробовать удалить статический адрес

klaypez
источник