Problemas de criação de túneis Linux foo-over-udp

1

Eu quero criar um túnel fou (foo-over-udp) no linux 4.4.10 usando o iproute2 4.5.0 e ao tentar criar um túnel, recebo o seguinte erro:

sudo ip link add dev tun0 type ipip remote 172.19.0.9 local 172.19.0.8 encap fou encap-sport auto encap-dport 4444
RTNETLINK answers: Invalid argument

Enquanto isso geralmente indica que eu forneci argumentos errados, o dispositivo ainda é criado com um nome estranho e não configurado:

10: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT
group default qlen 1
     link/ipip 0.0.0.0 brd 0.0.0.0

Eu também devo mencionar que os módulos fou e ipip do kernel estão carregados:

fou                     9093  0
ip6_udp_tunnel          1967  1 fou
udp_tunnel              2547  1 fou
ipip                    5260  0
ip_tunnel              13315  1 ipip
tunnel4                 2389  1 ipip

Eu não tentei com nenhuma outra versão do kernel, mas tentei com a última versão do iproute2. Eu também devo mencionar que eu estava tentando esta configuração no namespace da rede linux, mas eu recebo o mesmo problema se eu fizer isso fora do namespace. O que poderia estar causando esse problema, e há alguma outra alternativa para configurar o fou tunnel? Pelas minhas observações, o iproute2 é problemático.

    
por offlinehacker 13.11.2016 / 15:13

3 respostas

1

Consegui configurar um túnel FOU entre duas máquinas virtuais na mesma LAN executando o ubuntu 16.04.01 não modificado. Eles começaram com a seguinte configuração de rede:

jeff@jeff-VirtualBox-ubuntu-16:~$ ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

   valid_lft forever preferred_lft forever

inet6 ::1/128 scope host 

   valid_lft forever preferred_lft forever

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:97:1d:bb brd ff:ff:ff:ff:ff:ff

inet 192.168.1.137/24 brd 192.168.1.255 scope global dynamic enp0s3

   valid_lft 86358sec preferred_lft 86358sec

inet6 fe80::3675:b335:4de3:9d6c/64 scope link 

   valid_lft forever preferred_lft forever

jeff@jeff-VirtualBox-ubuntu-16:~$ 

jeff@jeff-VirtualBox-ubuntu-16-2:~$ ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

   valid_lft forever preferred_lft forever

inet6 ::1/128 scope host 

   valid_lft forever preferred_lft forever

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
 state UP group default qlen 1000
link/ether 08:00:27:40:13:85 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.135/24 brd 192.168.1.255 scope global dynamic enp0s3

   valid_lft 86352sec preferred_lft 86352sec

inet6 fe80::7086:fe13:ab8:b44f/64 scope link 

   valid_lft forever preferred_lft forever

Em seguida, executei o seguinte para configurar as duas VMs em uma rede 10 usando um túnel FOU:

root@jeff-VirtualBox-ubuntu-16:~# modprobe fou

root@jeff-VirtualBox-ubuntu-16:~# ip fou add port 55137 ipproto 4

root@jeff-VirtualBox-ubuntu-16:~# ip link add name fou0 type ipip remote 192.168.1.135 local 192.168.1.137 encap fou encap-sport 55137 encap-dport 55135 dev enp0s3

root@jeff-VirtualBox-ubuntu-16:~# ip link set up dev tunl0

root@jeff-VirtualBox-ubuntu-16:~# ip link set up dev fou0

root@jeff-VirtualBox-ubuntu-16:~# ip addr add 10.0.0.137/24 dev fou0

root@jeff-VirtualBox-ubuntu-16:~#


root@jeff-VirtualBox-ubuntu-16-2:~# modprobe fou

root@jeff-VirtualBox-ubuntu-16-2:~# ip fou add port 55135 ipproto 4

root@jeff-VirtualBox-ubuntu-16-2:~# ip link add name fou0 type ipip remote 192.168.1.137 local 192.168.1.135 encap fou encap-sport 55135 encap-dport 55137 dev enp0s3

root@jeff-VirtualBox-ubuntu-16-2:~# ip link set up dev tunl0

root@jeff-VirtualBox-ubuntu-16-2:~# ip link set up dev fou0

root@jeff-VirtualBox-ubuntu-16-2:~# ip addr add 10.0.0.135/24 dev fou0

root@jeff-VirtualBox-ubuntu-16-2:~#

Funcionou bem para mim. Sua milhagem pode variar. 8 ^)

    
por 09.01.2017 / 20:43
0

Na minha experiência, o comando tem esse formato, que não corresponde ao seu:

ip link adiciona nome {name} tipo ipip ...

Em geral, nada é "criado com um nome estranho", isto é, criado com um nome que é uma sequência de caracteres (neste caso, "tunl0") que não aparece na entrada do software. Portanto, é muito provável que o dispositivo tunl0 não tenha nenhuma relação com suas ações; provavelmente estava lá antes. Além disso, sugere o uso de um nome diferente para o dispositivo que você está tentando criar, para reduzir a confusão em relação aos relatórios de status.

    
por 02.12.2017 / 04:47
0

Certifique-se de ter CONFIG_NET_FOU_IP_TUNNELS ativado e recompile o kernel, se não, com esta configuração.

O comando a seguir funciona para mim. ip link adicionar nome fou-ipip tipo ipip remoto 192.168.1.2 local 192.168.1.1 encap fou encap-esporte auto encap-dport 6635

    
por 21.08.2018 / 02:31