Implementierung von Multicast-VPN unter Cisco IOS (Teil 1)

Während ich die modernen Methoden zur Organisation von Multicast-VPN verstand, stellte ich fest, dass das Netzwerk nicht viel Material enthält, das die Prinzipien und Details der Technologie beschreibt. Die Website des Anbieters bietet eine ausreichende Konfiguration für die Implementierung, beschreibt jedoch nicht die Bedeutung aller durchgeführten Aktionen.



In dieser Artikelserie werde ich versuchen, das Rätsel zu lösen, wie alles unter der Haube funktioniert.



Ca. Der Autor geht davon aus, dass der Leser mit den folgenden Technologien vertraut ist: OSPF, BGP, PIM, MPLS.



Interessiert - willkommen unter Katze.



Die Hauptaufgabe besteht darin, Multicast-Pakete zwischen PE-Routern zu tunneln (von Ingress PE zu einem oder mehreren Egress PEs). Dies erfordert den Aufbau eines Overlay-Netzwerks über der Underlay-Infrastruktur.



Wenn wir uns RFC6513 zuwenden, finden wir dort eine eher räumliche Erklärung dafür, wie Verkehr zwischen PE-Routern übertragen werden muss: „P-Tunnel müssen verwendet werden - ein P-Tunnel ist ein Transportmechanismus innerhalb des Netzwerks des Dienstanbieters, der instanziiert eine Provider Multicast Service Interface (PMSI). Ein PMSI ist eine konzeptionelle „Überlagerung“ im P-Netzwerk mit der folgenden Eigenschaft: Ein PE in einem bestimmten MVPN kann dem PMSI ein Paket geben, und das Paket wird an einige oder alle anderen PEs im MVPN zugestellt. so dass jeder PE, der das Paket empfängt, den MVPN bestimmen kann, zu dem das Paket gehört. "



Jene. Wenn Sie nur dem folgen, was gesagt wurde, sieht die gesamte Multicast-VPN-Infrastruktur ungefähr so ​​aus:





Sie müssen nur noch herausfinden, wie Sie diese PMSI erstellen und wie PE-Geräte voneinander lernen können.



-:



  • Protocol Independent Multicast (PIM, P-PIM, Provider-PIM; PIM GRT)
  • Multipoint Label Distribution Protocol (mLDP)
  • Resource Reservation Protocol Traffic Engineering (RSVP-TE)
  • Ingress Replication (IR)


. PMSI PIM mLDP.



-, / . :



  • PIM (C-PIM, Customer-PIM; PIM (VRF))
  • BGP.


mVPN :



  • . (C-Multicast) .




, .



, , :



  • - (Point-to-Point)

    • ( , MPLS ), LSP (unicast) .
  • - (Point-to-Multipoint)

    • ( , root) . (unidirectional).
  • - (Multipoint-to-Multipoint)

    • (bidirectional), , . , .
  • -- (Point-to-Point-to-Multipoint)

    • P2P P2MP . P2P LSP , P2MP .

      , Partitioned MDT.


:



  • Multi-Directional Inclusive PMSI (MI-PMSI, aka Default MDT)
  • Selective PMSI (aka Data MDT)
  • Multi-Directional Selective PMSI (aka Partitioned MDT)


( ). , mVPN «Default MDT».



Default MDT



Default MDT PE- VPN (VRF) . Default MDT , PIM .



Default MDT - PE PIM VRF, PIM (Join/Prune, RPT Switchover) Default MDT , LAN .





mVPN Profile 0



mVPN «Profile 0», «Draft Rosen».



:



  • Default MDT
  • PIM
  • PIM
  • C-multicast GRE (mGRE )


, , . :



  • BGP ( , VPNv4), unicast RPF .
  • OSPF IS-IS ( ) IP- Loopback0 , BGP
  • PIM ASM ( Global Routing Table, GRT)

    • Bootstrap Router (BSR)
  • LDP / .


:



router ospf 1
 router-id X.X.X.X
!
ip mutlicast-routing
!
ip pim register-source Lo0
!
interface Loopback0
 ip address X.X.X.X 255.255.255.255
 ip ospf 1 area 0
 ip pim sparse-mode
!
interface Gi2.Y
 encapsulation dot1q Y
 ip address 10.X.Y.Z 255.255.255.0
 ip ospf 1 area 0
 ip pim sparse-mode
!
router bgp 65001
 bgp router-id X.X.X.X
 no bgp default ipv4 unicast
 neighbor Y.Y.Y.Y remote-as 65001
 neighbor Y.Y.Y.Y update-source Loopback0
 !
 address-family vpnv4
  neighbor Y.Y.Y.Y activate
  neighbor Y.Y.Y.Y send-community-both
!
#############################################
##########     ##########
#############################################
!
ip pim rp-candidate Lo0
ip pim bsr-candidate Lo0


, , ( Provider RP (P-RP) – ). , show ip int brief. ? : Tunnel (encap) PIM-Register P-RP. P-RP Tunnel (decap) Register .



.



PE1#show int tu2 | i Descr|destination|Tunnel2
Tunnel2 is up, line protocol is up 
  Description: **Pim Register Tunnel (Encap)** for RP 8.8.8.8
  Tunnel source 1.1.1.1 (Loopback0), destination 8.8.8.8


>RR#show int tu0 | i Descr|destination|Tunnel0
Tunnel0 is up, line protocol is up 
  Description: **Pim Register Tunnel (Encap)** for RP 8.8.8.8
  Tunnel source 8.8.8.8 (Loopback0), destination 8.8.8.8
         Tunnel0 source tracking subblock associated with Loopback0
RR#show int tu1 | i Descr|destination|Tunnel1
Tunnel1 is up, line protocol is up 
  Description: Pim Register Tunnel (**Decap**) for RP 8.8.8.8
  Tunnel source 8.8.8.8 (Loopback0), destination 8.8.8.8
         Tunnel1 source tracking subblock associated with Loopback0


Profile 0 C-multicast mGRE . () IP . ( GRT). PIM GRT. :



ip vrf C-ONE
 mdt default 239.1.1.1


, ingress PE - VRF, ingress mGRE, destination IP 239.1.1.1 .



, egress PE . . .



PE2#show ip igmp membership 
Flags: A  - aggregate, T - tracked
       L  - Local, S - static, V - virtual, R - Reported through v3 
       I - v3lite, U - Urd, M - SSM (S,G) channel 
       1,2,3 - The version of IGMP, the group is in
Channel/Group-Flags: 
       / - Filtering entry (Exclude mode (S,G), Include mode (G))
Reporter:
       <mac-or-ip-address> - last reporter if group is not explicitly tracked
       <n>/<m>      - <n> reporter in include mode, <m> reporter in exclude

 Channel/Group                  Reporter        Uptime   Exp.  Flags  Interface 
 *,239.1.1.1                    2.2.2.2         1d20h    stop  2VA    Lo0


, 2 (*, 239.1.1.1) Loopback0. , , PIM Join RP .



, 2 mRIB. PIM ASM (shared tree source-based tree):



P2#show ip mroute 239.1.1.1
IP Multicast Routing Table

(*, 239.1.1.1), 2d00h/00:03:09, RP 8.8.8.8, flags: S
  Incoming interface: GigabitEthernet2.68, RPF nbr 10.6.8.8
  Outgoing interface list:
    GigabitEthernet2.67, Forward/Sparse, 2d00h/00:03:09
    GigabitEthernet2.26, Forward/Sparse, 2d00h/00:03:05
 (2.2.2.2, 239.1.1.1), 05:22:26/00:01:55, flags: T
  Incoming interface: GigabitEthernet2.26, RPF nbr 10.2.6.2
  Outgoing interface list:
    GigabitEthernet2.56, Forward/Sparse, 05:22:26/00:02:46
    GigabitEthernet2.67, Forward/Sparse, 05:22:26/00:03:09


, MDT vrf C-ONE , :



P2#show ip mroute 239.1.1.1
IP Multicast Routing Table
(*, 239.1.1.1), 2d00h/00:03:09, RP 8.8.8.8, flags: S
  Incoming interface: GigabitEthernet2.68, RPF nbr 10.6.8.8
  Outgoing interface list:
    GigabitEthernet2.67, Forward/Sparse, 2d00h/00:03:09
    GigabitEthernet2.26, Forward/Sparse, 2d00h/00:03:05

(4.4.4.4, 239.1.1.1), 05:21:57/00:02:16, flags: T
  Incoming interface: GigabitEthernet2.56, RPF nbr 10.5.6.5
  Outgoing interface list:
    GigabitEthernet2.26, Forward/Sparse, 05:21:57/00:03:15

(3.3.3.3, 239.1.1.1), 05:22:22/00:01:46, flags: T
  Incoming interface: GigabitEthernet2.67, RPF nbr 10.6.7.7
  Outgoing interface list:
    GigabitEthernet2.26, Forward/Sparse, 05:22:22/00:03:05

(2.2.2.2, 239.1.1.1), 05:22:26/00:01:55, flags: T
  Incoming interface: GigabitEthernet2.26, RPF nbr 10.2.6.2
  Outgoing interface list:
    GigabitEthernet2.56, Forward/Sparse, 05:22:26/00:02:46
    GigabitEthernet2.67, Forward/Sparse, 05:22:26/00:03:09

(1.1.1.1, 239.1.1.1), 2d00h/00:03:15, flags: T
  Incoming interface: GigabitEthernet2.56, RPF nbr 10.5.6.5
  Outgoing interface list:
    GigabitEthernet2.26, Forward/Sparse, 2d00h/00:03:05


GRT. ? — C-VRF! .



PMSI. Cisco IOS ( Profile 0) MDT BGP. MDT , PMSI .



MDT Route Reflector (R8).



PE1#sh run | s bgp
router bgp 65001
 !
 address-family ipv4 mdt
  neighbor 8.8.8.8 activate
 exit-address-family


Tunnel:



*Nov 12 11:27:45.131: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up


PE1#show int Tu0 | i transport|source|Tunnel0
Tunnel0 is up, line protocol is up 
  Tunnel source 1.1.1.1 (Loopback0)
         Tunnel0 source tracking subblock associated with Loopback0
          Set of tunnels with source Loopback0, 2 members (includes iterators), on interface <OK>
  Tunnel protocol/transport multi-GRE/IP
  Tunnel transport MTU 1476 bytes


Tunnel0 — , PMSI C-VRF.



PE1#show ip pim vrf C-ONE interface 

Address          Interface                Ver/   Nbr    Query  DR         DR
                                          Mode   Count  Intvl  Prior
172.1.11.1       GigabitEthernet2.111     v2/S   1      30     1          172.1.11.11
172.1.15.1       GigabitEthernet2.115     v2/S   1      30     1          172.1.15.15
1.1.1.1          Tunnel0                  v2/S   3      30     1          4.4.4.4


PIM Hello ( 224.0.0.13) , VRF Default MDT.



PE1#show ip pim vrf C-ONE interface 
Address          Interface                Ver/   Nbr    Query  DR         DR
                                          Mode   Count  Intvl  Prior
172.1.11.1       GigabitEthernet2.111     v2/S   1      30     1          172.1.11.11
172.1.15.1       GigabitEthernet2.115     v2/S   1      30     1          172.1.15.15
1.1.1.1          Tunnel0                  v2/S   3      30     1          4.4.4.4


PE1#show ip pim vrf C-ONE neighbor           
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      P - Proxy Capable, S - State Refresh Capable, G - GenID Capable,
      L - DR Load-balancing Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
172.1.11.11       GigabitEthernet2.111     4d20h/00:01:25    v2    1 / DR S P G
172.1.15.15       GigabitEthernet2.115     4d21h/00:01:25    v2    1 / DR S P G
3.3.3.3           Tunnel0                  00:07:25/00:01:41 v2    1 / S P G
2.2.2.2           Tunnel0                  00:07:25/00:01:41 v2    1 / S P G
4.4.4.4           Tunnel0                  00:08:24/00:01:41 v2    1 / DR S P G


PIM Hello, 1. , ( VRF) IP-, .







, Default MDT Multipoint-to-Multipoint .. (. PIM Hello) , .



: « MDT? PIM ASM ».



, Cisco IOS , PMSI BGP . , (Tunnel0 UP neighbor activate).



MDT , PIM SSM. , RP, - . MDT :



PE1#show bgp ipv4 mdt all 
     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1.1.1.1:1 (default for vrf C-ONE)
 *>   1.1.1.1/32       0.0.0.0                                0 ?
Route Distinguisher: 2.2.2.2:1
 *>i  2.2.2.2/32       2.2.2.2                  0    100      0 ?
Route Distinguisher: 3.3.3.3:1
 *>i  3.3.3.3/32       3.3.3.3                  0    100      0 ?
Route Distinguisher: 4.4.4.4:1
 *>i  4.4.4.4/32       4.4.4.4                  0    100      0 ?


PE1#show bgp ipv4 mdt all 2.2.2.2/32
BGP routing table entry for 2.2.2.2:1:2.2.2.2/32         version 3
Paths: (1 available, best #1, table IPv4-MDT-BGP-Table)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    2.2.2.2 from 8.8.8.8 (8.8.8.8)
      Origin incomplete, metric 0, localpref 100, valid, internal, best
      Originator: 2.2.2.2, Cluster list: 8.8.8.8,
      MDT group address: 239.1.1.1

      rx pathid: 0, tx pathid: 0x0


Originator MDT group address, (S,G) .



. : The Address Family (AF) IPv4 Multicast Distribution Tree (MDT) must be used for all types of PIM signaling in the core (not only for PIM Source Specific Multicast (SSM)).

.. sAFI MDT , .



.



, CE3 CE4 :



interface Loopback0
 ip igmp join-group 230.0.0.1


, 3 4 :



PE3#show ip mroute vrf C-ONE       

(*, 230.0.0.1), 05:58:36/00:03:19, RP 15.15.15.15, flags: S
  Incoming interface: Tunnel1, RPF nbr 1.1.1.1
  Outgoing interface list:
    GigabitEthernet2.313, Forward/Sparse, 00:00:10/00:03:19


PE4#show ip mroute vrf C-ONE

(*, 230.0.0.1), 00:00:29/00:03:00, RP 15.15.15.15, flags: S
  Incoming interface: Tunnel0, RPF nbr 1.1.1.1
  Outgoing interface list:
    GigabitEthernet2.414, Forward/Sparse, 00:00:29/00:03:00


2 OIL ( ). , IIL Tunnel (default MDT). .. 2 230.0.0.1 .



PE2#show ip mroute 239.1.1.1

(*, 239.1.1.1), 05:06:26/stopped, RP 8.8.8.8, flags: SJCFZ
  Incoming interface: GigabitEthernet2.26, RPF nbr 10.2.6.6
  Outgoing interface list:
    MVRF C-ONE, Forward/Sparse, 05:06:26/stopped


PE2#show ip mroute vrf C-ONE

(*, 230.0.0.1), 05:59:17/00:01:08, RP 15.15.15.15, flags: SP
  Incoming interface: Tunnel1, RPF nbr 1.1.1.1
  Outgoing interface list: Null


:



CE1#ping 230.0.0.1 source 11.11.11.11
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 230.0.0.1, timeout is 2 seconds:
Packet sent with a source address of 11.11.11.11 

Reply to request 0 from 14.14.14.14, 11 ms
Reply to request 0 from 13.13.13.13, 13 ms


, , PIM ( mGRE):





: MPLS , ( Profile 0) .



(ICMP reply) MPLS L3 VPN:





, Default MDT . , PE-, , C-Receiver . , ​​ PE, . ( VLAN ID = 26, R2 (PE2) R6 (P2)).







Um die Einschränkungen von Standard-MDT zu umgehen, wird das Konzept von Daten-MDT eingeführt, mit dem der Benutzerverkehr C- (S, G) von Standard-MDT auf Daten-MDT umgeschaltet werden kann, an dem nur diejenigen PEs beteiligt sind, bei denen aktive Quellen oder Empfänger von Verkehr vorhanden sind. Wir werden in der nächsten Ausgabe mit Ihnen darüber sprechen.



Fortsetzung folgt...




All Articles