Personal tools

Quagga on Linux

From linux360

Revision as of 15:47, 25 November 2005 by Sin (talk | contribs)
Jump to: navigation, search

BGP mit Quagga

BGP4 RFC: RFC 1772

Folosirea BGP presupune 2 lucruri:

  1. detinerea unui Autonomous System Number, pe scurt AS
  2. detinerea unui subnet /24 (sau mai mic) de adrese IP Provider Independent, pe scurt PI


Pentru a seta o sesiune BGP intre 2 neighbori (presupunand ca aveti routerele A si B si AS-urile: 65534 si 65535) faceti in felul urmator:

Router A:

RouterA#
RouterA# conf t
RouterA(config)# router bgp 65534
RouterA(config-router)# network 10.2.2.0
RouterA(config-router)# neigbor 10.1.2.2 remote-as 65535
RouterA(config-router)# neighbor 10.1.2.2 description RouterB
RouterA# wr mem

RouterB:

RouterB#
RouterB# conf t
RouterB(config)# router bgp 65535
RouterB(config-router)# network 10.2.3.0
RouterB(config-router)# neighbor 10.1.2.1 remote-as 65534
RouterB(config-router)# neigbor 10.1.2.1 description RouterA
RouterB# wr mem

In exemplul de mai sus, fiecare router anunta cate un prefix /24 (pentru prefixe mai lungi se trece netmask-ul in format CIDR).

Daca in ecuatia de mai sus se mai adauga un RouterC cu o topologie: RouterA <--> RouterB <--> RouterC se configureaza in felul urmator:

RouterB:

RouterB# conf t
RouterB(config)# router bgp 65535
RouterB(config-router)# network 10.2.3.0
RouterB(config-router)# neighbor 10.1.2.1 remote-as 65534
RouterB(config-router)# neighbor 10.1.2.1 description RouterA
RouterB(config-router)# neighbor 10.1.2.6 remote-as 65533
RouterB(config-router)# neighbor 10.1.2.6 description RouterC
RouterB# wr mem

RouterC:

RouterC# conf t
RouterC(config)# router bgp 65533
RouterC(config-router)# network 10.2.4.0
RouterC(config-router)# neighbor 10.1.2.5 remote-as 65535
RouterC(config-router)# neighbor 10.1.2.5 description RouterB
RouterC# wr mem

Daca sa zicem RouterB vrem sa fie default gateway pentru celelalte 2 routere, procedam dupa cum urmeaza:

RouterB# conf t
RouterB(config)# router bgp 65535
RouterB(config-router)# network 10.2.3.0
RouterB(config-router)# neighbor 10.1.2.1 remote-as 65534
RouterB(config-router)# neighbor 10.1.2.1 default-originate
RouterB(config-router)# neighbor 10.1.2.1 description RouterA
RouterB(config-router)# neighbor 10.1.2.6 remote-as 65533
RouterB(config-router)# neighbor 10.1.2.6 default-originate
RouterB(config-router)# neighbor 10.1.2.6 description RouterC
ROuterB# wr mem

folosind "default-originate", pe langa prefixele exportate, se va mai exporta si 0.0.0.0/0.

Cam pana aici au fost configurarile de baza, mai jos veti gasi exemple de configurare putin mai complexe (eg: prefix-lists, as-prepend etc)

Pentru a nu accepta ruta default de la un anumit neighbor se face asa:

RouterC# conf t
RouterC(config)# ip prefix-list NO-DEFAULT seq 5 deny 0.0.0.0/0 le 1
RouterC(config)# ip prefix-list NO-DEFAULT seq 10 permit any
RouterC(config)# router bgp 65533
RouterC(config-router)# neighbor 10.1.2.5 remote-as 65535
RouterC(config-router)# neighbor 10.1.2.5 description RouterB
RouterC(config-router)# neighbor 10.1.2.5 prefix-list NO-DEFAULT in
RouterC# clear ip bgp 10.1.2.5 soft in
RouterC# wr mem