Назад | Перейти на главную страницу

Не удается проверить связь с устаревшим кешем ARP?

У меня странная проблема с 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. Это, вероятно, даст вам хорошее представление о том, почему пинг вашей машины работает некорректно.

У вас есть схема сети, которую вы можете нам показать?