l2tpv3 tunnel com ip local em vrf (linux kernel vrf)

2

Em um host ubuntu eu tenho dois endereços IP idênticos configurados em duas interfaces escravizadas a dois vrfs diferentes do kernel. Aqui estão eles:

mikle@LabHost:~$ ip link show vrf VRF1401
7: enp3s0f0.1401@enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1401 state UP mode DEFAULT group default qlen 1000
    link/ether c0:3f:d5:e9:76:c6 brd ff:ff:ff:ff:ff:ff
10: Lo1401: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1401 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether a6:45:5b:d6:bf:43 brd ff:ff:ff:ff:ff:ff

mikle@LabHost:~$ ip link show vrf VRF1402
8: enp3s0f0.1402@enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1402 state UP mode DEFAULT group default qlen 1000
    link/ether c0:3f:d5:e9:76:c6 brd ff:ff:ff:ff:ff:ff
11: Lo1402: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1402 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 1a:7b:13:3a:5b:19 brd ff:ff:ff:ff:ff:ff

mikle@LabHost:~$ ip addr show vrf VRF1401
7: enp3s0f0.1401@enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1401 state UP group default qlen 1000
    link/ether c0:3f:d5:e9:76:c6 brd ff:ff:ff:ff:ff:ff
    inet 10.14.0.1/24 scope global enp3s0f0.1401
       valid_lft forever preferred_lft forever
    inet6 fe80::c23f:d5ff:fee9:76c6/64 scope link
       valid_lft forever preferred_lft forever
10: Lo1401: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1401 state UNKNOWN group default qlen 1000
    link/ether a6:45:5b:d6:bf:43 brd ff:ff:ff:ff:ff:ff
    inet 10.14.100.100/32 scope global Lo1401
       valid_lft forever preferred_lft forever
    inet6 fe80::a445:5bff:fed6:bf43/64 scope link
       valid_lft forever preferred_lft forever

mikle@LabHost:~$ ip addr show vrf VRF1402
8: enp3s0f0.1402@enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1402 state UP group default qlen 1000
    link/ether c0:3f:d5:e9:76:c6 brd ff:ff:ff:ff:ff:ff
    inet 10.14.0.1/24 scope global enp3s0f0.1402
       valid_lft forever preferred_lft forever
    inet6 fe80::c23f:d5ff:fee9:76c6/64 scope link
       valid_lft forever preferred_lft forever
11: Lo1402: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue master VRF1402 state UNKNOWN group default qlen 1000
    link/ether 1a:7b:13:3a:5b:19 brd ff:ff:ff:ff:ff:ff
    inet 10.14.100.100/32 scope global Lo1402
       valid_lft forever preferred_lft forever
    inet6 fe80::187b:13ff:fe3a:5b19/64 scope link
       valid_lft forever preferred_lft forever

mikle@LabHost:~$ ip route show vrf VRF1401
10.14.0.0/24 dev enp3s0f0.1401 proto kernel scope link src 10.14.0.1

mikle@LabHost:~$ ip route show vrf VRF1402
default via 10.14.0.11 dev enp3s0f0.1402 proto 186 metric 20
10.14.0.0/24 dev enp3s0f0.1402 proto kernel scope link src 10.14.0.1

O Ubuntu é o LTS 16.04 com o utilitário kernel e ip atualizado %código% Vrfs estão funcionando, você pode ver a rota bgp do peer externo em vrf VRF1402.

Agora, gostaria de configurar dois túneis l2tpv3 não gerenciados distintos, obtendo cada um deles da interface específica. O utilitário "ip" que eu uso fornece ligação apenas para o endereço IP local, mas os endereços IP não são exclusivos na minha configuração. O comando "ip l2tp add tunnel" não fornece uma opção para ligar um túnel a um dispositivo, por isso não vejo como o túnel específico poderia ser configurado para usar o endereço IP local do segundo vrf, não o primeiro vrf, por exemplo.

Minha pergunta 1 : como o túnel ip lt2pv3 pode ser feito "vrf aware" ligando seu soquete ao dispositivo vrf para usar a tabela de roteamento associada ao dispositivo vrf?

2. Eu também tentei apenas criar um túnel, para depois escravizar a interface de sessão do túnel local para o vrf específico, mas o "ip l2tp add tunnel" falha:

mikle@LabHost:~$ ip -V ip utility, iproute2-ss161212 mikle@LabHost:~$ dpkg -s iproute2 Package: iproute2 Version: 4.9.0-1ubuntu1 mikle@LabHost:~$ uname -r 4.9.51-040951-lowlatency

Parece que mikle@LabHost:~$ sudo ip l2tp add tunnel tunnel_id 14011 peer_tunnel_id 1401 encap ip local 10.14.100.100 remote 10.14.0.11 RTNETLINK answers: Cannot assign requested address mikle@LabHost:~$ sudo ip l2tp add tunnel tunnel_id 14011 peer_tunnel_id 1401 encap ip local 10.14.0.1 remote 10.14.0.11 RTNETLINK answers: Cannot assign requested address tenta encontrar o endereço IP local na tabela de roteamento global e falha? (Chequei com a interface ip local no grt, funciona)

O utilitário ip precisa ser corrigido para suportar a vinculação de uma origem de túnel a uma interface vrf-ip específica? Ou é apenas o meu problema de configuração?

    
por off-on 16.10.2017 / 00:30

0 respostas