Criando mais de 20 interfaces VXLAN no linux

1

Como posso criar mais de 20 interfaces vxlan no Ubuntu / Debian?

  • No kernel Linux 3.16, descobri que posso criar mais de 20 interfaces vxlan, mas elas não funcionarão corretamente, pois o envio de mensagens arp não funciona.

  • no Linux Kernel 4.4 Eu recebo esta mensagem de erro " RTNETLINK responde: Nenhum espaço de buffer disponível " ao criar a 21'st interface

Eu testei isso criando um pequeno script de shell que cria as interfaces em um novo Ubuntu 14.04 & 16.04, também testou isto no Debian 8.

O script testvxlan.sh é assim:

#!/bin/bash

for i in {1..30}
do
    echo "Setting up interface br0.$i"
    ip link add br0.$i type vxlan id $i group 239.0.0.$i dev eth0 dstport 4789
    ip addr add 192.168.$i.1/24 dev br0.$i
    ip link set dev br0.$i up
    #ip link delete br0.$i
done

quando rodando isso em um novo Ubuntu 16.04, é assim:

root@ubuntu-xenial:~# ./testvxlan.sh
Setting up interface br0.1
Setting up interface br0.2
Setting up interface br0.3
Setting up interface br0.4
Setting up interface br0.5
Setting up interface br0.6
Setting up interface br0.7
Setting up interface br0.8
Setting up interface br0.9
Setting up interface br0.10
Setting up interface br0.11
Setting up interface br0.12
Setting up interface br0.13
Setting up interface br0.14
Setting up interface br0.15
Setting up interface br0.16
Setting up interface br0.17
Setting up interface br0.18
Setting up interface br0.19
Setting up interface br0.20
Setting up interface br0.21
RTNETLINK answers: No buffer space available
Setting up interface br0.22
RTNETLINK answers: No buffer space available
Setting up interface br0.23
RTNETLINK answers: No buffer space available
Setting up interface br0.24
RTNETLINK answers: No buffer space available
Setting up interface br0.25
RTNETLINK answers: No buffer space available
Setting up interface br0.26
RTNETLINK answers: No buffer space available
Setting up interface br0.27
RTNETLINK answers: No buffer space available
Setting up interface br0.28
RTNETLINK answers: No buffer space available
Setting up interface br0.29
RTNETLINK answers: No buffer space available
Setting up interface br0.30
RTNETLINK answers: No buffer space available

Como posso aumentar esse espaço em buffer ou é possível?

    
por David Berkan 07.12.2016 / 14:20

2 respostas

4

Como você usa multicx vxlan's, o limite é, na verdade, o número máximo de membros IGMP:

[root@cpu1 ~]# cat /proc/sys/net/ipv4/igmp_max_memberships 
20

Você pode aumentar esse limite e gerar mais de 20 vxlans:

[root@cpu1 ~]# echo 100 >/proc/sys/net/ipv4/igmp_max_memberships

Se você quiser que essa alteração seja persistente nas reinicializações, será necessário adicionar o seguinte snippet ao seu /etc/sysctl.conf ou /etc/sysctl.d /:

net.ipv4.igmp_max_memberships = 100
    
por 19.01.2017 / 17:43
1

Temos trabalhado bastante com vxlans de multicast, tendo mais de 200 em um único nó, com igmp_max_memberships definido para 400 ...

Além de muitos relatórios igmp, as coisas tendem a causar problemas de rastreamento do igmp em switches que podem fazer isso.

Portanto, criamos um novo grupo a cada 256 novos vxlans que separam os locatários pelo vni.

YMMV, mas o snooping é uma boa maneira de limitar o domínio de difusão de multicast, mesmo em switches de elcheapo que tenham uma tabela de snooping limitada. de qualquer forma, o campo vni é de 16 bits, então você pode facilmente ajustar 65535 vxlans em um grupo mc.

for grp in 'seq 1 4' ; do
   for vni in 'seq 1 64' ; do
      echo ip link add vx-'printf "%04x" $(($grp*$vni))' type vxlan id $vni group 239.0.1.$grp dev bkpln dstport 4789
   done
done | sh -x
    
por 10.02.2017 / 11:37