В данном примере будет реализована передача multicast-трафика с использованием IP-VPN. В устройствах ME используется NG-MVPN с анонсированием маршрутов в BGP SAFI5 и построением LDP-P2MP туннелей
Схема сети:
Настроим IGP, BGP и MPLS на маршрутизаторах:
interface loopback 1
ipv4 address 1.1.1.1/32
interface loopback 10
ipv4 address 1.1.1.1/32
vrf testvrf
interface tengigabitethernet 0/0/1
description "To R2"
ipv4 address 10.0.0.1/30
load-interval 20
interface tengigabitethernet 0/0/6
description "Server Multicast"
ipv4 address 10.168.20.1/24
vrf testvrf
interface tengigabitethernet 0/0/11
description "To R3"
ipv4 address 10.0.0.13/30
load-interval 20
vrf testvrf
export route-target 100:100
import route-target 100:100
mvpn <<<<< Создание обработчика MVPN
exit
rd 1:100
mpls
forwarding
interface loopback 1
interface tengigabitethernet 0/0/1
interface tengigabitethernet 0/0/11
exit
ldp
discovery interface tengigabitethernet 0/0/1
bfd fast-detect
exit
discovery interface tengigabitethernet 0/0/11
bfd fast-detect
exit
router-id 1.1.1.1
transport-address 1.1.1.1
exit
router bgp 100
address-family ipv4 mvpn <<<<< Добавляем SAFI5 mvpn
exit
address-family vpnv4 unicast
exit
bgp router-id 1.1.1.1
neighbor 2.2.2.2
address-family ipv4 mvpn
advertisement-interval 0
exit
address-family vpnv4 unicast
exit
bfd fast-detect
remote-as 100
send-community
send-community-ext
update-source 1.1.1.1
exit
neighbor 3.3.3.3
address-family ipv4 mvpn
advertisement-interval 0
exit
address-family vpnv4 unicast
exit
bfd fast-detect
remote-as 100
send-community
send-community-ext
update-source 1.1.1.1
router isis 1
interface loopback 1
address-family ipv4 unicast
exit
passive
exit
interface tengigabitethernet 0/0/1
address-family ipv4 unicast
bfd fast-detect
exit
level level-2
exit
point-to-point
exit
interface tengigabitethernet 0/0/11
address-family ipv4 unicast
bfd fast-detect
exit
level level-2
exit
point-to-point
exit
microloop-avoidance rib-update-delay 140
net 49.0000.0000.1000.0000.00
spf interval maximum-wait 80
Начиная с версии 2.10.3.7R в блоке "LDP" нет команды "p2mp-mldp" для создание MLDP-туннелей на транспортном интерфейсе - P2MP на интерфейсах включен по умолчанию.
interface loopback 1
ipv4 address 2.2.2.2/32
interface loopback 10 <<<<< Loopback служит адресом Rendezvous Point на сети
ipv4 address 2.2.2.2/32
vrf testvrf
interface tengigabitethernet 0/0/1
description "To R1"
ipv4 address 10.0.0.2/30
load-interval 20
interface tengigabitethernet 0/0/2
description "To R3"
ipv4 address 10.0.0.18/30
load-interval 20
interface tengigabitethernet 0/0/6
description "Receiver Multicast"
ipv4 address 172.20.20.1/24
vrf testvrf
vrf testvrf
export route-target 100:100
import route-target 100:100
mvpn
exit
rd 2:100
mpls
forwarding
interface loopback 1
interface tengigabitethernet 0/0/1
interface tengigabitethernet 0/0/2
exit
ldp
discovery interface tengigabitethernet 0/0/1
bfd fast-detect
exit
discovery interface tengigabitethernet 0/0/2
bfd fast-detect
exit
router-id 2.2.2.2
transport-address 2.2.2.2
exit
router bgp 100
address-family ipv4 mvpn
exit
address-family vpnv4 unicast
exit
bgp router-id 2.2.2.2
neighbor 1.1.1.1
address-family ipv4 mvpn
advertisement-interval 0
exit
address-family vpnv4 unicast
exit
bfd fast-detect
remote-as 100
send-community
send-community-ext
update-source 2.2.2.2
exit
neighbor 3.3.3.3
address-family ipv4 mvpn
advertisement-interval 0
exit
address-family vpnv4 unicast
exit
bfd fast-detect
remote-as 100
send-community
send-community-ext
update-source 2.2.2.2
router isis 1
interface loopback 1
address-family ipv4 unicast
exit
passive
exit
interface tengigabitethernet 0/0/1
address-family ipv4 unicast
bfd fast-detect
exit
level level-2
exit
point-to-point
exit
interface tengigabitethernet 0/0/11
address-family ipv4 unicast
bfd fast-detect
exit
level level-2
exit
point-to-point
exit
microloop-avoidance rib-update-delay 140
net 49.0000.0000.2000.0000.00
spf interval maximum-wait 80
interface loopback 1
ipv4 address 3.3.3.3/32
interface tengigabitethernet 0/0/1
ipv4 address 10.0.0.14/30
load-interval 20
interface tengigabitethernet 0/0/2
ipv4 address 10.0.0.17/30
load-interval 20
vrf testvrf
export route-target 100:100
import route-target 100:100
mvpn
exit
rd 3:100
exit
mpls
forwarding
interface loopback 1
interface tengigabitethernet 0/0/1
interface tengigabitethernet 0/0/2
exit
ldp
discovery interface tengigabitethernet 0/0/1
bfd fast-detect
exit
discovery interface tengigabitethernet 0/0/2
bfd fast-detect
exit
router-id 3.3.3.3
transport-address 3.3.3.3
exit
router bgp 100
address-family ipv4 mvpn
exit
address-family vpnv4 unicast
exit
bgp router-id 3.3.3.3
neighbor 1.1.1.1
address-family ipv4 mvpn
advertisement-interval 0
exit
address-family vpnv4 unicast
exit
bfd fast-detect
remote-as 100
send-community
send-community-ext
update-source 3.3.3.3
withdraw-interval 0
exit
neighbor 2.2.2.2
address-family ipv4 mvpn
advertisement-interval 0
exit
address-family vpnv4 unicast
exit
bfd fast-detect
remote-as 100
send-community
send-community-ext
update-source 3.3.3.3
withdraw-interval 0
exit
exit
router isis 1
interface loopback 1
address-family ipv4 unicast
exit
passive
exit
interface tengigabitethernet 0/0/1
address-family ipv4 unicast
bfd fast-detect
exit
level level-2
exit
point-to-point
exit
interface tengigabitethernet 0/0/2
address-family ipv4 unicast
bfd fast-detect
exit
level level-2
exit
point-to-point
exit
microloop-avoidance rib-update-delay 140
net 49.0000.0000.4000.0000.00
spf interval maximum-wait 80
Так же следует сказать каким образом добиться быстрой сходимости в случае обрыва основного линка. В первую очередь нужно обратить внимание на bfd fast-detected - настройка обязательна для быстрой сходимости.
spf interval maximum-wait 80 - задает максимальное время перерасчёта алгоритма SPF(по умолчанию установлено значение 5000мс).
microloop-avoidance rib-update-delay 140 - Активирует защиту от микропетель и задаёт задержку обновления таблицы маршрутизации в 140мс(по умолчанию установлено значение 5000мс).
advertisement-interval 0 - Команда задает минимальный интервал в секундах между анонсом или отзывом маршрута и последующим его анонсом (по умолчанию установлено значение 30с).
withdraw-interval 0 - Команда задает минимальный интервал в секундах между анонсом и последующим
отзывом одного и того же маршрута отсылаемыми соседу (по умолчанию установлено значение 30с).
Проведем настройку PIM и IGMP:
router pim
vrf testvrf
address-family ipv4
interface tengigabitethernet 0/0/6
passive-interface <<<<< Выключение отправки и обработки PIM-сообщений на интерфейсе.
exit
static-rp 239.1.1.10/32 <<<<< Задаем диапазон мультикаст-групп для статического RP
rp-address 2.2.2.2
exit
exit
exit
exit
router pim
vrf testvrf
address-family ipv4
interface tengigabitethernet 0/0/6
exit
static-rp 239.1.1.10/32
rp-address 2.2.2.2
exit
exit
exit
exit
router igmp
vrf testvrf
interface tengigabitethernet 0/0/6 <<<<< Включаем протокол IGMP на заданном интерфейсе
version 2 <<<<< Необходимо указать, так как по умолчанию работает IGMPv3
exit
exit
exit
К этому моменту у нас появились необходимые маршруты в таблице маршрутизации и построились P2MP туннели:
R2# show mpls ldp bindings mldp Mon Nov 28 02:54:41 2022 LSR Label Type Root node Opaque value ------------------- -------- ------- --------------------- ------------- 3.3.3.3:0 99 P2MP 1.1.1.1 1 1.1.1.1:0 100 P2MP 1.1.1.1 21 1.1.1.1:0 67 P2MP 2.2.2.2 1 3.3.3.3:0 65 P2MP 2.2.2.2 1 3.3.3.3:0 89 P2MP 3.3.3.3 1 R1# show mpls ldp bindings mldp Mon Nov 28 02:53:16 2022 LSR Label Type Root node Opaque value ------------------- -------- ------- --------------------- ------------- 2.2.2.2:0 99 P2MP 1.1.1.1 1 3.3.3.3:0 58 P2MP 1.1.1.1 1 2.2.2.2:0 100 P2MP 1.1.1.1 21 3.3.3.3:0 67 P2MP 2.2.2.2 1 3.3.3.3:0 59 P2MP 3.3.3.3 1 R3# show mpls ldp bindings mldp Mon Nov 28 02:49:42 2022 LSR Label Type Root node Opaque value ------------------- -------- ------- --------------------- ------------- 1.1.1.1:0 58 P2MP 1.1.1.1 1 2.2.2.2:0 65 P2MP 2.2.2.2 1 1.1.1.1:0 59 P2MP 3.3.3.3 1 2.2.2.2:0 89 P2MP 3.3.3.3 1
R2# show bgp ipv4 mvpn
Mon Nov 28 02:54:49 2022
BGP router identifier 2.2.2.2, local AS number 100
Graceful Restart is enabled, max wait time: 300 secs, restart time: 900 secs
BGP table state: active
BGP scan interval: 120 secs
Status codes: d damped, h history, > best, b backup, S stale, * active, u untracked, i internal
Origin codes: i igp, e egp, ? incomplete
Network Next hop Metric LocPrf Weight Path
------------------------ ---------------- ------- ------- ------- -----
>i 1:100 [1][1.1.1.1]
1.1.1.1 0 100 0 i
> 2:100 [1][2.2.2.2]
2.2.2.2 0 100 0 i
>i 4:100 [1][3.3.3.3]
3.3.3.3 0 100 0 i
>i 1:100 [3][10.168.20.2][239.1.1.10][1.1.1.1]
1.1.1.1 0 100 0 i
>i 1:100 [5][10.168.20.2][239.1.1.10]
1.1.1.1 0 100 0 i
> 2:100 [7][100][10.168.20.2][239.1.1.10]
2.2.2.2 0 100 0 i
R1# show bgp ipv4 mvpn
Mon Nov 28 02:53:20 2022
BGP router identifier 1.1.1.1, local AS number 100
Graceful Restart is enabled, max wait time: 300 secs, restart time: 900 secs
BGP table state: active
BGP scan interval: 120 secs
Status codes: d damped, h history, > best, b backup, S stale, * active, u untracked, i internal
Origin codes: i igp, e egp, ? incomplete
Network Next hop Metric LocPrf Weight Path
------------------------ ---------------- ------- ------- ------- -----
> 1:100 [1][1.1.1.1]
1.1.1.1 0 100 0 i
>i 2:100 [1][2.2.2.2]
2.2.2.2 0 100 0 i
>i 4:100 [1][3.3.3.3]
3.3.3.3 0 100 0 i
> 1:100 [3][10.168.20.2][239.1.1.10][1.1.1.1]
1.1.1.1 0 100 0 i
> 1:100 [5][10.168.20.2][239.1.1.10]
1.1.1.1 0 100 0 i
>i 2:100 [7][100][10.168.20.2][239.1.1.10]
2.2.2.2 0 100 0 i
R3# show bgp ipv4 mvpn
Mon Nov 28 02:50:06 2022
BGP router identifier 3.3.3.3, local AS number 100
Graceful Restart is enabled, max wait time: 300 secs, restart time: 900 secs
BGP table state: active
BGP scan interval: 120 secs
Status codes: d damped, h history, > best, b backup, S stale, * active, u untracked, i internal
Origin codes: i igp, e egp, ? incomplete
Network Next hop Metric LocPrf Weight Path
------------------------ ---------------- ------- ------- ------- -----
>i 1:100 [1][1.1.1.1]
1.1.1.1 0 100 0 i
>i 2:100 [1][2.2.2.2]
2.2.2.2 0 100 0 i
> 4:100 [1][3.3.3.3]
3.3.3.3 0 100 0 i
>i 1:100 [3][10.168.20.2][239.1.1.10][1.1.1.1]
1.1.1.1 0 100 0 i
>i 1:100 [5][10.168.20.2][239.1.1.10]
1.1.1.1 0 100 0 i
>i 2:100 [7][100][10.168.20.2][239.1.1.10]
2.2.2.2 0 100 0 i
R2# show pim vrf testvrf topology
Mon Nov 28 02:54:45 2022
IP PIM Multicast Topology Table
Entry state: (*/S,G)[RPT/SPT] Mode, Protocol, Uptime, Info
Interface state: Name, Uptime, Fwd, Info
(10.168.20.2, 239.1.1.10) SPT, asm, Up: 00h02m02s
JP: joined (never), RPF: pmsi/2:100/1.1.1.1/21, (1.1.1.1)
(10.168.20.2, 239.1.1.10) RPT not-prune, Up: 00h00m00s
(*, 239.1.1.10) asm, Up: 00h02m01s, RP: 2.2.2.2 is local (config)
JP: joined (never), RPF: unknown, (0.0.0.0)
te0/0/6 asm, Up: 00h02m01s is local
R1# show pim vrf testvrf topology
Mon Nov 28 02:53:28 2022
IP PIM Multicast Topology Table
Entry state: (*/S,G)[RPT/SPT] Mode, Protocol, Uptime, Info
Interface state: Name, Uptime, Fwd, Info
(10.168.20.2, 239.1.1.10) SPT, asm, Up: 00h02m53s
JP: joined (never), RPF: Tengigabitethernet0/0/6, (10.168.20.2)
pmsi/1:100/1.1.1.1/21 asm, Up: 00h02m19s is local
R2# show pim vrf testvrf topology
Mon Nov 28 02:54:45 2022
IP PIM Multicast Topology Table
Entry state: (*/S,G)[RPT/SPT] Mode, Protocol, Uptime, Info
Interface state: Name, Uptime, Fwd, Info
(10.168.20.2, 239.1.1.10) SPT, asm, Up: 00h02m02s
JP: joined (never), RPF: pmsi/2:100/1.1.1.1/21, (1.1.1.1)
(10.168.20.2, 239.1.1.10) RPT not-prune, Up: 00h00m00s
(*, 239.1.1.10) asm, Up: 00h02m01s, RP: 2.2.2.2 is local (config)
JP: joined (never), RPF: unknown, (0.0.0.0)
te0/0/6 asm, Up: 00h02m01s is local
R1# show pim vrf testvrf topology
Mon Nov 28 02:53:28 2022
IP PIM Multicast Topology Table
Entry state: (*/S,G)[RPT/SPT] Mode, Protocol, Uptime, Info
Interface state: Name, Uptime, Fwd, Info
(10.168.20.2, 239.1.1.10) SPT, asm, Up: 00h02m53s
JP: joined (never), RPF: Tengigabitethernet0/0/6, (10.168.20.2)
pmsi/1:100/1.1.1.1/21 asm, Up: 00h02m19s is local
