У меня есть два IP-адреса, назначенных одному интерфейсу (хост A):
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a4:bf:01:24:f8:7c brd ff:ff:ff:ff:ff:ff
inet 10.10.200.22/24 brd 10.10.100.255 scope global eth1
valid_lft forever preferred_lft forever
inet 10.10.200.155/32 scope global eth1
valid_lft forever preferred_lft forever
и некоторые службы прослушивания 10.10.200.155:80
. Когда я пытаюсь установить telnet-порт 80, соединение зависает (исходный адрес 10.10.201.2
, хост B). tcpdump
на хосте A показывает мне что-то вроде этого (повторение):
# tcpdump -n -i any dst 10.10.200.155
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
21:52:16.894558 IP 10.10.201.2.60262 > 10.10.200.155.80: Flags [S], seq 1239565567, win 29200, options [mss 1460,sackOK,TS val 1965969834 ecr 0,nop,wscale 7], length 0
21:52:17.893363 ARP, Request who-has 10.10.200.155 tell 10.10.200.155, length 28
21:52:17.893732 IP 10.10.201.2.60262 > 10.10.200.155.80: Flags [S], seq 1239565567, win 29200, options [mss 1460,sackOK,TS val 1965970084 ecr 0,nop,wscale 7], length 0
21:52:18.893319 ARP, Request who-has 10.10.200.155 tell 10.10.200.155, length 28
21:52:19.893374 IP 10.10.200.155 > 10.10.200.155: ICMP host 10.10.201.2 unreachable, length 68
21:52:19.893385 IP 10.10.200.155 > 10.10.200.155: ICMP host 10.10.201.2 unreachable, length 68
21:52:19.893393 IP 10.10.200.155 > 10.10.200.155: ICMP host 10.10.201.2 unreachable, length 68
21:52:19.893400 IP 10.10.200.155 > 10.10.200.155: ICMP host 10.10.201.2 unreachable, length 68
21:52:19.897746 IP 10.10.201.2.60262 > 10.10.200.155.80: Flags [S], seq 1239565567, win 29200, options [mss 1460,sackOK,TS val 1965970585 ecr 0,nop,wscale 7], length 0
Некоторое общение достигает 10.10.200.155
но есть странные (?) ARP-запросы от 10.10.200.155
спрашивает себя, это нормально? В фоновом режиме нет другого трафика, поэтому все эти пакеты генерируются по telneting. На хосте А tcpdump
ничего не показывает для tcpdump -n -i any dst 10.10.201.2
. Маршруты для этих адресов:
10.10.200.0/24 dev eth1 proto kernel scope link src 10.10.200.22
10.10.201.2 via 10.10.200.155 dev eth1
Вы хоть представляете, почему трафик не проходит обратно в 10.10.201.2
?
У меня это случилось со мной немного по-другому, основная причина заключалась в ошибке в моей команде ip route add вместо выполнения ip route add через <IP-адрес удаленного шлюза> dev <local interface> 'Я сделал' добавление IP-маршрута через <IP-адрес локального интерфейса> dev <локальный интерфейс> '. Я не говорю, что это ваша проблема, просто проверьте.
Похоже, я нашел временное решение. После добавления нового IP в интерфейс я должен flush
связанный маршрут и добавьте его еще раз .. Тогда связь работает отлично. Кто-нибудь знает, почему так происходит?
Ваш второй IP кажется неправильным. Вы назначаете другой IP-адрес с другой маской подсети (/ 32).
Назначьте вторичный IP-адрес с той же маской подсети. У вас есть примеры здесь, в комментарии: Сохранять псевдоним IP-адреса при перезагрузке в CentOS / RHEL 6 с помощью команды «ip»