Policy Routing - host enviando solicitações ARP para redes não locais

0

Estou precisando de ajuda para solucionar um problema de roteamento de políticas.

Eu tenho um host Linux com várias VLANs. Estou tentando criar uma tabela de roteamento exclusiva para cada VLAN (20 neste exemplo) e posso fazer ping bidirecionalmente entre o host e o roteador (gateway padrão) na VLAN20. No entanto, quando eu envio tráfego para um IP fora da rede, o servidor Ubuntu está enviando solicitações ARP para esses IPs em vez de enviar o tráfego através do gateway.

Ubuntu Host VLAN20: 192.168.20.50

Interface do roteador VLAN20: 192.168.20.1

Criado a tabela "vlan20"

$ cat /etc/iproute2/rt_tables
# # reserved values
# 255 local
254 main
253 default
220 vlan20
0 unspec #
#local
#1inr.ruhep

Regra criada para enviar todo o tráfego proveniente da interface VLAN20 usando a tabela vlan20

$ ip rule show
0: from all lookup local
32765: from 192.168.20.50 lookup vlan20
32766: from all lookup main
32767: from all lookup default

roteando todo o tráfego para a interface do roteador vlan20

 $ ip route list table vlan20
default via 192.168.20.1 dev eth0.20
192.168.20.0/24 dev eth0.20  scope link

testando do host linux

ping 8.8.8.8 -I eth0.20
PING 8.8.8.8 (8.8.8.8) from 192.168.20.50 eth0.20: 56(84) bytes of data.                             
192.168.20.50 icmp_seq=1 Destination Host Unreachable

Da interface Router VLAN20

 9.568940 arp who-has 8.8.8.8 tell 192.168.20.50
 10.565495 arp who-has 8.8.8.8 tell 192.168.20.50

Rota do kernel do Ubuntu

# ip route get 8.8.8.8 dev eth0.20
8.8.8.8 dev eth0.20  src 192.168.20.50
cache

Obrigado pela sua ajuda! Eu não tive sorte em descobrir isso.

    
por user2081470 03.02.2017 / 06:52

1 resposta

0

Sua tentativa de ping está vinculada à interface (especificando -I eth0.20 ) - não ao endereço e não há rota de interface.

Se você adicionar uma regra de interface de saída para usar a tabela vlan20, ela usará o gateway de próximo salto em vez de tentar fazer uma solicitação ARP. ou seja,

ip rule add oif eth0.20 lookup vlan20

Você encontrará uma explicação bastante longa, e exemplos disso ocorrem na minha outra resposta encontrada aqui: link

    
por kylehuff 03.12.2017 / 18:24