[FUG-BR] Problemas com roteamento FreeBSD-9.2

Luiz Otavio O Souza lists.br em gmail.com
Terça Fevereiro 4 11:13:03 BRST 2014


2014-02-03 Samuel Peres <samuelperes em migtelecom.com.br>:
> Boa tarde,
>
> Estou com um problema estranho no FreeBSD-9.2 (r260799) com OpenBGPD.
> Não consigo remover 1 rota específica, retorna o seguinte erro:
>
> # route delete -inet 187.xx.xxx.0/22 -iface vlan569 -fib 0
> route: writing to routing socket: Address already in use
> delete net 187.16.216.0: gateway vlan569 fib 0: gateway uses the same route
> Exit 1
>
> No momento não estou com  nenhum IP configurado na mesma subnet da rota
> que estou tentando remover (tinha, mas removi com ifconfig sem nenhum
> problema). Com netstat ou bgpctl consigo ver a rota em questão, vejam:
>
> # netstat -nr | grep 187.xx.xxx
> 187.xx.xxx.0/22    187.xx.xx.xx       UG1         0  3806179 vlan569
>
> Entretanto, não era para essa rota na está na VLAN 569, era para está em
> outra VLAN. Esse mesmo problema foi tratado em [1], onde aparentemente
> só foi corrigido aplicando um patch, mas não estou muito otimista e
> recorro a FUG em busca de ajuda.
>
> Já tive esse problema umas duas ou três vezes, infelizmente só consegui
> resolver após um reboot. Percebi que esse problema acontece da seguinte
> forma (simulei isso para constatar):
>
> * Todas sessões BGP estão down no início. Em seguida:
>
> 1- Subo a sessão BGP do PTT;
> 2- Subo a sessão BGP da Algar;
>
> Tudo ok até aqui
>
> 3- down na sessão com PTT;
> 4- down na sessão da Algar;
> 5- Subo novamente a sessão da Algar;
> 6- Tento subir novamente a sessão com o PTT;
>
> Ou seja, o sexto passo eu não executo com sucesso, visto que perco
> comunicação com o roteador do PTT. Loucura não? Com certeza, mas
> acontece isso aqui e já tentei atualizar o FreeBSD para tentar resolver
> e nada. O negócio é tão maluco que nem mesmo a tabela arp dos endereços
> associados a VLAN do PTT eu consigo remover quando acontece isso.
> Retorna o erro "arp: writing to routing socket: Invalid argument". Se
> tento adicionar o IP novamente a VLAN retorna o erro "ifconfig: ioctl
> (SIOCAIFADDR): Address already in use".
>
> Em outra localidade tenho um Mikrotik (estou aguardando a chegada de um
> Juniper MX10) com o mesmo cenário (PTT e Algar) e não acontece esse
> problema.
>
> Alguém tem alguma dica?
>
> [1] http://forums.freebsd.org/viewtopic.php?t=42547
>
>
> Obrigado!
>
>
> Samuel Peres
>

Samuel,

Pela sua descrição do problema e pela descrição e patch no forum o que
'parece' que esta acontecendo no seu caso é o seguinte:

Você configura o IP nas interfaces e sobe o BGP. O BGP esta recebendo
os blocos que você utiliza para falar com seus upstreams (IPs locais
configurados nas interfaces) e essas rotas são adicionadas pelo daemon
BGP no sistema sobre-escrevendo as rotas que foram adicionadas quando
o IP foi adicionado na interface. A partir daqui o sistema sai de
sincronismo, pois mesmo removendo o IP da interface não vai remover as
rotas e você também não pode remove-las manualmente porque elas estão
marcadas como PINNED.

Até onde olhei o melifaro não fez nenhuma alteração nesse código
recentemente, então atualizar não é uma opção.

E aquele patch é um hack para resolver aquele problema especifico do
usuário do forum (interfaces p2p).

Você tem filtros no seu BGP para os seus IPs/blocos locais ? Eu acho
que isso resolveria o seu problema, evitando que as rotas aprendidas
pelo BGP sobre-escrevam as rotas PINNED.

Att.,
Luiz


Mais detalhes sobre a lista de discussão freebsd