14.7 Настройка MPLS SR
14.7.1 Обзор
Введение в функциональность
Segment Routing (SR) использует механизм выбора исходного пути для инкапсуляции SID (Segment Identifier), который должен быть заранее выделен узлом на исходном узле. Когда сообщение проходит через SR-узел, узел перенаправляет сообщение в соответствии с SID этого сообщения. За исключением исходного узла, другим узлам не нужно поддерживать состояние пути. MPLS SR относится к использованию SR в MPLS-сети для пересылки сообщений как SID.
Описание принципа работы
Для того чтобы перенаправить сообщение через SR LSP, необходимо выполнить следующие задачи:
- Назначение меток. Для планирования информации о метках для каждого узла и связи на пути пересылки сообщений могут использоваться статическая конфигурация сегмента или динамическое выделение SID.
- Создание записи в таблице пересылки меток. Устройство в домене сегментной маршрутизации, состоящее из устройств, работающих с MPLS SR, формирует локальные записи в таблице пересылки меток в соответствии с выделенной информацией о метках.
- Создание SR LSP. SR LSP может быть настроен вручную или создан динамически через контроллер.
- Связь туннеля SR с SR LSP. Это необходимо для того, чтобы SR LSP мог использоваться для пересылки сообщений.
После выполнения этих шагов, когда исходный узел получает сообщение от пользовательской сети, он инкапсулирует информацию о метке на пути, через который проходит сообщение, и перенаправляет сообщение на конечный узел через SR LSP. После получения сообщения через SR LSP, конечный узел удаляет метку из сообщения и пересылает его в соответствии с маршрутом назначения, найденным в таблице маршрутизации.
14.7.2 Настройка
Статическая настройка MPLS SR

Рисунок 14-10: Топология MPLS LSP
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Вход в режим конфигурации интерфейса и настройка атрибутов интерфейса
Настройка интерфейса на switch1:
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Настройка интерфейса на switch2:
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Настройка интерфейса на switch3:
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 34.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 5.5.5.5/32
Switch(config-if)# exit
Шаг 3: Настройка статического маршрута
Настройка статического маршрута на switch2:
Switch(config)# ip route 5.5.5.5/32 23.1.1.3
Настройка статического маршрута и статического ARP на switch3:
Switch(config)# arp 34.1.1.4 0000.0000.000a
Switch(config)# ip route 10.10.10.10/32 34.1.1.4
Шаг 4: Настройка сегментов статически
Настройка Adj сегмента на switch1:
Switch(config)# static-sr-mpls adjacency adj1 in-label 20 nexthop 12.1.1.2
Настройка Prefix сегмента на switch2:
Switch(config)# static-sr-mpls prefix prefix1 destination 5.5.5.5/32 in-label 30 nexthop 23.1.1.3 out-label 30
Настройка Prefix сегмента на switch3:
Switch(config)# static-sr-mpls prefix prefix1 destination 5.5.5.5/32 in-label 30
Шаг 5: Настройка SR LSP
Настройка SR LSP на switch1:
Switch(config)# static-sr-mpls lsp lsp1 out-label 20 30
Шаг 6: Настройка SR tunnel, привязка SR LSP к туннелю и отображение маршрута на SR tunnel
Настройка SR tunnel на switch1:
Switch(config)# static-sr-mpls tunnel tun1 non-aps
Switch(config-sr-tunnel)# primary lsp1
Switch(config-sr-tunnel)# map-route 10.10.10.10/32
Switch(config-sr-tunnel)# exit
Шаг 7: Проверка
Отображение Adj сегмента на switch1:
Switch# show mpls sr-adj
sr-adj id inlabel nexthop lsp_list
adj1 0 20 12.1.1.2 lsp1
Отображение Prefix сегмента на switch2:
Switch# show mpls sr-prefix
sr-prefix id inlabel outlabel nexthop lsp_list
prefix1 0 30 30 23.1.1.3
Отображение Prefix сегмента на switch3:
Switch# show mpls sr-prefix
sr-prefix id inlabel outlabel nexthop lsp_list
prefix1 0 30 1048576 0.0.0.0
Отображение SR LSP на switch1:
Switch# show mpls sr-lsp
sr-lsp id tunid instl nexthop tunnel adj prefix outlabel
lsp1 2 2 1 12.1.1.2 tun1 adj1 - 20 30
Отображение SR tunnel на switch1:
Switch# show mpls sr-tunnel
sr-tunnel id type wlsp plsp slsp map-route
tun1 3 non lsp1 - - 10.10.10.10/32
Отображение отображенных маршрутов на switch1:
Switch# show mpls sr-mapped-routes
Mapped-route SR Tunnel name
10.10.10.10/32 tun1
Отправка пакетов с IP-адресом назначения 10.10.10.10 на eth-0-1 на switch1.
Захват пакетов, полученных на eth-0-1 на switch1:
07:45:48.915852 00:00:00:00:00:02 (oui Ethernet) > 22:92:11:2e:47:00 (oui Unknown), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 10, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 2292 112e 4700 0000 0000 0002 0800 4500
0x0010: 0032 0000 0000 0a11 9aa4 0101 0103 0a0a
0x0020: 0a0a aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
Захват пакетов, отправленных на eth-0-9 на switch1:
07:49:41.883130 22:92:11:2e:47:00 (oui Unknown) > 2c:ad:5e:70:52:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 30, exp 0, [S], ttl 8)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 2cad 5e70 5200 2292 112e 4700 8847 0001
0x0010: e108 4500 0032 0000 0000 0911 9ba4 0101
0x0020: 0103 0a0a 0a0a aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa
Захват пакетов, отправленных на eth-0-17 на switch2:
07:51:36.664252 2c:ad:5e:70:52:00 (oui Unknown) > 4e:1d:de:29:f9:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 30, exp 0, [S], ttl 7)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 4e1d de29 f900 2cad 5e70 5200 8847 0001
0x0010: e107 4500 0032 0000 0000 0911 9ba4 0101
0x0020: 0103 0a0a 0a0a aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa
Захват пакетов, отправленных на eth-0-9 на switch3:
07:55:33.886746 4e:1d:de:29:f9:00 (oui Unknown) > 00:00:00:00:00:0a (oui Ethernet), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 6, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
0x0000: 0000 0000 000a 4e1d de29 f900 0800 4500
0x0010: 0032 0000 0000 0611 9ea4 0101 0103 0a0a
0x0020: 0a0a aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
Динамическая настройка SR

Рисунок 14-11: Топология MPLS LSP
Пример ниже описывает, как настроить динамический IS-IS SR.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Вход в режим конфигурации интерфейса и настройка атрибутов интерфейса
Настройка интерфейсов на switch1:
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.1.1.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# ip router isis
Switch(config-if)# exit
Настройка интерфейсов на switch2:
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# ip router isis
Switch(config-if)# exit
Настройка интерфейсов на switch3:
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 34.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 3.3.3.3/32
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# arp 34.1.1.4 0000.0000.000a
Switch(config)# ip route 5.5.5.5/32 34.1.1.4
Шаг 3: Настройка маршрутизатора IS-IS и включение сегментированного маршрута
Настройка маршрутизатора IS-IS на switch1:
Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 16000 16999
Switch(config)# net 49.0000.0000.0001.00
Switch(config)# exit
Настройка маршрутизатора IS-IS на switch2:
Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 17000 17999
Switch(config)# net 49.0000.0000.0002.00
Switch(config)# exit
Настройка маршрутизатора IS-IS на switch3:
Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 18000 18999
Switch(config)# net 49.0000.0000.0003.00
Switch(config)# exit
Шаг 4: Настройка префикса SID
Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 10
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 20
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 30
Switch(config-if)# exit
Шаг 5: Настройка SR LSP
Настройка SR LSP на switch1:
Switch(config)# static-sr-mpls lsp lsp1 out-label 16030
Шаг 6: Настройка SR tunnel, привязка SR LSP к туннелю и сопоставление маршрута с SR tunnel
Настройка SR tunnel на switch1:
Switch(config)# static-sr-mpls tunnel tun1 non-aps
Switch(config-sr-tunnel)# primary lsp1
Switch(config-sr-tunnel)# map-route 5.5.5.5/32
Switch(config-sr-tunnel)# exit
Шаг 7: Проверка
Отображение маршрута IS-IS на switch1:
Switch# show ip isis route
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
Area (null):
Destination Metric Next-Hop Interface Tag Sid Nflag Eflag Chg
C 1.1.1.1/32 10 -- loopback0 0 10 Y N N
L1 2.2.2.2/32 20 12.1.1.2 eth-0-9 0 20 Y N N
L1 3.3.3.3/32 30 12.1.1.2 eth-0-9 0 30 Y N N
C 12.1.1.0/24 10 -- eth-0-9 0 -- -- -- --
L1 23.1.1.0/24 20 12.1.1.2 eth-0-9 0 -- -- -- --
Отображение префикса сегмента на switch1:
Switch# show mpls sr-prefix
sr-prefix destination inlabel outlabel nexthop lsp_list
- 2.2.2.2/32 16020 17020 12.1.1.2 -
- 3.3.3.3/32 16030 17030 12.1.1.2 lsp1
Отображение записи в MPLS ILM на switch1:
Switch# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
U - unknown ILM
Code FEC I/O Label Nexthop Out-Intf
I> 0.0.0.0/0 16010/- 0.0.0.0 N/A
I> 0.0.0.0/0 16020/17020 12.1.1.2 eth-0-9
I> 0.0.0.0/0 16030/17030 12.1.1.2 eth-0-9
Отображение маршрута IS-IS на switch2:
Switch# show ip isis route
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
Area (null):
Destination Metric Next-Hop Interface Tag Sid Nflag Eflag Chg
L1 1.1.1.1/32 20 12.1.1.1 eth-0-9 0 10 Y N N
C 2.2.2.2/32 10 -- loopback0 0 20 Y N N
L1 3.3.3.3/32 20 23.1.1.3 eth-0-17 0 30 Y N N
C 12.1.1.0/24 10 -- eth-0-9 0 -- -- -- --
C 23.1.1.0/24 10 -- eth-0-17 0 -- -- -- --
Отображение префикса сегмента на switch2:
Switch# show mpls sr-prefix
sr-prefix destination inlabel outlabel nexthop lsp_list
- 1.1.1.1/32 17010 16010 12.1.1.1 -
- 3.3.3.3/32 17030 18030 23.1.1.3 -
Отображение записи в MPLS ILM на switch2:
Switch# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
U - unknown ILM
Code FEC I/O Label Nexthop Out-Intf
I> 0.0.0.0/0 17010/16010 12.1.1.1 eth-0-9
I> 0.0.0.0/0 17020/- 0.0.0.0 N/A
I> 0.0.0.0/0 17030/18030 23.1.1.3 eth-0-17
Отображение маршрута IS-IS на switch3:
Switch# show ip isis route
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
Area (null):
Destination Metric Next-Hop Interface Tag Sid Nflag Eflag Chg
L1 1.1.1.1/32 30 23.1.1.2 eth-0-17 0 10 Y N N
L1 2.2.2.2/32 20 23.1.1.2 eth-0-17 0 20 Y N N
C 3.3.3.3/32 10 -- loopback0 0 30 Y N Y
L1 12.1.1.0/24 20 23.1.1.2 eth-0-17 0 -- -- -- --
C 23.1.1.0/24 10 -- eth-0-17 0 -- -- -- --
Отображение префикса сегмента на switch3:
Switch# show mpls sr-prefix
sr-prefix destination inlabel outlabel nexthop lsp_list
- 1.1.1.1/32 18010 17010 23.1.1.2 -
- 2.2.2.2/32 18020 17020 23.1.1.2 -
Отображение записи в MPLS ILM на switch3:
Switch# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
U - unknown ILM
Code FEC I/O Label Nexthop Out-Intf
I> 0.0.0.0/0 18010/17010 23.1.1.2 eth-0-17
I> 0.0.0.0/0 18020/17020 23.1.1.2 eth-0-17
I> 0.0.0.0/0 18030/- 0.0.0.0 N/A
Отображение sr lsp на switch1:
Switch# show mpls sr-lsp
b - segment bind, i - install
sr-lsp id tunid b i nexthop tunnel adj prefix isis-prefix outlabel
lsp1 1 1 1 1 12.1.1.2 tun1 - - 3.3.3.3/32 16030
Отображение sr tunnel на switch1:
Switch# show mpls sr-tunnel
wlsp - working lsp, plsp - protection lsp, slsp - select lsp
sr-tunnel id type wlsp plsp slsp map-route
tun1 2 non lsp1 - - 5.5.5.5/32
Отображение map-route на switch1:
Switch# show mpls sr-mapped-routes
Mapped-route is_install SR-Tunnel-name
5.5.5.5/32 yes tun1
Отправьте пакеты с целевым IP-адресом 5.5.5.5 на интерфейс eth-0-1 на маршрутизаторе switch1.
Захват пакетов, полученных на интерфейсе eth-0-1 на маршрутизаторе switch1:
07:09:42.985391 00:00:00:00:00:02 (oui Ethernet) > 22:92:11:2e:47:00 (oui Unknown), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 10, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 2292 112e 4700 0000 0000 0002 0800 4500
0x0010: 0032 0000 0000 0a11 a4ae 0101 0103 0505
0x0020: 0505 aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
Захват пакетов, отправленных на интерфейс eth-0-9 на маршрутизаторе switch1:
07:10:39.037569 22:92:11:2e:47:00 (oui Unknown) > 2c:ad:5e:70:52:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 17030, exp 0, [S], ttl 9)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 2cad 5e70 5200 2292 112e 4700 8847 0428
0x0010: 6109 4500 0032 0000 0000 0911 a5ae 0101
0x0020: 0103 0505 0505 aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa
Захват пакетов, отправленных на интерфейс eth-0-17 на маршрутизаторе switch2:
07:11:31.922016 2c:ad:5e:70:52:00 (oui Unknown) > 4e:1d:de:29:f9:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 18030, exp 0, [S], ttl 8)
(tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 4e1d de29 f900 2cad 5e70 5200 8847 0466
0x0010: e108 4500 0032 0000 0000 0911 a5ae 0101
0x0020: 0103 0505 0505 aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa
0x0040: aadd aaaa
Захват пакетов, отправленных на интерфейс eth-0-9 на маршрутизаторе switch3:
07:23:09.891084 4e:1d:de:29:f9:00 (oui Unknown) > 00:00:00:00:00:0a (oui Ethernet), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 7, id 0, offset 0, flags [none], proto UDP (17), length 50)
1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
0x0000: 0000 0000 000a 4e1d de29 f900 0800 4500
0x0010: 0032 0000 0000 0711 a7ae 0101 0103 0505
0x0020: 0505 aaaa aadd aaaa aadd aaaa aadd aaaa
0x0030: aadd aaaa aadd aaaa aadd aaaa aadd aaaa