3
Host A: 
Eth1 = Multicast incoming from upstream provider
OpenVPN_interface_point_A = point to point interface with point B
ASN = 100

Host B: 
OpenVPN_interface_point_B = point to point interface with point A
ASN = 200

How exactly can I routing specific multicast address from Eth1 to OpenVPN_interface_point_B ?

Both Host A and B are running Quagga BGP version 4 (I know I need to change version 4+, that's not a problem in the future)

PoC Lab: PoC network diagram

Router A configuration:

routerA# show run

Current configuration:
!
password quagga
!
router bgp 1
 bgp router-id 172.24.0.65
 network 172.24.0.64/30
 neighbor 172.24.0.66 remote-as 2
 neighbor 172.24.0.66 soft-reconfiguration inbound
!
 address-family ipv4 multicast
 network 10.101.16.128/27
 neighbor 172.24.0.66 activate
 exit-address-family
!
line vty
!
end

Router A BGP details:

routerA# show ip bgp sum
BGP router identifier 172.24.0.65, local AS number 1
RIB entries 1, using 112 bytes of memory
Peers 1, using 4568 bytes of memory

Neighbor        V         AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.24.0.66     4     2      35      43        0    0    0 00:17:28        1

Total number of neighbors 1

routerA# show ip bgp ipv4 multicast 
BGP table version is 0, local router ID is 172.24.0.65
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
              i internal, r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 10.101.16.128/27 0.0.0.0                  0         32768 i

Total number of prefixes 1

Router B configuration:

routerB# show run

Current configuration:
!
password quagga
!
router bgp 2
 bgp router-id 172.24.0.66
 network 172.24.0.64/30
 neighbor 172.24.0.65 remote-as 1
 neighbor 172.24.0.65 soft-reconfiguration inbound
!
 address-family ipv4 multicast
 neighbor 172.24.0.65 activate
 exit-address-family
!
line vty
!
end

Router B detail:

routerB# show ip bgp sum
BGP router identifier 172.24.0.66, local AS number 2
RIB entries 1, using 112 bytes of memory
Peers 1, using 4568 bytes of memory

Neighbor        V         AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.24.0.65     4     1      43      47        0    0    0 00:23:55        1

Total number of neighbors 1
routerB# show ip bgp ipv4 multicast 
BGP table version is 0, local router ID is 172.24.0.66
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
              i internal, r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 10.101.16.128/27 172.24.0.65              0             0 1 i

Total number of prefixes 1

Host 1 iperf command:

iperf -c 225.0.100.100 -u -t 0000 -i 1 -T 10

Router B iperf command:

iperf -s -u -B 225.0.100.100 -i 1

Router B still can't receive multicast packet

  • Enable Quagga pim plus igmp the same way you did on the other question. – Everton Jan 31 '16 at 0:03
  • So I can't just run BGP to deal with multicast routing, pimd is essential to this setup, am I correct? – Thomas G. Lau Feb 1 '16 at 5:58
  • In your setup, RouterA must perform multicast forwarding/replication. The easiest way to achieve this is by running Quagga pimd on it. So yes, 'modern' IP multicast usually means running PIM. Remember, PIM does not have a routing protocol in it -- it relies on correct UNICAST routing tables towards SOURCE for proper multicast function. Within an autonomous system, correct unicast routing usually requires some IGP (like OSPF). Between two AS'es, BGP is commonly used for correct UNICAST routing towards multicast SOURCE. – Everton Feb 1 '16 at 12:02
  • Did any answer help you? if so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer. – Ron Maupin Aug 7 '17 at 18:45
2

Multicast routing is different than your unicast routing protocols like BGP. PIM is the standard for multicast routing. Every router in the path must support a common multicast routing scheme (sparse, dense, or sparse/dense mode, and any RPs which are necessary), and that usually doesn't happen across ASes because you usually don't have control over neighbor ASes.

Normally, you would create a DVMRP tunnel from one end of the multicast path to the other end of the path, and then run multicast routing (PIM) through the tunnel. This doesn't affect your BGP configuration, other than making sure you can reach the other end of the tunnel with unicast, since the tunnel will encapsulate your multicast inside unicast packets.

enter image description here

| improve this answer | |
  • I think this beyond my resource could handle, since I stated clear I only have Quagga router on both side, so there is no way I could setup DVMRP tunnel. – Thomas G. Lau Jan 27 '16 at 3:23
  • I don't understand why your routers can't tunnel. Routers drop multicast packets unless they have multicast routing enabled. – Ron Maupin Jan 27 '16 at 3:40
  • your theory works if I am running hardware router, but in face I am using Linux router, which makes stuff more complicated, including PIM, and I think DVMRP isn't available. – Thomas G. Lau Jan 27 '16 at 3:41
  • Multicast needs multicast routing, that's why you can't multicast over the Internet without a tunnel. Every router in the path would need to be configured for your multicast strategy, and that's just not going to happen. – Ron Maupin Jan 27 '16 at 3:43
  • I understand, as I said OpenVPN is a point to point tunnel already, it's not going via plain internet, please have a look my original post. – Thomas G. Lau Jan 27 '16 at 3:44
1

How exactly can I routing specific multicast address from Eth1 to OpenVPN_interface_point_B ?

This is a configuration sketch to get you started.

Host A will send multicast source network 192.168.0.0/24 to Host B by using BGP.

! 1.1.1.1 = Host A
! 1.1.1.2 = Host B

! Host A - partial quagga config for bgpd
router bgp 100
 neighbor 1.1.1.2 remote-as 200
 address-family ipv4 multicast 
  network 192.168.0.0/24 !! replace 192.168.0.0/24 with network for multicast source
  neighbor 1.1.1.2 activate 
 exit-address-family 

! Host B - partial quagga config for bgpd
router bgp 200
 neighbor 1.1.1.1 remote-as 100
 address-family ipv4 multicast 
  neighbor 1.1.1.1 activate 
 exit-address-family 
| improve this answer | |
  • This is what I read online, how does bgp 100 router know which multicast traffic should forward to bgp 200 router?! – Thomas G. Lau Jan 27 '16 at 0:48
  • I read your post again, the example network 192.168.0.0/24 is not the source network card IP, it's the multicast source IP; So is it possible to route specific multicast IP to other network? Also, does it means I could skip PIM setup? – Thomas G. Lau Jan 27 '16 at 3:25
  • For Inter-AS multicast, you usually need both: PIM+BGP. Remember that PIM relies on correct UNICAST routing for the address of the multicast source. Within one AS, this usually means PIM+IGP. Among multiple autonomous systems, IGP isn't practical then you use BGP to announce, across AS boundaries, unicast networks for multicast sources. "how does bgp 100 router know which multicast traffic should forward to bgp 200 router" --> PIM provides one answer. (There are others of course.) – Everton Jan 27 '16 at 12:21
  • 1
    @ThomasG.Lau Please remember voting up answers that are helpful for you. – Everton Jan 28 '16 at 12:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.