O Linux não está enviando o pedido arp

1

Temos uma rede local que está conectada à internet através do gateway linux. Existem cerca de 50 estações de trabalho na LAN. Recentemente, começamos a observar um problema que o gateway pára de responder esporadicamente por vários segundos. Após a investigação, notamos que às vezes, quando o gateway não é capaz de executar ping em alguma estação de trabalho, ele nem mesmo tenta enviar solicitações ARP para ele.

Como exemplo, fazemos ping 192.168.5.37 do gateway:

PING 192.168.5.37 (192.168.5.37) 56(84) bytes of data.
From 192.168.5.1 icmp_seq=1 Destination Host Unreachable
From 192.168.5.1 icmp_seq=2 Destination Host Unreachable
From 192.168.5.1 icmp_seq=3 Destination Host Unreachable
From 192.168.5.1 icmp_seq=5 Destination Host Unreachable
From 192.168.5.1 icmp_seq=6 Destination Host Unreachable
From 192.168.5.1 icmp_seq=7 Destination Host Unreachable
64 bytes from 192.168.5.37: icmp_seq=8 ttl=128 time=438 ms
64 bytes from 192.168.5.37: icmp_seq=9 ttl=128 time=0.240 ms
64 bytes from 192.168.5.37: icmp_seq=10 ttl=128 time=0.238 ms

Ao mesmo tempo, o tcpdump está sendo executado no outro console:

sudo tcpdump -nli eth0 host 192.168.5.37
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:12:26.944842 IP 192.168.5.37.6112 > 255.255.255.255.6112: UDP, length 16
14:12:31.951145 IP 192.168.5.37.6112 > 255.255.255.255.6112: UDP, length 16
14:12:36.958632 IP 192.168.5.37.6112 > 255.255.255.255.6112: UDP, length 16
14:12:39.914620 arp who-has 192.168.5.37 tell 192.168.5.1
14:12:39.914775 arp reply 192.168.5.37 is-at 00:0b:6a:86:53:14
14:12:39.914781 IP 192.168.5.1 > 192.168.5.37: ICMP echo request, id 50734, seq 8, length 64
14:12:39.914955 IP 192.168.5.37 > 192.168.5.1: ICMP echo reply, id 50734, seq 8, length 64
14:12:40.480035 IP 192.168.5.1 > 192.168.5.37: ICMP echo request, id 50734, seq 9, length 64
14:12:40.480264 IP 192.168.5.37 > 192.168.5.1: ICMP echo reply, id 50734, seq 9, length 64
14:12:41.480037 IP 192.168.5.1 > 192.168.5.37: ICMP echo request, id 50734, seq 10, length 64
14:12:41.480265 IP 192.168.5.37 > 192.168.5.1: ICMP echo reply, id 50734, seq 10, length 64

Eu suspeito que algo está errado com o cache ARP do kernel. Por padrão, gc_thresh1 está em 512, e nós temos dez vezes menos hosts em uma lan ( ip nei|wc -l é aproximadamente 50) ..

Qual é o problema e como podemos corrigi-lo?

    
por thor 06.04.2011 / 11:25

2 respostas

1

Parece que encontrei uma raiz do meu problema. O roteador está conectado à LAN por meio da eth0. Além disso, na mesma interface, há várias subinterfaces de VLAN (uma delas é usada para acessar a Internet). Na eth0 existe um shaper configurado para limitar as taxas de tráfego para os usuários da LAN. Parece que o código de modelagem de tráfego do Linux vê todo o tráfego em eth0 (incluindo subinterfaces) e que de alguma forma interferiu com as requisições arp em eth0.

Depois de mover a conexão da LAN para a subinterface e configurar a formatação para não moldar os pacotes de arp, o problema desapareceu.

    
por 12.10.2011 / 14:04
1

Verifique se há ip duplicado do seu gateway na sua rede, é o problema mais comum no seu caso.

    
por 06.04.2011 / 12:08