Имеем в наличии роутер под управлением FreeBSD и с установленным демоном маршрутизации Quagga. Отдельно рассматривать установку Quagga не будем, есть уже написанная статья. Поставленая задача — настроить анонсирование сетей от двух разных автономных систем (AS).
Для решения этой задачи, соберем тестовый стенд из двух маршрутизаторов (ROUTER1 и ROUTER2 соответственно), обьединенных сетями 172.30.11.0/30 и 172.30.12.0/30.
ROUTER1
15:50[]root@ROUTER1#uname -nmr ROUTER1 9.0-RELEASE amd64 15:50[]root@ROUTER1#ifconfig vlan11 vlan11: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=3<RXCSUM,TXCSUM> ether 00:19:e0:74:45:0a inet 172.30.11.1 netmask 0xfffffffc broadcast 172.30.11.3 inet6 fe80::219:e0ff:fe74:450a%vlan11 prefixlen 64 scopeid 0x9 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active vlan: 11 parent interface: re0 15:50[]root@ROUTER1#ifconfig vlan12 vlan12: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=3<RXCSUM,TXCSUM> ether 00:19:e0:74:45:0a inet 172.30.12.1 netmask 0xfffffffc broadcast 172.30.12.3 inet6 fe80::219:e0ff:fe74:450a%vlan12 prefixlen 64 scopeid 0xa nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active vlan: 12 parent interface: re0
ROUTER2
15:50[]root@ROUTER2#uname -nmr ROUTER2 8.0-STABLE i386 15:50[]root@ROUTER2#ifconfig vlan11 vlan11: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 00:50:8b:db:4e:44 inet 172.30.11.2 netmask 0xfffffffc broadcast 172.30.11.3 media: Ethernet autoselect (100baseTX <full-duplex>) status: active vlan: 11 parent interface: fxp0 15:50[]root@ROUTER2#ifconfig vlan12 vlan12: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 00:50:8b:db:4e:44 inet 172.30.12.2 netmask 0xfffffffc broadcast 172.30.12.3 media: Ethernet autoselect (100baseTX <full-duplex>) status: active vlan: 12 parent interface: fxp0
Для построения BGP-взаемодействия, будем использовать номера автономных систем, зарезервированных для локального использования.
Итак, с ROUTER1 будем анонсировать две сети 192.168.11.0/24 и 192.168.12.0/24 от AS 65011 и 65012 соответственно. А на ROUTER2 будем принимать эти анонсы, используя AS 65535. На ROUTER1 обязательно необходимо указать опцию bgp multiple-instance, которая и позволяет работать с несколькими AS одновременно.
Сам процесс конфигурирования BGP описывать не буду, а уже выложу готовые конфигурации как для ROUTER1, так и для ROUTER2. Набросал только базовые команды. Префикс-лист DENY-ANY используется для того, чтобы не получать на ROUTER1 свои же анонсы от ROUTER2.
ROUTER1
Current configuration: ! password 8 bJdy6GGF2QMTg enable password 8 4D7IL52lMQH4Q service password-encryption ! bgp multiple-instance ! router bgp 65011 view AS65011 bgp router-id 172.30.11.1 network 192.168.11.0/24 neighbor 172.30.11.2 remote-as 65535 neighbor 172.30.11.2 description *** AS65011 *** neighbor 172.30.11.2 soft-reconfiguration inbound neighbor 172.30.11.2 prefix-list DENY-ANY in ! router bgp 65012 view AS65012 bgp router-id 172.30.12.1 network 192.168.12.0/24 neighbor 172.30.12.2 remote-as 65535 neighbor 172.30.12.2 description *** AS65012 *** neighbor 172.30.12.2 soft-reconfiguration inbound neighbor 172.30.12.2 prefix-list DENY-ANY in ! line vty ! end
ROUTER2
Current configuration: ! password 8 bJdy6GGF2QMTg enable password 8 4D7IL52lMQH4Q service password-encryption ! router bgp 65535 bgp router-id 192.168.192.55 neighbor 172.30.11.1 remote-as 65011 neighbor 172.30.11.1 description *** AS65011 *** neighbor 172.30.11.1 soft-reconfiguration inbound neighbor 172.30.12.1 remote-as 65012 neighbor 172.30.12.1 description *** AS65012 *** neighbor 172.30.12.1 soft-reconfiguration inbound ! line vty ! end
Проверим на ROUTER2, что имеем в результате:
ROUTER2# show ip bgp summary BGP router identifier 192.168.192.55, local AS number 65535 RIB entries 3, using 192 bytes of memory Peers 2, using 5048 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.30.11.1 4 65011 11 12 0 0 0 00:07:57 1 172.30.12.1 4 65012 11 12 0 0 0 00:07:09 1 Total number of neighbors 2 ROUTER2# show ip bgp neighbors 172.30.11.1 received-routes BGP table version is 0, local router ID is 192.168.192.55 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.11.0 172.30.11.1 0 0 65011 i ROUTER2# show ip bgp neighbors 172.30.12.1 received-routes BGP table version is 0, local router ID is 192.168.192.55 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 192.168.12.0 172.30.12.1 0 0 65012 i Total number of prefixes 1
Все работает. Имеем соединение с двумя нейборами 172.30.11.1 и 172.30.12.1, получая от каждого в анонсах по одной сети.
Последний штрих — посмотрим, что имеем на ROUTER1:
ROUTER1# show ip bgp summary BGP router identifier 172.30.11.1, local AS number 65011 RIB entries 3, using 288 bytes of memory Peers 1, using 4560 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.30.11.2 4 65535 31 37 0 0 0 00:01:54 0 Total number of neighbors 1
А вот здесь имеем в наличии только одного нейбора. Для просмотра отдельных сессий необходимо явно указывать, какой view использовать:
ROUTER1# show ip bgp view AS65011 summary BGP router identifier 172.30.11.1, local AS number 65011 RIB entries 3, using 288 bytes of memory Peers 1, using 4560 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.30.11.2 4 65535 32 38 0 0 0 00:02:33 0 Total number of neighbors 1 ROUTER1# show ip bgp view AS65012 summary BGP router identifier 172.30.12.1, local AS number 65012 RIB entries 3, using 288 bytes of memory Peers 1, using 4560 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.30.12.2 4 65535 32 37 0 0 0 00:02:56 0 Total number of neighbors 1
Все работает, что и требовалось в результате 🙂
Источник