[GTER] Mikrotik Multiplos VRFs e BGPs

Douglas Fischer fischerdouglas at gmail.com
Wed Jul 8 11:38:59 -03 2015


Eu ia dar uma de gravedigger e ressuscitar uma thread velha[1].
Mas como montei o ambiente inteiro de novo, pensei:
Laboratório novo -> Thread nova!

​Quero subir múltiplos BGPs, cada um em uma VRF diferente, em uma mesma
caixa Mikrotik.
   Obs.: Procurei um bocado, e tudo que encontrei estava relacionado a MPLS.
         Não quero tagear nada para fora...
         Só quero dividir minhas tabelas dentro da minha própria caixa

???
Algum segredo para fazer o que seria o VRF-Lite no mundo Cisco funcionar em
Mikrotik?
???

Usei duas RB1100 e apliquei as configs que estão mais abaixo.

Sintomas
- As sessões BGP ficam em "connect" ad-eternum.
- No sniffer, pego pacotes de abertura de sessão vindos dos dois lados...
- No Logging do BGP, ele fica reclamando de connection retry timer expired.

P.S.: Tenho a impressão que o LISTENER do BGP(TCP/179) não está escutando
dentro do VRF.
      Qual seria o equivalente a um "lsof -ni",
      ou um "show control-plane host open-ports" nessa geringonça?

Fiz algumas tentativas:
 - Ao tirar uma das instâncias BGP do VRF e excluir o respectivo VRF,
   APENAS EM UM DOS LADOS, a sessão sobe instantaneamente.
 - Pensei que era um galho em uma das caixas, e resolvi fazer o mesmo do
outro lado em outra instância.
   Sessão subiu no mesmo momento.
 - Tirando a instância do VRF dos dois lados, a sessão também sobe.
 - Se tirar todo mundo dos VRFs, obviamente todas as sessões sobem.
   Porém minha tabela de rotas vira um balaio de gato.
 - Tentei usar o recurso de BGP-VRF que fica dentro de BGP.
   Não tive sucesso.


​/system identity
set name=Caixa1
/interface bridge
add name=loopback1
add name=loopback2
add name=loopback3
/ip route vrf
add export-route-targets=1:1 import-route-targets=1:1
interfaces=ether1,loopback1 route-distinguisher=1:1 routing-mark=vrf-1
add export-route-targets=2:1 import-route-targets=2:1
interfaces=ether2,loopback2 route-distinguisher=2:1 routing-mark=vrf-2
add export-route-targets=3:1 import-route-targets=3:1
interfaces=ether3,loopback3 route-distinguisher=3:1 routing-mark=vrf-3
/ip address
add address=1.0.0.1/30 interface=ether1 network=1.0.0.0
add address=2.0.0.1/30 interface=ether2 network=2.0.0.0
add address=3.0.0.1/30 interface=ether3 network=3.0.0.0
add address=1.1.1.1 interface=loopback1 network=1.1.1.1
add address=2.2.2.1 interface=loopback2 network=2.2.2.1
add address=3.3.3.1 interface=loopback3 network=3.3.3.1
/routing bgp instance
set default disabled=yes
add as=1 client-to-client-reflection=no name=bgp1
redistribute-connected=yes router-id=1.1.1.1 routing-table=vrf-1
add as=2 client-to-client-reflection=no name=bgp2
redistribute-connected=yes router-id=2.2.2.1 routing-table=vrf-2
add as=3 client-to-client-reflection=no name=bgp3
redistribute-connected=yes router-id=3.3.3.1 routing-table=vrf-3
/routing bgp peer
add instance=bgp1 name=caixa2-as1 remote-address=1.0.0.2 remote-as=1
ttl=default update-source=ether1
add instance=bgp2 name=caixa2-as2 remote-address=2.0.0.2 remote-as=2
ttl=default update-source=ether2
add instance=bgp3 name=caixa2-as3 remote-address=3.0.0.2 remote-as=3
ttl=default update-source=ether3


/system identity
set name=Caixa2
/interface bridge
add name=loopback1
add name=loopback2
add name=loopback3
/ip route vrf
add export-route-targets=1:1 import-route-targets=1:1
interfaces=ether1,loopback1 route-distinguisher=1:1 routing-mark=vrf-1
add export-route-targets=2:1 import-route-targets=2:1
interfaces=ether2,loopback2 route-distinguisher=2:1 routing-mark=vrf-2
add export-route-targets=3:1 import-route-targets=3:1
interfaces=ether3,loopback3 route-distinguisher=3:1 routing-mark=vrf-3
/ip address
add address=1.0.0.2/30 interface=ether1 network=1.0.0.0
add address=2.0.0.2/30 interface=ether2 network=2.0.0.0
add address=3.0.0.2/30 interface=ether3 network=3.0.0.0
add address=1.1.1.2 interface=loopback1 network=1.1.1.2
add address=2.2.2.2 interface=loopback2 network=2.2.2.2
add address=3.3.3.2 interface=loopback3 network=3.3.3.2
/routing bgp instance
set default disabled=yes
add as=1 client-to-client-reflection=no name=bgp1
redistribute-connected=yes router-id=1.1.1.2 routing-table=vrf-1
add as=2 client-to-client-reflection=no name=bgp2
redistribute-connected=yes router-id=2.2.2.2 routing-table=vrf-2
add as=3 client-to-client-reflection=no name=bgp3
redistribute-connected=yes router-id=3.3.3.2 routing-table=vrf-3
/routing bgp peer
add instance=bgp1 name=caixa1-as1 remote-address=1.0.0.1 remote-as=1
ttl=default update-source=ether1
add instance=bgp2 name=caixa1-as2 remote-address=2.0.0.1 remote-as=2
ttl=default update-source=ether2
add instance=bgp3 name=caixa1-as3 remote-address=3.0.0.1 remote-as=3
ttl=default update-source=ether3




​[1]https://eng.registro.br/pipermail/gter/2015-March/054115.html

-- 
Douglas Fernando Fischer
Engº de Controle e Automação



More information about the gter mailing list