por que eu só posso pingar 1001 interface de 1023 que estão conectados a uma ponte linux?

1

Eu criei uma ponte de Linux br0 e criei um par 1023 veth , de modo que uma extremidade seja anexada à ponte e outra extremidade conectada a netns com um IP. Agora eu tento pingar todas as interfaces que estão conectadas a br0 , mas só posso fazer ping de interfaces 1001. O STP está desativado em br0 e o endereço IP de br0 é 172.17.0.1 .

number=1
total_veth=1023
a=2
b=0
while [ $number -le $total_veth ]
do
  name="test${number}"
  if [ $a -gt 255 ]
  then
    a=0
    b=$(($b + 1))
  fi
  IP=172.17.$b.$a
  ip link add dev veth_b$number type veth peer name veth_e$number
  brctl addif br0 veth_b$number
  ip link set veth_b$number up
  ip netns add test$number
  ip link set veth_e$number netns test$number
  ip netns exec test$number ifconfig veth_e$number $IP/16 up 
  ip netns exec test$number route add default gw 172.17.0.1 veth_e$number
  a=$((a+1))
  echo "$number:$IP"
  number=$(($number+1))
done

Quando eu removo a interface 22 da bridge eu posso pingar todas as interfaces 1001. Isso mostra que existe um tipo de limite na ponte, alguém pode me ajudar a entender o que está acontecendo aqui. Obrigado.

    
por Vijay 12.07.2017 / 22:11

2 respostas

1

O aumento do tamanho da fila de ingresso em echo 'net.core.netdev_max_backlog = 1024' >> /etc/sysctl.conf resolveu o problema, já que o tamanho da fila de ingresso padrão do kernel é 1000 e é por isso que só posso alcançar 1001 contêineres, não todos.

    
por 13.07.2017 / 20:49
0

Você está atingindo o limite de BR_MAX_PORTS. Basta criar uma segunda ponte e unir as duas pontes. Veja aqui para mais detalhes.

    
por 13.07.2017 / 01:46