Здравствуйте, Давайте начнем с топологии, чтобы было легче понять, о чем я говорю: ![Topology.png] Между всеми соседними маршрутизаторами, за исключением R1 и R4, существуют сеансы BGP. Эти маршрутизаторы не имеют настроенного пиринга, и это сделано специально. При выполнении
лабораторных работ по BGP я столкнулся со следующей проблемой: я объявил маршрут по умолчанию от маршрутизатора R1 и R4 на основе соседства. Маршрутизатор R2 повторно объявляет маршрут по умолчанию, полученный от R1, для R3, но не получает маршрут по умолчанию, исходящий от R4. Под «не получает» я имею в виду, что он не появляется в таблице BGP.
Я попробовал выполнить жесткий сброс пиринга BGP между R2 и R3, и это сработало на некоторое время, но через несколько мгновений маршрут по умолчанию от R4 снова был удален из таблицы BGP R2 из-за получения обратно маршрута по умолчанию от собственного AS R2. По сути, маршрутизатор R3 отразил маршрут по умолчанию, который он узнал от R2, обратно в R2, что привело к удалению маршрута по умолчанию, исходящего из R4, из таблицы BGP, несмотря на то, что это другой маршрут с другим AS-Path. Вот соответствующие фрагменты конфигурации маршрутизаторов: R1:
interface GigabitEthernet0/0 ip address 10.0.0.1 255.255.255.252 duplex auto speed auto media-type rj45
!
interface GigabitEthernet0/2 ip address 150.1.1.1 255.255.255.0 duplex auto speed auto media-type rj45
!
router bgp 1 bgp router-id 1.1.1.1 bgp log-neighbor-changes neighbor 10.0.0.2 remote-as 2 neighbor 10.0.0.2 default-originate R2:
interface GigabitEthernet0/0 ip address 10.0.0.2 255.255.255.252 duplex auto speed auto media-type rj45
!
interface GigabitEthernet0/1 ip address 10.0.0.9 255.255.255.252 duplex auto speed auto media-type rj45
!
interface GigabitEthernet0/2 ip address 150.2.2.2 255.255.255.0 duplex auto speed auto media-type rj45
!
router bgp 2 bgp router-id 2.2.2.2 bgp log-neighbor-changes network 150.2.2.0 mask 255.255.255.0 neighbor 10.0.0.1 remote-as 1 neighbor 10.0.0.10 remote-as 3 R3:
interface GigabitEthernet0/0 ip address 10.0.0.10 255.255.255.252 duplex auto speed auto media-type rj45
!
interface GigabitEthernet0/1 ip address 10.0.0.13 255.255.255.252 duplex auto speed auto media-type rj45
!
interface GigabitEthernet0/2 ip address 150.3.3.3 255.255.255.0 duplex auto speed auto media-type rj45
!
router bgp 3 bgp router-id 3.3.3.3 bgp log-neighbor-changes network 150.3.3.0 mask 255.255.255.0 neighbor 10.0.0.9 remote-as 2 neighbor 10.0.0.14 remote-as 1 R4:
interface GigabitEthernet0/0 ip address 10.0.0.14 255.255.255.252 duplex auto speed auto media-type rj45
!
interface GigabitEthernet0/2 ip address 150.1.1.4 255.255.255.0 duplex auto speed auto media-type rj45
!
route-map DEFAULT-SECONDARY permit 10 set as-path prepend 1 1
router bgp 1 bgp log-neighbor-changes neighbor 10.0.0.13 remote-as 3 neighbor 10.0.0.13 default-originate route-map DEFAULT-SECONDARY Вот состояние таблицы BGP на каждом устройстве перед очисткой сеанса BGP между R2 и R3: R1# sh ip bgp
BGP table version is 7, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path 0.0.0.0 0.0.0.0 0 i *> 150.2.2.0/24 10.0.0.2 0 0 2 i *> 150.3.3.0/24 10.0.0.2 0 2 3 i R2#sh ip bgp
BGP table version is 6, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 0.0.0.0 10.0.0.1 0 1 i - here you can see that there is only the route received from R1 but no route from R4 *> 150.2.2.0/24 0.0.0.0 0 32768 i *> 150.3.3.0/24 10.0.0.10 0 0 3 i R3#sh ip bgp
BGP table version is 8, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 0.0.0.0 10.0.0.9 0 2 1 i * 10.0.0.14 0 1 1 1 i *> 150.2.2.0/24 10.0.0.9 0 0 2 i *> 150.3.3.0/24 0.0.0.0 0 32768 i R4# sh ip bgp
BGP table version is 7, local router ID is 150.1.1.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path 0.0.0.0 0.0.0.0 0 i *> 150.2.2.0/24 10.0.0.13 0 3 2 i *> 150.3.3.0/24 10.0.0.13 0 0 3 i Вот состояние таблицы BGP на R2 вскоре после жесткого сброса сеанса между R2 и R3: R2#sh ip bgp
BGP table version is 6, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * 0.0.0.0 10.0.0.10 0 3 1 1 1 i - the route has appeared *> 10.0.0.1 0 1 i *> 150.2.2.0/24 0.0.0.0 0 32768 i *> 150.3.3.0/24 10.0.0.10 0 0 3 i Вот сообщения отладки обновления BGP, которые появились после сброса сеанса, непосредственно перед удалением маршрута из R4: *Jan 31 09:51:09.936: BGP(0): 10.0.0.10 rcv UPDATE w/ attr: nexthop 10.0.0.10, origin i, originator 0.0.0.0, merged path 3 2 1, AS_PATH , community , extended community , SSA attribute *Jan 31 09:51:09.937: BGPSSA ssacount is 0, Tunnel attribute *Jan 31 09:51:09.937: Tunnel encap type: 0, encap size: 0
*Jan 31 09:51:09.937: BGP(0): 10.0.0.10 rcv UPDATE about 0.0.0.0/0 -- DENIED due to: AS-PATH contains our own AS;
*Jan 31 09:51:09.937: BGP(0): 10.0.0.10 rcv UPDATE w/ attr: nexthop 10.0.0.10, origin i, originator 0.0.0.0, merged path 3 2, AS_PATH , community , extended community , SSA attribute *Jan 31 09:51:09.938: BGPSSA ssacount is 0, Tunnel attribute R2#
*Jan 31 09:51:09.938: Tunnel encap type: 0, encap size: 0
*Jan 31 09:51:09.938: BGP(0): 10.0.0.10 rcv UPDATE about 150.2.2.0/24 -- DENIED due to: AS-PATH contains our own AS;
*Jan 31 09:51:10.369: BGP(0): (base) 10.0.0.1 send UPDATE (format) 150.3.3.0/24, next 10.0.0.2, metric 0, path 3 Я заметил, что R3 рекламирует маршрут по умолчанию, который он получил от R2, обратно R2: R3#sh ip bgp neighbors 10.0.0.9 advertised-routes BGP table version is 8, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 0.0.0.0 10.0.0.9 0 2 1 i *> 150.2.2.0/24 10.0.0.9 0 0 2 i *> 150.3.3.0/24 0.0.0.0 0 32768 i Total number of prefixes 3 Мой вопрос: является ли это правильным поведением BGP, и если да, то почему оно работает именно так? Или это программная ошибка? Моя версия IOS — Cisco IOS Software, IOSv Software (VIOS-ADVENTERPRISEK9-M), версия 15.9(3)M8, RELEASE SOFTWARE (fc1).
Заранее спасибо,
Алекс
[image: 22ff6b0c98b77b4f331564c051748fd91a1fa5b8.png]