{"id":428,"date":"2018-10-26T21:46:02","date_gmt":"2018-10-26T21:46:02","guid":{"rendered":"http:\/\/feralpacket.org\/?p=428"},"modified":"2018-10-26T21:46:02","modified_gmt":"2018-10-26T21:46:02","slug":"multicast-distribution-tree-mdt-notes","status":"publish","type":"post","link":"https:\/\/feralpacket.org\/?p=428","title":{"rendered":"Multicast Distribution Tree (MDT) Notes"},"content":{"rendered":"<p><span style=\"font-weight: bold;\">Multicast Distribution Tree (MDT)<\/span><\/p>\n<p>\u00a0&#8211; a.k.a<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Multicast VPN (MVPN)<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Multicast VRF (MVRF)<\/p>\n<p>\u00a0&#8211; Allows clients to exchange multicast traffic over MPLS L3VPN\n<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/ebb2eae011454935c777f3b688b5998e.jpeg\" style=\"cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/d5d29c27ed14910ec2277d2e1e3e0d22.jpeg\" style=\"cursor: default; height: auto;cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p><span style=\"font-weight: bold;\">Configuration<\/span><\/p>\n<p>\u00a01. Configure multicast in the ISP<\/p>\n<p>\u00a02. Configure VRF multicast on PE routers<\/p>\n<p>\u00a03. Configure multicast in the customer networks<\/p>\n<p>\u00a04. MDT address will be configured on all PE routers<\/p>\n<p>\u00a05. MDT address will be used to form an MDT tunnel between PE routers<\/p>\n<p>\u00a06. Any multicast traffic ( control plane \/ data plane ) coming from the customer will be encapsulated in MDT packets and sent to other PE routers<\/p>\n<p>\u00a07. The receiving PE routers deencapsulate the MDT packets if the internal multicast packet is destined for local VRF<\/p>\n<p>IOS Router<\/p>\n<p>R1(config)# <span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip multicast-routing<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0ip multicast-routing vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">int s0\/0<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0ip pim sparse-mode<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">int s0\/1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0ip pim sparse-mode<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip pim rp-address 2.2.2.2<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip pim vrf ABC rp-address 4.4.4.4<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0mdt default 239.1.1.1<\/span><\/p>\n<p>R4, R5, R6<\/p>\n<p>\u00a0&#8211; Basic multicast configuration<\/p>\n<p>XR Router<\/p>\n<p>R3(config)# <span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">multicast-routing<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0address-family ipv4<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 int s0\/0<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0enable<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 address-family ipv4<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0mdt default ipv4 239.1.1.1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0int s0\/1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0 enable<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0int s0\/2<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0 enable<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">router pim<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0address-family ipv4<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 rp-address 2.2.2.2<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 int s0\/0<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0enable<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0address-family 4.4.4.4<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 int s0\/1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0enable<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 int s0\/2<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0enable<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/1b0503c673a767c7026692f87246788f.jpeg\" style=\"cursor: default; height: auto;cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p><span style=\"font-weight: bold;\">Inter-AS Option A | B | C<\/span><\/p>\n<p><span style=\"font-weight: bold;\">MDT Tunnel<\/span><\/p>\n<p>\u00a0&#8211; PE Address<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Not exchanged by default<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -&gt; Solution is to send this information in BGP by using a special address-family called &#8220;mdt&#8221;<\/p>\n<p>\u00a0&#8211; MDT Group<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Not exchanged by default<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -&gt; Solution is to send this information in BGP by using a special address-family called &#8220;mdt&#8221;<\/p>\n<p>\u00a0&#8211; ASBR routers add additional information to MDT updates called &#8220;Proxy RPF Vector&#8221;<\/p>\n<p>\u00a0&#8211; Proxy RPF Vector contains the intermediate next-hop for RPF checks and join message propogation<\/p>\n<p>\u00a0&#8211; MSDP will be required once the PE address and MDT group of the other AS is known<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; For this, the RP address for both ASs must be reachable from both ends<\/p>\n<p><span style=\"font-weight: bold;\">Configuration<\/span><\/p>\n<p>\u00a01. Configure MPLS L3VPN between ASs<\/p>\n<p>\u00a02. Activate multicast in both ASs separately<\/p>\n<p>\u00a03. Activate MDT on PE routers<\/p>\n<p>\u00a04. Configure BGP MDT address-family on PE and ASBR routers<\/p>\n<p>\u00a05. Configure MSDP between RPs<\/p>\n<p>\u00a06. Activate multicast on customer network<\/p>\n<p>IOS Router<\/p>\n<p>R1(config)# <span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip multicast-routing<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0ip multicast-routing vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">int s0\/0<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0ip pim sparse-mode<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">int s0\/1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0ip pim sparse-mode<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip pim rp-address 2.2.2.2<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip pim vrf ABC rp-address 5.5.5.5<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">router bgp 100<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0no bgp default ipv4-unicast<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0neighbor 2.2.2.2 remotes-as 100<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0neighbor 2.2.2.2 update-source lo0<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0address-family ipv4 mdt<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 neighbor 2.2.2.2 activate<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0mdt default 239.1.1.1<\/span><\/p>\n<p>XR Router<\/p>\n<p>R2(config)# <span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">router bgp 100<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0address-family ipv4 mdt<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0neighbor 1.1.1.1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 address-family ipv4 mdt<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 \u00a0next-hop-self<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 remote-as 100<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 update-source lo0<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0neighbor 23.0.0.2<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 address-family ipv4 mdt<\/span><\/p>\n<p><span style=\"font-weight: bold;\">IOS Router<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh bgp ipv4 mdt all<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh ip pim mdt<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh ip pim mdt bgp<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh ip pim rp mapping<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh ip pim vrf ABC rp mapping<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh ip mspd summary<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\"><\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh ip mroute<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh ip mroute vrf ABC<\/span><\/p>\n<p><span style=\"font-weight: bold;\">XR Router<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh bgp ipv4 mdt<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh pim mdt<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh pim range-list<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh msdp summary<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\"><\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh pim vrf ABC rp mapping<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh route\u00a0ipv4 multicast<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh route vrf ABC ipv4 multicast<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\"><\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh mfib route<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh mfib vrf ABC route<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\"><\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh mfib mdt statistics<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">sh mfib vrf ABC mdt statistics<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\"><\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\"><\/span><\/p>\n<p><span style=\"font-weight: bold;\">MDT Tunnel Source Address<\/span><\/p>\n<p>\u00a0&#8211; When MDT is configured between PE routers, they create an MDT tunnel<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; The source address of the tunnel is the LDP router-id; \u00a0or if BGP is configured, then the source address of the tunnel is the highest update-source<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; To configure the tunnel source manually<\/p>\n<p>IOS Router<\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0mdt defautl 239.1.1.1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0bgp next-hop lo0<\/span><\/p>\n<p>XR Router<\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">multicast-routing<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0address-family ipv4<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 mdt source lo0<\/span><\/p>\n<p><span style=\"font-weight: bold;\">MDT Data Groups<\/span><\/p>\n<p>\u00a0&#8211; MDT default group is joined by all PE routers, so the traffic always goes to all PE routers<\/p>\n<p>\u00a0&#8211; If multicast traffic crosses a pre-specified threshold, another tunnel can be created and joined only by interested PE routers<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; This is called an MDT data group<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/f31b2fd71e5db11d95ec108abc717361.jpeg\" style=\"cursor: default; height: auto;cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p>Tunnel 239.1.1.1 -&gt; Joined by PE 2, 3, 4, 5<\/p>\n<p>TUnnel 238.1.1.1 -&gt; Joined by PE 2, 3<\/p>\n<p>Scenario -&gt; MDT Default Group &#8211; 239.1.1.1; MDT Data Group &#8211; 238.1.1.0 &#8211; 3<\/p>\n<p>IOS Routers<\/p>\n<p>\u00a0&#8211; On all PE routers<\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">ip vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0mdt default 239.1.1.1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0mdt data 238.1.1.0 0.0.0.3 threshold 500<\/span><\/p>\n<p>XR Routers<\/p>\n<p>\u00a0&#8211; On all PE routers<\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">vrf ABC<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0address-family ipv4<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 mdt default ipv4 239.1.1.1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 mdt data ipv4 238.1.1.0 0.0.0.3 threshold 500<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Multicast Distribution Tree (MDT)<\/p>\n","protected":false},"author":1,"featured_media":424,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[35,32,31],"class_list":["post-428","post","type-post","status-publish","format-standard","hentry","category-ccie","tag-mdt","tag-mpls","tag-published"],"_links":{"self":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=428"}],"version-history":[{"count":3,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/428\/revisions"}],"predecessor-version":[{"id":449,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/428\/revisions\/449"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/media\/424"}],"wp:attachment":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}