Ethernet transparente sobre GRE não encaminhando tráfego

1

Estou executando no Linux 2.6.30.9 e tenho tentado configurar uma ethernet transparente sobre o túnel GRE. A topologia de rede usada é a seguinte:

EuqueroconectaroPC1eoPC2usandooTransparentEthernetsobreoGRE.RouterAestáconectadoàinternetviappp0comoRouterB.AmbasasconexõesdeinternetsãoPPPOE(PPPoEoAPVCs).

Entãoeufaço:

NoRoteadorA(linux2.6.30.9):

iplinkaddtestgretypegretapremote193.152.243.206local95.121.205.77ttl255brctladdifbr0testgreiplinksettestgreup

NoRoteadorB(linux2.6.30.9):

iplinkaddtestgretypegretapremote95.121.205.77local193.152.243.206ttl255brctladdifbr0testgreiplinksettestgreup

Saídadealgunscomandos:

NoRouterA(saídasimilarnoRouterB):

#iplinkshowtestgre36:testgre:<BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP>mtu1442qdiscpfifo_faststateUNKNOWNqlen1000link/ether5f:79:cd:4d:c6:57brdc1:98:f3:ce:ff:ff#brctlshowbridgenamebridgeidSTPenabledinterfacesbr08000.5f79cd4dc657noeth0.5eth0.4eth0.3eth0.2wlan0testgre

EntãoeufaçoopedidodePINGdePC1paraPC2:

ping192.168.1.33

EucorrootcpdumpnoRouterAevejooquadroARPRequestsobreoppp0(arquivopcapabertocomoWirehark):

Eu executo o tcpdump no RouterB anexado ao ppp1 e vejo que a Solicitação ARP chegou, mas ela não foi encaminhada de L2 para PC2. Eu não vejo a solicitação ARP no PC2.

Eu tento com entradas ARP estáticas, mas a Solicitação ICMP tem o mesmo problema, ela não é encaminhada para o PC2.

Não há regras de ebtables. Nem regras de iptables (A ação padrão é ACCEPT para ebtables e iptables). Devo adicionar ppp0 para a interface de ponte ou algo parecido? Todas as sugestões são bem-vindas.

    
por MABC 09.01.2014 / 19:12

1 resposta

0

O problema estava relacionado com a pergunta que fiz aqui no Server Fault IP / GRE compilado no kernel mas a interface gre0 não existe .

Eu resolvi a primeira pergunta deixando o driver demultiplexador GRE em gre.c registrar o manipulador de protocolo GRE no kernel. Mas eu descobri que quando um pacote GRE chega, o manipulador GRE não está apontando para nenhuma função ip_gre.c (o driver demultiplexador GRE é suposto para verificar a versão GRE no pacote e passar o bloco para o manipulador de protocolo correto, mas no meu caso ele aponta NULL) .

Comentei o trecho de código em que gre.c registra o manipulador de protocolo GRE e descomentei o trecho de código em que ip_gre.c registra o manipulador de protocolo GRE. Agora, quando chega um pacote GRE é bem decapsulado e comprometido com a próxima camada, agora eu posso pingar de PC1 para PC2 sem qualquer problema. Acho que esse problema está acontecendo com muitas pessoas em seus dispositivos incorporados porque procurei no Google a mensagem de erro link quando o driver IP GRE não pode ser iniciado porque o driver demultiplexador GRE ainda tinha registrado um manipulador GRE e eu encontrei vários dispositivos com esse erro. / p>     

por 13.01.2014 / 16:53