Cómo configurar un túnel de recepción GUE en Linux para IPv6

Cómo configurar un túnel de recepción GUE en Linux para IPv6

Estoy intentando configurar un túnel GUE para recibir paquetes IPv6 que contienen paquetes IPv4 encapsulados GUE, pero tengo problemas para desencapsular los paquetes. Los paquetes IPv6 tienen un paquete encapsulado GUE dentro del cual hay un paquete IPv4. Configuré un túnel de recepción por mi parte.

sysctl net.ipv4.conf.all.rp_filter=2
modprobe fou
modprobe fou6
ip -6 fou add port 42428 gue -6
ip addr add $VIP/32 dev ip6tnl0
ip -6 link set ip6tnl0 up

Así es como se ve el ip6tnl0 resultante:

4: ip6tnl0@NONE: <NOARP,UP,LOWER_UP> mtu 1452 qdisc noqueue state UNKNOWN group default qlen 1000
    link/tunnel6 :: brd ::
    inet $VIP/32 scope global ip6tnl0
       valid_lft forever preferred_lft forever
    inet6 $LINK_LOCAL/64 scope link
       valid_lft forever preferred_lft forever

En mi otra máquina puedo rizar el $VIP que es una dirección IPv4 y en mi máquina a través de tcp-dump puedo ver los paquetes encerrados.

tcpdump: listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
21:32:09.183750 IP6 (hlim 60, next-header UDP (17) payload length: 72) $IPV6_A.53322 > $IPV6_B.42428: [udp sum ok] UDP, length 64

Entonces, cuando ese paquete UDP se destape correctamente, esperaría que contenga un paquete IPv4 que coincida con el IPv4 de origen de $VIP. Pero cuando corro

tcpdump -i any host $VIP -n

Yo no veo nada.

He repetido exactamente esta misma configuración para IPv4 (paquete IPv4 encerrado dentro del paquete IPv4 usando GUE) para el cual la configuración para el túnel de recepción es similar:

sysctl net.ipv4.conf.all.rp_filter=2
modprobe fou
ip fou add port 42428 gue
ip addr add $VIP/32 dev tunl0
ip link set tunl0 up

En cuyo caso puedo ver los paquetes destapados.

root@ipv4-control:~# tcpdump -i any host $VIP -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
23:12:04.749247 IP $VIP.43830 > $VIP.80: Flags [S], seq 2247712115, win 65495, options [mss 65495,sackOK,TS val 2120453320 ecr 0,nop,wscale 7], length 0

$VIP arriba es una dirección ipv4 virtual que sirve tráfico http.

¿Alguna idea de qué hay de malo en la forma en que está configurado mi túnel de recepción IPv6?

Respuesta1

Resulta que tuve que configurar el modo en la interfaz ip6tnl0 ya que estaba encapsulando IPv4 en IPv6. Hacer esto funcionó:

ip -6 tunnel change ip6tnl0 mode ipip6

información relacionada