Устранение неполадок протокола BGP

63 0 0 0

Рассмотрим примеры типичных ошибок при настройке протокола BGPи способы их устранения.

BGP

1. Базовая настройка. Сначала поднимем интерфейсы и назначим IPадреса:

AR1
interface GigabitEthernet 0/0/0
   ip address 10.1.12.1 255.255.255.0
interface loopback 0
   ip address 1.1.1.1 255.255.255.255

AR2
interface GigabitEthernet 0/0/0
   ip address 10.1.12.2 255.255.255.0
interface GigabitEthernet 0/0/1
   ip address 10.1.23.2 255.255.255.0
interface loopback 0
   ip address 2.2.2.2 255.255.255.255

AR3
interface GigabitEthernet 0/0/1
   ip address 10.1.23.3 255.255.255.0
interface loopback 0
   ip address 3.3.3.3 255.255.255.255

После этого настроим протоколы маршрутизации. Между маршрутизаторами AR1 и AR2 настроим OSPF в качестве протокола внутренней маршрутизации.

AR1
router id 1.1.1.1
ospf 1
   area 0
      network 10.1.12.1 0.0.0.0
      network 1.1.1.1 0.0.0.0

AR2
router id 2.2.2.2
ospf 1
   area 0
      network 10.1.12.2 0.0.0.0
      network 2.2.2.2 0.0.0.0

Далее между AR1 и AR2 настроим iBGP соседство, а между AR2 и AR3 eBGP соседство. Соседство они будут устанавливать при помощи адресов своих loopback интерфейсов. Также для примера мы настроим неправильную AS для пира 2.2.2.2 на маршрутизаторе AR3.

AR1
bgp 64512
   peer 2.2.2.2 as-number 64512

AR2
bgp 64512
   peer 1.1.1.1 as-number 64512
   peer 1.1.1.1 next-hop-local
   peer 3.3.3.3 as-number 64513

AR3
router id 3.3.3.3
bgp 64513
   peer 2.2.2.2 as-number 64514

2. Проверка конфигурации и поиск неисправностей. После настройки первым делом проверим соседство между устройствами. Начнем с AR2:

[AR2] display bgp peer

BGP local router ID : 2.2.2.2
Local AS number : 64512
Total number of peers : 2              Peers in established state : 0

Peer              V             AS        MsgRcvd      MsgSent       OutQ     Up/Down        State    PrefRcv

1.1.1.1          4         64512                    0                   0             0       00:01:03      Active         0
3.3.3.3          4         64513                    0                   0             0       00:01:02          Idle          0

Вывод показывает, что статус соседства с AR1 значится как Active, а с AR3 как Idle. При правильной настройке статус должен отображаться как Established. Начнем поиск неисправностей. Обычно, если IP адрес удаленного устройсва недоступен, то статус будет отображаться как Idle. Маршрутизатор не может установить TCPсессию с удаленным устройством. Если IP адрес удаленного устройства доступен, но возникает ошибка при установлении TCP сессии, статус соседства будет оставаться как Active. Сначала проверим доступность loopbackадресов маршрутизаторов AR2 и AR3:

[AR2] ping -a 2.2.2.2 3.3.3.3
    PING 3.3.3.3: 56 data bytes, press CTRL_C to break
         Request time out
         Request time out
         Request time out
         Request time out

    --- 3.3.3.3 ping statistics ---
        4 packet(s) transmitted
        0 packet(s) received
        100.00% packet loss

Как видим, соединения нет. Проверим таблицу маршрутизации на AR2 и AR3:

[AR2] display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
                  Destinations : 12               Routes : 12

Destination/Mask       Proto     Pre    Cost    Flags      NextHop      Interface

                1.1.1.1/32   OSPF    10      1             D        10.1.12.1     GigabitEthernet0/0/0
                2.2.2.2/32   Direct    0       0              D        127.0.0.1     LoopBack0
            10.1.12.0/24   Direct    0       0 
             D        10.1.12.2     GigabitEthernet0/0/0
            10.1.12.2/32   Direct    0       0              D        127.0.0.1     GigabitEthernet0/0/0
        10.1.12.255/32   Direct    0       0              D        127.0.0.1     GigabitEthernet0/0/0
            10.1.23.0/24   Direct    0       0              D        10.1.23.2     GigabitEthernet0/0/1
            10.1.23.2/32   Direct    0       0              D        127.0.0.1     GigabitEthernet0/0/1
        10.1.23.255/32   Direct    0       0              D        127.0.0.1     GigabitEthernet0/0/1
              127.0.0.0/8   Direct    0       0              D        127.0.0.1     InLoopBack0
            127.0.0.1/32   Direct    0       0              D        127.0.0.1     InLoopBack0
127.255.255.255/32   Direct    0       0              D        127.0.0.1     InLoopBack0
255.255.255.255/32   Direct    0       0              D        127.0.0.1     InLoopBack0

[AR3] display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
                  Destinations : 8                 Routes : 8

Destination/Mask       Proto    Pre    Cost    Flags    NextHop     Interface

                3.3.3.3/32   Direct    0        0         D        127.0.0.1     LoopBack0
            10.1.23.0/24   Direct    0        0         D        10.1.23.3     GigabitEthernet0/0/1
            10.1.23.3/32   Direct    0        0         D        127.0.0.1     GigabitEthernet0/0/1
        10.1.23.255/32   Direct    0        0         D        127.0.0.1     GigabitEthernet0/0/1
              127.0.0.0/8   Direct    0        0         D        127.0.0.1     InLoopBack0
            127.0.0.1/32   Direct    0        0         D        127.0.0.1     InLoopBack0
127.255.255.255/32   Direct    0        0         D        127.0.0.1     InLoopBack0
255.255.255.255/32   Direct    0        0         D        127.0.0.1     InLoopBack0

Как видим, AR2 не знает маршрута до loopback интерфейсаAR3 и наоборот. Для решения данной проблемы мы можем прописать статические маршруты:

AR2
ip route-static 3.3.3.3 32 10.1.23.3

AR3
ip route-static 2.2.2.2 32 10.1.23.2

Теперь снова проверим соединение между AR2 и AR3:

[AR2] ping -a 2.2.2.2 3.3.3.3
    PING 3.3.3.3: 56 data bytes, press CTRL_C to break
        Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=255 time=90 ms
        Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=255 time=20 ms
        Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=255 time=20 ms
        Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=255 time=30 ms
        Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=255 time=30 ms

    --- 3.3.3.3 ping statistics ---
        5 packet(s) transmitted
        5 packet(s) received
        0.00% packet loss
        round-trip min/avg/max = 20/38/90 ms

А также проверим статус соседства на AR2:

[AR2] display bgp peer

BGP local router ID : 2.2.2.2
Local AS number : 64512
Total number of peers : 2               Peers in established state : 0

Peer          V            AS      MsgRcvd     MsgSent      OutQ     Up/Down         State     PrefRcv

1.1.1.1       4       64512                  0                 0            0         00:09:18      Active          0
3.3.3.3       4       64513                  0                 0            0         00:09:17      Active          0

Статус сменился с Idle на Active. Сейчас перейдем к проблеме междуAR1 и AR2. Как мы знаем, BGP используетTCP порт 179. Проверим доступность порта на обоих маршрутизаторах:

[AR1] display tcp status
TCPCB        Tid/Soid      Local Add:port       Foreign Add:port       VPNID        State
b4adcef8      6 /1             0.0.0.0:23                0.0.0.0:0                     23553       Listening
b4add180     164/2          0.0.0.0:179              2.2.2.2:0                      0              Listening

[AR2] display tcp status
TCPCB        Tid/Soid      Local Add:port       Foreign Add:port       VPNID        State
b4ba9ef8      6 /1             0.0.0.0:23                0.0.0.0:0                     23553       Listening
b4baa2c4     164/2          0.0.0.0:179              1.1.1.1:0                      0              Listening
b4baa54c     164/4          0.0.0.0:179              3.3.3.3:0                      0              Listening

Как видим, на обоих устройствах порт 179 открыт и принимает пакеты. Введем команды для дебагинга TCP пакетов и посмотрим, получает ли AR1BGP пакеты от AR2:

<AR1> terminal monitor
<AR1> terminal debugging
<AR1> debugging tcp packet
Jun 14 2019 16:36:08.410.1-08:00 AR1 SOCKET/7/TCP PACKET:
TCP debug packet information:
1560530168: Input: no port,
(src = 10.1.12.2:50419,dst = 1.1.1.1:179,VrfIndex = 0,seq = 3729781767,
ack = 0,datalen = 0,optlen = 67108864,flag = SYN ,window = 4194304,ttl = 0,tos = 0,MSS = 0)

Как видим, адрес источника значится как 10.1.12.2. Для установления BGP соседства мы использовали IPадреса loopbackинтерфейсов. В результате соседство не может быть установлено. Для решения данной проблемы мы должны дать команду connect-interface чтобы обозначить с какого адреса устанавливать BGP сосесдтво:

AR1
bgp 64512
   peer 2.2.2.2 connect-interface loopback 0

AR2
bgp 64512
   peer 1.1.1.1 connect-interface loopback 0
   peer 3.3.3.3 connect-interface loopback 0

AR3
bgp 64513
   peer 2.2.2.2 connect-interface loopback 0

Снова проверим статус соседства наAR2:

[AR2] display bgp peer

BGP local router ID : 2.2.2.2
Local AS number : 64512
Total number of peers : 2               Peers in established state : 1

Peer          V            AS      MsgRcvd     MsgSent      OutQ     Up/Down            State        PrefRcv

1.1.1.1      4        64512                 2                  4            0         00:00:31      Established      0
3.3.3.3      4        64513                 0                  0            0         00:00:19                  Idle       0

Между AR1 и AR2 установилось соседство. Теперь введем команды для дебагинга ipпакетов на AR3:

<AR3> terminal monitor
<AR3> terminal debugging
<AR3> debugging ip packet
Jun 14 2019 17:01:21.193.7-08:00 AR3 IP/7/debug_case:
Delivering, interface = GE0/0/1, version = 4, headlen = 20, tos = 192,
pktlen = 40, pktid = 4752, offset = 0, ttl = 1, protocol = 6,
checksum = 52395, s = 2.2.2.2, d = 3.3.3.3
prompt: Packet is before IP_Reass before really deliver to up.

Как видим, TTL пакета равен 1. Это значение по умолчанию. В нашем сценарии AR2 и AR3 устанавливают соседство при помощи адресов loopbackинтерфейсов. Так как между интерфейсами два хопа, BGP пакеты не доходят до нужного адреса и просто отбрасываются, так как истекает TTL. Для решения данной проблемы изменим значение TLL:

AR2
bgp 64512
   peer 3.3.3.3 ebgp-max-hop 2

AR3
bgp 64513
   peer 2.2.2.2 ebgp-max-hop 2

Проверим статус соседства:

[AR2] display bgp peer

BGP local router ID : 2.2.2.2
Local AS number : 64512
Total number of peers : 2 Peers in established state : 1

Peer          V            AS      MsgRcvd     MsgSent      OutQ     Up/Down            State        PrefRcv

1.1.1.1      4        64512                 4                  4            0        00:02:10       Established         0
3.3.3.3      4        64513                 0                  1            0        00:00:37             Active          0

Как видим, статус соседства остается на стадии Active. Проверим BGPошибки на AR3:

[AR3] display bgp error
Error Type         : Peer Error
Date/Time         : 2019/06/14 17:09:02 UTC-08:00
Peer Address     : 2.2.2.2
VRF Name        : Public
Error Info          : Incorrect remote AS

Error Type         : Peer Error
Date/Time          : 2019/06/14 17:09:34 UTC-08:00
Peer Address     : 2.2.2.2
VRF Name        : Public
Error Info          : Incorrect remote AS

Error Type         : Peer Error
Date/Time         : 2019/06/14 17:07:56 UTC-08:00
Peer Address     : 2.2.2.2
VRF Name        : Public
Error Info          : Incorrect remote AS

<AR3> terminal debugging
<AR3> debugging bgp packet
Jun 14 2019 17:11:10.168.4-08:00 AR3 RM/6/RMDEBUG:
BGP.Public: Err/SubErr: 2/2 Errdata: 41040000fc00
Identified in OPEN MSG from 2.2.2.2.

Вывод говорит, что ошибка возникает из-за неправильно настроенного номера AS. Также из дебага bgpпакетов видим ошибку с кодом номер 2, это также свидетельствует об ошибке в номере AS. Исправим ошибку, которую мы допустили при настройке AR3:

AR3
bgp 64513
   undo peer 2.2.2.2
   peer 2.2.2.2 as-number 64512
   peer 2.2.2.2 ebgp-max-hop 2
   peer 2.2.2.2 connect-interface LoopBack0

[AR2] display bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 64512
Total number of peers : 2                   Peers in established state : 2

Peer          V            AS      MsgRcvd     MsgSent      OutQ     Up/Down            State        PrefRcv

1.1.1.1      4         64512              10                10           0          00:08:15       Established           0
3.3.3.3      4         64513                3                  4           0          00:01:04       Established           0

Как видим, теперь соседство успешно установилось.

У статьи есть другие ресурсы

Требуется войти для загрузки или просмотра. Нет аккаунта?Register

x
  • x

Ответ

Отправить
Выполните вход в систему, чтобы ответить на пост. Вход | Регистрация

Внимание! В целях защиты правовых интересов Вас, сообщества и третьих лиц, не публикуйте любой материал, содержащий политические высказывания, порнографию, упоминание азартных игр, употребление наркотиков, а также материал, нарушающий коммерческую тайну или содержащий персональные данные пользователей. Также не предоставляйте данные от вашей учетной записи. Вы будете нести ответственность за все действия, выполняемые под вашим аккаунтом. Подробная информация: “Политика конфиденциальности..”
Если кнопка вложения недоступна, обновите Adobe Flash Player до последней версии.

Авторизуйтесь и пользуйтесь всеми преимуществами участника!

Вход
Быстрый ответ Вверх