У меня странная проблема с Debian (Lenny / Linux 2.6.26-2-amd64), которая сводит меня с ума. На некоторых машинах в моей сети я могу просто пропинговать соответствующий хост, в других случаях мне нужно вручную жестко запрограммировать адрес Ethernet ARP для IP, чтобы установить соединение. Наконец-то я решил как-то задействовать ARP. Я только что нашел, как исправить это таким образом, чтобы он заработал, но мне нужна помощь в объяснении этой проблемы, а также я не верю, что мое исправление будет постоянным.
Мой мыслительный процесс был следующим, но я просто не могу понять из этого:
Спасибо за любое понимание, которое у вас могло быть
// Ping doesn't go thru
[gordon@ubuntu ~]$ ping 192.168.135.101
PING 192.168.135.101 (192.168.135.101) 56(84) bytes of data.
--- 192.168.135.101 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3014ms
// Here's the ARP Table, sometimes the .151 address is good, sometimes it
// also matches the Gateways MAC like .101 is doing right here.
[gordon@ubuntu ~]$ cat /proc/net/arp
IP address HW type Flags HW address Mask Device
192.168.135.15 0x1 0x2 00:0B:DB:2B:24:89 * eth0
192.168.135.151 0x1 0x2 00:0B:6A:3A:30:A6 * eth0
192.168.135.1 0x1 0x2 00:1A:A2:2D:2A:04 * eth0
192.168.135.101 0x1 0x2 00:1A:A2:2D:2A:04 * eth0
// Drop the bad arp table listing and set it manually based on /sbin/ifconfig
[gordon@ubuntu ~]$ sudo arp -d 192.168.135.101
[gordon@ubuntu ~]$ sudo arp -s 192.168.135.101 00:0B:6A:3A:30:A6
// Ping starts going thru..?!?
[gordon@ubuntu ~]$ ping 192.168.135.101
PING 192.168.135.101 (192.168.135.101) 56(84) bytes of data.
64 bytes from 192.168.135.101: icmp_seq=1 ttl=64 time=15.8 ms
64 bytes from 192.168.135.101: icmp_seq=2 ttl=64 time=15.9 ms
64 bytes from 192.168.135.101: icmp_seq=3 ttl=64 time=16.0 ms
64 bytes from 192.168.135.101: icmp_seq=4 ttl=64 time=15.9 ms
--- 192.168.135.101 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3012ms
rtt min/avg/max/mdev = 15.836/15.943/16.064/0.121 ms
Ниже приведена моя сетевая конфигурация.
gordon@db01:~$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:0b:6a:3a:30:a6
inet addr:192.168.135.151 Bcast:192.168.135.255 Mask:255.255.255.0
inet6 addr: fe80::20b:6aff:fe3a:30a6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15476725 errors:0 dropped:0 overruns:0 frame:0
TX packets:10030036 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18565307359 (17.2 GiB) TX bytes:3412098075 (3.1 GiB)
eth0:0 Link encap:Ethernet HWaddr 00:0b:6a:3a:30:a6
inet addr:192.168.135.150 Bcast:192.168.135.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth0:1 Link encap:Ethernet HWaddr 00:0b:6a:3a:30:a6
inet addr:192.168.135.101 Bcast:192.168.135.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 Link encap:Ethernet HWaddr 00:e0:81:2a:6e:d0
inet addr:10.10.62.1 Bcast:10.10.62.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:81ff:fe2a:6ed0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10233315 errors:0 dropped:0 overruns:0 frame:0
TX packets:19400286 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1112500658 (1.0 GiB) TX bytes:27952809020 (26.0 GiB)
Interrupt:24
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:387 errors:0 dropped:0 overruns:0 frame:0
TX packets:387 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:41314 (40.3 KiB) TX bytes:41314 (40.3 KiB)
gordon@db01:~$ sudo mii-tool -v eth0
eth0: negotiated 100baseTx-FD, link ok
product info: Intel 82555 rev 4
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
gordon@db01:~$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
localnet * 255.255.255.0 U 0 0 0 eth0
10.10.62.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.135.1 0.0.0.0 UG 0 0 0 eth0
Ваш шлюз по какой-либо причине привязан к 192.168.135.101.
Готов поспорить, если вы отключили eth0: 1 и в таблице ARP не было записи для 192.168.135.101, она все равно ответит на запрос ICMP.
Сосредоточьтесь на машине с адресом 00: 1A: A2: 2D: 2A: 04, это виновник.
В течение нескольких недель некоторые из моих IP-адресов не могли быть опрошены вне широкополосного доступа BeThere, и я считаю, что это было из-за того, что маршрутизатор интернет-провайдера содержал неверные таблицы ARP.
Это может быть связано с атакой по созданию ARP, но для сортировки удаленной таблицы ARP попробуйте следующую команду Linux:
arping -I <интерфейс> <IP-адрес>
Я бы очистил кеш arp и запустил wirehark, когда пытался пинговать. Вы увидите запрос и ответ ARP. Это, вероятно, даст вам хорошее представление о том, почему пинг вашей машины работает некорректно.
У вас есть схема сети, которую вы можете нам показать?