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

Пинг не отображается эхом, но tcpdump его видит

Я работаю над установкой Raspberry Pi в сети WPA2-Enterprise. Прямо сейчас он получает IP-адрес от DHCP-сервера на обоих eth0 и wlan0. Этот пи идет туда, где он не может достичь порта Ethernet, поэтому он должен работать через Wi-Fi. Я могу пинговать, ssh или иным образом получить доступ к пи через IP-адрес, предоставленный eth0. Однако я ни к чему не могу получить доступ к IP-адресу, предоставленному wlan0. Когда я пингую IP-адрес, предоставленный wlan0, tcpdump видит эхо-запросы (и даже доходит до разрешения имени хоста). Я не понимаю, почему эхо не возвращается к своему источнику.

Вот некоторые результаты программ для получения дополнительной информации:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.yyy.142.1   0.0.0.0         UG    202    0        0 eth0
0.0.0.0         xxx.yyy.234.1   0.0.0.0         UG    303    0        0 wlan0
xxx.yyy.142.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
xxx.yyy.234.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

# ifconfig
eth0      Link encap:Ethernet  HWaddr ...:bd  
          inet addr:xxx.yyy.142.226  Bcast:xxx.yyy.142.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:72200 errors:98 dropped:740 overruns:0 frame:0
          TX packets:3381 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4682949 (4.4 MiB)  TX bytes:331697 (323.9 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:108 errors:0 dropped:0 overruns:0 frame:0
          TX packets:108 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:9216 (9.0 KiB)  TX bytes:9216 (9.0 KiB)

wlan0     Link encap:Ethernet  HWaddr ...:e5  
          inet addr:xxx.yyy.234.195  Bcast:xxx.yyy.234.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:271 errors:0 dropped:49 overruns:0 frame:0
          TX packets:199 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:47373 (46.2 KiB)  TX bytes:26125 (25.5 KiB)

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

# ip route
default via xxx.yyy.142.1 dev eth0  metric 202 
default via xxx.yyy.234.1 dev wlan0  metric 303 
xxx.yyy.142.0/24 dev eth0  proto kernel  scope link  src xxx.yyy.142.226  metric 202 
xxx.yyy.234.0/24 dev wlan0  proto kernel  scope link  src xxx.yyy.234.195  metric 303

# ip rule
0:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 

Когда я пингую xxx.yyy.234.195, tcpdump показывает:

listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:34:31.664494 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1426, length 40
16:34:36.452314 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1427, length 40
16:34:41.451536 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1428, length 40
16:34:46.464017 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1429, length 40

Я работаю в университетской сети, поэтому я не могу ничего изменить в сети. У меня недостаточно опыта работы с сетями, чтобы самому разобраться в этом, поэтому я ценю любую помощь, которую могу получить.

Заранее спасибо.

Похоже, проблема с маршрутизацией.

У вас есть два шлюза по умолчанию на RasPi, и у него есть прямые маршруты через eth0 и wlan0 в их соответствующие сети. Если вы отправляете эхо-запрос на адрес wlan0 с хоста, который имеет адрес в сети eth0, RasPi попытается отправить ответ от eth0, а не wlan0 (но с исходным адресом wlan0).

Если между сетями существует межсетевой экран с отслеживанием состояния, он может нарушить такую ​​асимметричную маршрутизацию.

Попробуйте отключить eth0 (выключите его, вытащите кабель или что-то в этом роде), чтобы удалить избыточные маршруты, затем снова пропингуйте адрес wlan.