Как отфильтровать IPv6 префиксы в Quagga BGP?

Добрый день!

Стоит следующая задача: есть центральная сеть (AS65000, сети 192.168.1.0/24 и 2001:470:xxxx::/64) и несколько дополнительных (AS651yy, сети 172.16.yy.0/24 и 2001:470:yyyy::/64). В каждой сети установлено ровно по одному шлюзу под Linux или FreeBSD, с пакетом Quagga. Шлюзы доп. сетей соединяются с центральной с помощью OpenVPN (топология subnet, для туннелей используются сети 172.18.65.0/24 и 2001:470:tttt::/64, центральная сеть имеет адреса туннеля 172.18.65.1 и 2001:470:tttt::1, дополнительные -- 172.18.65.yy и 2001:470:tttt::yy).

Необходимо настроить BGP таким образом, чтобы:
* Центральной сети были доступны маршруты во все дополнительные сети
* Дополнительным сетям был доступен маршрут в центральную сеть
* Дополнительным сетям НЕ были доступны маршруты между собой

Доступ к некоторым сетям обеспечивается только по IPv4, к части -- по IPv4 и IPv6, к некоторым -- только по IPv6.

На текущий момент конфигурация bgpd на шентральном шлюзе выглядит следующим образом:

bgpd.conf

!
router bgp 65000
  bgp router-id 172.0.0.1
  !
  neighbor 172.18.65.10 remote-as 65110
  neighbor 172.18.65.10 prefix-list c10-filter-in in
  neighbor 172.18.65.10 prefix-list clients-filter-out out
  !
  neighbor 172.18.65.11 remote-as 65111
  neighbor 172.18.65.11 prefix-list c11-filter-in in
  neighbor 172.18.65.11 prefix-list clients-filter-out out
  !
  neighbor 172.18.65.12 remote-as 65112
  neighbor 172.18.65.12 prefix-list c12-filter-in in
  neighbor 172.18.65.12 prefix-list clients-filter-out out
  !
  neighbor 172.18.65.27 remote-as 65127
  neighbor 172.18.65.27 prefix-list c27-filter-in in
  neighbor 172.18.65.27 prefix-list clients-filter-out out
  !
  neighbor 2001:470:tttt::27 remote-as 65127
  neighbor 2001:470:tttt::27 prefix-list c27-filter6-in in
  neighbor 2001:470:tttt::27 prefix-list c27-filter6-out out
  !
  neighbor 2001:470:tttt::30 remote-as 65130
  neighbor 2001:470:tttt::30 prefix-list c30-filter6-in in
  neighbor 2001:470:tttt::30 prefix-list c30-filter6-out out
  !
  neighbor 2001:470:tttt::40 remote-as 65140
  neighbor 2001:470:tttt::40 prefix-list c40-filter6-in in
  neighbor 2001:470:tttt::40 prefix-list c40-filter6-out out
  !
  address-family ipv4
    network 192.168.1.0/24
    neighbor 172.18.16.2 activate
    neighbor 172.18.65.10 activate
    neighbor 172.18.65.11 activate
    neighbor 172.18.65.12 activate
    neighbor 172.18.65.27 activate
  exit-address-family
  !
  address-family ipv6
    network 2001:470:dc8b:c000::/64
    neighbor 2001:470:tttt::27 activate
    neighbor 2001:470:tttt::30 activate
    neighbor 2001:470:tttt::40 activate
  exit-address-family
  !
  timers bgp 10 30
!
ip prefix-list clients-filter-out seq 20 permit 192.168.1.0/24
ip prefix-list clients-filter-out seq 25 deny any
!
ip prefix-list c10-filter-in seq 20 permit 172.16.10.0/24
ip prefix-list c10-filter-in seq 25 deny any
!
ip prefix-list c11-filter-in seq 20 permit 172.16.11.0/24
ip prefix-list c11-filter-in seq 25 deny any
!
ip prefix-list c12-filter-in seq 20 permit 172.16.12.0/24
ip prefix-list c12-filter-in seq 25 deny any
!
ip prefix-list c27-filter-in seq 20 permit 172.16.27.0/24
ip prefix-list c27-filter-in seq 25 deny any
!
ipv6 prefix-list c27-filter6-in seq 20 permit 2001:470:yy27::/64
ipv6 prefix-list c27-filter6-in seq 25 deny any
ipv6 prefix-list c27-filter6-out seq 20 permit 2001:470:xxxx::/64
ipv6 prefix-list c27-filter6-out seq 25 deny any
!
ipv6 prefix-list c30-filter6-in seq 20 permit 2001:470:yy30::/64
ipv6 prefix-list c30-filter6-in seq 25 deny any
ipv6 prefix-list c30-filter6-out seq 20 permit 2001:470:xxxx::/64
ipv6 prefix-list c30-filter6-out seq 25 deny any
!
ipv6 prefix-list c40-filter6-in seq 20 permit 2001:470:yy40::/48
ipv6 prefix-list c40-filter6-in seq 30 deny any
ipv6 prefix-list c40-filter6-out seq 20 permit 2001:470:xxxx::/64
ipv6 prefix-list c40-filter6-out seq 25 deny any
!
line vty
!



На дополнительном шлюзе сети c27 (доступна по IPv4 и IPv6):

bgpd.conf

!
router bgp 65127
  bgp router-id 172.16.27.1
  !
  neighbor 172.18.65.1 remote-as 65000
  neighbor 2001:470:tttt::1 remote-as 65000
  !
  address-family ipv4
    network 172.16.27.1/24
    neighbor 172.18.65.1 activate
  exit-address-family
  !
  address-family ipv6
    network 2001:470:yy27::/64
    neighbor 2001:470:tttt::1 activate
  exit-address-family
  !
  timers bgp 10 30
!



Задача полностью решена для IPv4: все шлюзы дополнительных сетей получают по BGP единственный маршрут через туннель до сети 192.168.1.0/24 и не видят других дополнительных сетей.

Для IPv6 складывается впечатление, что не работают ipv6 prefix-lists вообще: все шлюзы видят все сети.
Нужно, чтобы каждый шлюз в дополнительных сетях получал только один маршрут до сети 2001:470:xxxx::/64.
  • Вопрос задан
  • 2727 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы