[FUG-BR] openbgp travando quando crio uma vlan

Marcelo Gondim gondim em bsdinfo.com.br
Terça Abril 15 22:49:41 BRT 2014


Em 14/04/14 19:21, Patrick Tracanelli escreveu:
> Fala Gondim,
>
>> Então, esse lance de mac é o seguinte: de outubro/2013 pra cá nenhum mac
>> address passa direito pelo Datacom que está entre eu e a operadora de
>> clear channel que me transporta até as cidades que atendo. Olha o que
>> acontece com faço um arping:
>>
>> # arping -i em3 186.xxx.x.149
>> ARPING 186.xxx.x.149
>> Timeout
>> Timeout
>> Timeout
>> Timeout
>> Timeout
>> Timeout
>> Timeout
>> Timeout
>> Timeout
>> 60 bytes from 64:00:f1:75:b7:40 (186.xxx.x.149): index=0 time=609.552 usec
>> Timeout
>> 60 bytes from 64:00:f1:75:b7:40 (186.xxx.x.149): index=1 time=496.451 usec
>> Timeout
>> 60 bytes from 64:00:f1:75:b7:40 (186.xxx.x.149): index=2 time=641.974 usec
>> Timeout
>> Timeout
>> Timeout
>> 60 bytes from 64:00:f1:75:b7:40 (186.xxx.x.149): index=3 time=575.442 usec
>> Timeout
>> Timeout
>> Timeout
>> ^C
>> --- 186.xxx.x.149 statistics ---
>> 22 packets transmitted, 4 packets received,  82% unanswered (0 extra)
>> rtt min/avg/max/std-dev = 0.496/0.581/0.642/0.054 ms
> Tem uma cara danada de buffer de arp em exaustão, por flapping cacheando ou por limite mesmo.
Sinistro não é mesmo? Até agora não resolveram e por isso estou fixando 
os mac address estaticamente.

>
>> Essa interface em3 também está ligada nesse Datacom na porta 3. As
>> interfaces do lagg estão ligadas nas portas 1 e 2 do Datacom. Todo mundo
>> que passa por esse Datacom está fazendo isso. Aí sou obrigado à fixar o
>> mac address das interfaces de cada cidade na minha tabela arp do router
>> pra que funcione tudo certinho.
> Pois é ja vi isso acontecer (ou parecido) em um Datacom DM3000 mas não era flapping bem arp flood nem nada mais comum, eram excessos de frame de vlan, que depois descobrimos que era causado quando havia Q-in-Q (vlan sobre vlan), teoricamente sem qualquer justificativa mas qualquer Q-in-Q geravam frames excessivos e acabava recurso do DM3000 ele começava rejeitar atualização na tabela ARP como primeiro indicio e de tempos em tempos caia inteiro, parecia um reset, e ai voltava normalizado, contadores zerados, ARP funcionava por um tempo, depois começava de novo.
Opa show passei essa informação pros caras. vamos ver no que dá.  :)

>
>> Todas as interfaces são em(4) Intel PRO/1000 PT Dual Port PCI-e.
>> Tentei ver no momento do problema como estavam a fib e a rib no bgp e
>> pareciam normais. Nos logs não vi erro.
>> Tentei rodar o /etc/rc e também o /etc/netstart para ver se voltava à
>> funcionar, fiz tanta coisa, matei o serviço e tudo e teve um momento que
>> eu reiniciei o ibgp em cada cidade e voltou à funcionar mas não consegui
>> reproduzir a façanha. HaHaHaHaHA
> bgpctl sh int na hora do problema, voce deu? as interfaces estava validas e ok?
Ummm não rodei ele não. Mas Patrick, em breve vou ter que criar outra 
vlan e aí vou anotar essas coisas todas que não fiz e fazer na hora do 
problema.
Quando eu rodo ele aqui nesse momento eu tenho essa informação:

# bgpctl sh int
Interface      Nexthop state  Flags          Link state
vlan5          ok             UP             invalid, 10 MBit/s
vlan4          ok             UP             invalid, 10 MBit/s
vlan3          ok             UP             active, 10 MBit/s
vlan2          ok             UP             active, 10 MBit/s
vlan1          ok             UP             active, 10 MBit/s
vlan0          ok             UP             active, 10 MBit/s
lagg1          ok             UP             Ethernet, active, 2 GBit/s
disc0          ok             UP             invalid
lo0            ok             UP             invalid
pfsync0        invalid                       invalid
pflog0         invalid                       invalid
em7            ok             UP             Ethernet, invalid, 10 MBit/s
em6            ok             UP             Ethernet, active, 1000 MBit/s
em5            ok             UP             active, 1000 MBit/s
em4            invalid                       Ethernet, invalid, 10 MBit/s
em3            ok             UP             Ethernet, active, 1000 MBit/s
em2            ok             UP             active, 1000 MBit/s
em1            ok             UP             Ethernet, active, 1000 MBit/s
em0            ok             UP             Ethernet, active, 1000 MBit/s

É normal essas vlans aparecerem como 10Mbps? Porque o tráfego delas não 
condiz com essa informação.
Por exemplo:

vlan0 tá 10Mbps mas o tráfego é de +700Mbps.
vlan1 idem e tem tráfego de 470Mbps.
vlan2 tem tráfego quase 300Mbps
vlan3 o tráfego é de 500Mbps

Seria normal ficar com 10Mbps ali no link state?
>
> arp -an tinha o MAC dos seus peers bgp ok?
Não vi esse também, só vi o netstat -rn e o bgpctl s rib. Vou fazer no 
próximo teste, já que vou ter que criar uma nova vlan em breve.
>
> Outra coisa as NIC conectadas na vlan tem IP? Ou não são endereçadas? Se não forem endereçadas voce deu up na mão ao recriar uma vlan, tanto na NIC quanto na vlan?
Você diz as interfaces em(4)? Elas ficam sem IP. Só existe IP nas vlans 
e é dado up nelas. Eu não uso o rc.conf pra carregar as interfaces, eu 
uso o start_if.<driver>
Abaixo meus arquivos start_if.X pra vc ter uma ideia:

/etc/start_if.em0:

/sbin/ifconfig disc0 create
/sbin/ifconfig em0 159.XX.XX.98/30
/sbin/ifconfig em0 inet6 2804:XXXX:FFFF:FFD8::2/64
/sbin/ifconfig disc0 127.0.0.254

/etc/start_if.em1:

/sbin/ifconfig em1 64.XX.XX.70/30
/sbin/ifconfig em1 inet6 2001:XXXX:2001:1001::96/126

/etc/start_if.em2:

/sbin/ifconfig lagg1 create
/sbin/ifconfig em2 up
/sbin/ifconfig em5 up
/sbin/ifconfig lagg1 laggproto lacp laggport em2 laggport em5
/sbin/ifconfig lagg1 up
/sbin/ifconfig vlan0 create
/sbin/ifconfig vlan1 create
/sbin/ifconfig vlan2 create
/sbin/ifconfig vlan3 create
/sbin/ifconfig vlan0 186.XX.X8.1/27 vlan 3081 vlandev lagg1
/sbin/ifconfig vlan0 inet6 2804:XXXX:DEAD::1/64
/sbin/ifconfig vlan1 177.XXX.2XX.254/27 vlan 3082 vlandev lagg1
/sbin/ifconfig vlan1 inet6 2804:XXXX:CAFE::1/64
/sbin/ifconfig vlan2 186.XX.X4.1/27 vlan 2126 vlandev lagg1
/sbin/ifconfig vlan2 inet6 2804:XXXX:CADE::1/64
/sbin/ifconfig vlan3 186.XX.X1.1/27 vlan 3088 vlandev lagg1
/sbin/ifconfig vlan3 inet6 2804:XXXX:BAD::1/64

/etc/start_if.em3:

/sbin/ifconfig em3 186.XX.1.150/30

/etc/start_if_em6:

/sbin/ifconfig em6 177.XXX.2XX.1/29

/etc/start_if_em7:

/sbin/ifconfig em7 up
/sbin/ifconfig vlan4 create
/sbin/ifconfig vlan5 create
/sbin/ifconfig vlan4 187.XXX.XX.28/21 vlan 1441 vlandev em7
/sbin/ifconfig vlan5 inet6 2001:XXXX::219:28/64 vlan 1442 vlandev em7


>
> Por acaso as flags da NIC com FreeBSD 10 ficam diferente do 9?
Ummm não reparei Patrick, faz tempo que mudei pro 10.

>
>> Patrick, pode ser aquele problema que você comentou sobre alguns
>> chipsets em(4)?
> Acho que não, de qq forma qual chipset? Hoje fiz os testes que comentei em uma maquina com chipset que apresenta esse problema se manter autoselect, por isso acho que não tem relação não. Não foram testes tão intensos pq essa esta em produção (ServerU) mas com lagg e com em(4) chip 82574L, 3 sessões eBGP. Nada de problema nos create/destroy de vlan na mão, nem lagg.
>
> Fora seu Datacom, que é o mesmo que não da problemas com FreeBSD 9, tem mais coisa ai no seu ambiente ainda diferente dos que eu consegui testar.
Pode ser mesmo, difícil tá ser descobrir o que é rsrsrsrsrs

>
> Por desencargo tem Q-in-Q no seu ambiente? Mesmo que não na sua porta, alguma outra que chega no Datacom?
No meu ambiente não tem mas vou questionar isso com eles e ver qual a 
resposta deles.

Patrick aproveitando o embalo, sei que muda o assunto real da thread mas 
é bem simples a resposta. Supondo que eu tenha 2 links de dados de 1Gbps 
cada. Vamos dizer que eu feche um iBGP nas 2 pontas de cada link com o 
OpenBGP. Se eu setar o localpref igual para ambos os links e o anúncio 
dos prefixos iguais para ambos os links, o OpenBGP vai balancear o 
upstream e o downstream igualmente? Ou o upstream vai sair apenas por um 
dos dois links e o downstream ficaria balanceado?

Grande abraço,
Gondim


Mais detalhes sobre a lista de discussão freebsd