Multicasting over GRE tunnels --------------------------------------------------------------------------- Nov 1997 jzwiebel The addition of static mroutes and other enhancements to the IOS code have made the configuration of GRE tunnels easier. The configuration suggested in Sept, 94, still works if you can dedicate a router to routing just multicast packets. If you need to configure a GRE tunnel on routers that also are doing unicast routing, as in the diagram below, you can use these configurations. tunnel0 tunnel0 +------------------------------------+ | | source------rtr1 --- non mcast routers --------- rtr2-------member int1 int0 int0 int1 These configurations assume the source and member as shown. If the member is also transmitting to the group then a static mroute would have to be configured on rtr1 pointing to rtr2. rtr1: interface Tunnel0 ip unnumbered Fddi1/0 ip pim sparse-dense-mode tunnel source Fddi1/0 tunnel destination 147.1.2.103 rtr2: interface Tunnel0 ip unnumbered FastEthernet3/1/0 ip pim sparse-dense-mode tunnel source FastEthernet3/1/0 tunnel destination 147.1.3.110 ! ip mroute 147.1.1.0 255.255.255.0 Tunnel0 "ip pim sparse-dense" is used so that both sparse and dense groups can be forwarded out the tunnel interface. If there is no RP for the group, mpackets to the group will be forwarded as dense mode packets would, or as if the interface were configured "ip pim dense". The static mroute shown is the simplest one possible. The entire static mroute command is shown here (as of this date, it may change). You may wish to modify your configuration so the RPF interface covers a larger number of potential source routes. [no] ip mroute [] [route-map ] | [] Configures a multicast static route (called a "static mroute"). When a source range is specified, the mroute applies only to those sources. When is specified, the mroute applies to those sources that have been learned by the corresponding routing process. If route-map is specified, further classification can be accomplished by the match clauses from . If the mroute is selected, the address dictates the incoming interface for the source that matches the mroute. If the is a PIM neighbor, PIM Joins, Grafts, and Prunes will be sent to it. The can be a host address of a directly connected router or a route. When it is a route, a recursive lookup is done from the unicast routing table to find a directly connected neighbor. If is not specified, is used as the incoming interface. is used to decide if a unicast route, a DVMRP route, or a static mroute should be used for the RPF lookup. The lower distances have better preference. If the static mroute has the same distance as the other two RPF sources, the static mroute will take precedence. There are only two exceptions to this rule, directly connected routes and the default unicast route. Default is 0. Static mroutes are local to the router and are not redistributed by any dynamic routing protocol. [11.0] If you find that your GRE tunnel is not working, some of the possible causes: --The tunnel source and destination are not compatable on each end of the tunnel. For instance if the tunnel destination on rtr2 was changed to the ip address of rtr1, while the configuration on rtr1 remained the same, you may have problems. --The RPF isn't what you think the RPF is. Use the command "sh ip rpf " to ensure that the source is suppose to be received over the tunnel --The router isn't forwarding over the tunnel because it isn't seeing a pim neighbor. "sh ip pim neighbor" should show the neighbor over the tunnel. "sh ip pim int" should show that there is a neighbor. The neighbor may not show up because of the choices you've made for the tunnel source and destination. --The router isn't fastswitching mpackets. This also may be caused by a mismatch in your choice for the tunnel source and destination. "sh ip mc" should _not_ show "never" for an (s,g) entry. If it does "debug ip mpack " will show every mpacket that the router is switching confirming that the router is process-switching rather than fast-switching. It may be helpful to turn off the mroute-cache by configuring "no ip mroute-c" on the tunnel interface. If changing the config forwards mpackets then you should consider changing the tunnel source and destination and reconfiguring the mcache on the tunnel. --If you find that the router configured with a tunnel isn't pruning correctly, check that there are no downstream PIM neighbors or DVMRP routers. --------------------------------------------------------------------------- Sept 1994 jzwiebel In many cases you will want to configure your network to use GRE tunnels to send PIM and multicast traffic between routers that may not be on the same physical network. This may let you pick and choose which routers to convert to PIM without requiring you to upgrade all routers on your network. There are a couple of caveats to this. You must be able to maintain the RPF alignment information that is required by PIM to know which interfaces to use for forwarding a multicast packet. You need to be aware of the limitations of a GRE tunnel and attempt to send only multicast traffic over the tunnels. The easiest way to accomplish this is to dedicate specific routers to forwarding multicast traffic and then logically layering your multicast net on top of your production network. The multicast network needs to use a routing protocol that has a better administrative distance than our real network. If you use a protocol like EIGRP you must disable auto-summary so PIM will know the RPF. You also need to make sure that your multicast routers do not advertise the tunnel to your real network. (NOTE that this may mean traceroute will not find hosts that are reached over the logical multicast network since the hosts will use the real network for unicast traffic.) The following commands show how this is done for EIGRP. router eigrp 1 distance eigrp 80 170 no auto-summary router igrp 109 passive-interface Ethernet0 passive-interface Ethernet1 You need to set up GRE tunnels between the routers in your multicast network. interface Tunnel0 description Tunnel to Forster-Cancun ip address 10.9.61.1 255.255.0.0 ip pim sparse-mode tunnel source Ethernet0 tunnel destination 131.108.53.62 You need to specify a static host route between the endpoints of the tunnel. ip route 131.108.53.62 255.255.255.255 131.108.61.15 Remember the RPF must be maintained for PIM to correctly forward a packet. The unicast routing table in your multicast routers must show where a multicast packet came from by showing what interface a unicast packet would be sent to.