среда, 11 октября 2017 г.

Конфигурирование BGP на quagga

Возникла задача создать многоточечную сеть ВПН на quagga-like системах с топологией "звезда". Так как кол-во точек могло быть  достаточно большим, а также необходимо чтобы решение было резервируемым, то маршрутизацию решил сделать на BGP, для совместимости с имеющимся оборудованием CISCO, в котором данный протокол уже использовался.
Обычная конфигурация стандартно заработала, но возникла проблема с доставкой маршрутов между удаленными точками: -центральный узел их не отдавал. Почитав мануалы включил route-reflector-client и тут началось странное, на 1-м удаленном роутере всё как должно быть, а на другом, с аналогичной конфигурацией, маршрут приходит, но не инсталлируется в таблицу, причем, если в bgp конфигурации центральной точки убрать и снова прописать route-reflect-client, маршрут на 2-й точке инсталлировался, но потом опять исчезал. Выяснилось, что удаленные точки считают, что они находятся в bgp-кластере с название router-id центральной точки. Указав на центральном узле bgp claster-id равное router-id, вся маршрутизация заработала штатно. Связь между точками осуществлялась по vpn-туннелям с /30 битной адресацией (192.168.255.252/30, 192.168.255.248/30 и т.д.)

!-HUB-
!
router bgp 65000
 bgp router-id 10.10.10.1
 bgp always-compare-med
 bgp cluster-id 10.10.10.1
 network 10.10.10.1/32
 redistribute connected
 neighbor 10.0.0.102 remote-as 65000
 neighbor 10.0.0.106 remote-as 65000
 neighbor 10.0.0.106 weight 20000  !-увеличить вес для маршрутов основного канала
 neighbor 192.168.255.250 remote-as 65000
 neighbor 192.168.255.250 route-reflector-client
 neighbor 192.168.255.250 next-hop-self
 neighbor 192.168.255.254 remote-as 65000
 neighbor 192.168.255.254 route-reflector-client
 neighbor 192.168.255.254 next-hop-self
!
ИЛИ указывать peer через шаблон:
 neighbor intergr peer-group
 neighbor intergr remote-as 65000
 neighbor intergr route-reflector-client
 neighbor intergr next-hop-self
 neighbor intergr soft-reconfiguration inbound
 neighbor 192.168.255.254 peer-group intergr



-----------------------
!-SPOKE-
!
router bgp 65000
 bgp router-id 192.168.50.194
 network 192.168.50.0/24
 networ 192.168.255.254/32
 redistribute connected
 neighbor 192.168.255.253 remote-as 65000
 neighbor 192.168.255.253 next-hop-self ! (не работает если маршрут от 3-го роутера, нужен  "set ip next-hop 192.168.255.253" в route-map )
 neighbor 192.168.255.253 route-map route-in in
 neighbor 192.168.255.253 route-map route-out out
!
!
router prefix-list route-in seq 10 permit 10.0.1.0/24
router prefix-list route-in seq 20 permit 192.168.22.0/24
!
router prefix-list route-out seq 10 permit 192.168.50.0/24
!
router route-map route-in permit 100
 match ip address prefix-list route-in
 set ip next-hop 192.168.255.253
!
router route-map route-out permit 100
 match ip address prefix-list route-out

команды для отладки:

!-HUB-
# show bgp 192.168.50.0/24
BGP routing table entry for 192.168.50.0/24
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  10.0.0.102 10.0.0.106 192.168.255.250
  Local, (Received from a RR-client)
    192.168.255.254 (metric 1) from 192.168.255.254 (192.168.255.254)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Last update: Tue Oct 10 15:43:22 2017

!-SPOKE-
# show bgp 192.168.22.0/24
BGP routing table entry for 192.168.22.0/24
Paths: (1 available, no best path)
  Not advertised to any peer
  Local
    192.168.255.250 (inaccessible) from 192.168.255.253 (192.168.255.250)
      Origin IGP, metric 0, localpref 100, valid, internal
      Originator: 192.168.255.250, Cluster list: 10.10.10.1
      Last update: Tue Oct 10 16:01:47 2017

show bgp
show ip route bgp



Комментариев нет:

Отправить комментарий