В данном примере будет реализована передача 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 <<<<<<<<<<<<<<<<<<<<<<<<<<< Loopback предназначен для использования в качестве source-адреса в подписках. ipv4 address 1.1.1.10/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 withdraw-interval 0 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 withdraw-interval 0 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 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 ipv4 address 2.2.2.10/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 withdraw-interval 0 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 withdraw-interval 0 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 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 loopback 10 ipv4 address 3.3.3.10/32 vrf testvrf 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 address-family ipv4 exit 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