DVMRP
The system supports Distance Vector Multicast Routing Protocol (DVMRP) on VRs to forward multicast datagrams through a network. DVMRP is an interior gateway protocol that supports operations within an autonomous system, but not between autonomous systems. The multicast backbone of the Internet, MBONE, uses DVMRP to forward multicast datagrams.
DVMRP is a dense-mode multicasting protocol and therefore uses a broadcast and prune mechanism. The protocol builds an SRT in a similar way to PIM DM (see Figure 4-3). DVMRP routers flood datagrams to all interfaces except the one that provides the shortest unicast route to the source. DVMRP uses pruning to prevent unnecessary sending of multicast messages through the SRT.
A DVMRP router sends prune messages to its neighbors if it discovers that:
- The network to which a host is attached has no active members of the multicast group.
- All neighbors, except the next-hop neighbor connected to the source, have pruned the source and the group.
When a neighbor receives a prune message from a DVMRP router, it removes that neighbor from its (Source, Group) pair table, which provides information to the multicast forwarding table.
If a host on a previously pruned branch wants to join a multicast group, it sends an IGMP message to its first-hop router. The first-hop router then sends a graft message upstream.
Identifying Neighbors
In this implementation of DVMRP, a neighbor is a directly connected DVMRP router. When you enable DVMRP on an interface, the associated VR adds information about local networks to its DVMRP routing table. The VR then sends probe messages periodically to learn about neighbors on each of its interfaces. To ensure compatibility with other DVMRP routers that do not send probe messages, the VR also updates its DVMRP routing table when it receives route report messages from such routers.
Advertising Routes
As its name suggests, DVMRP uses a distance vector routing algorithm. Such algorithms require that each router periodically inform its neighbors of its routing table. DVMRP routers advertise routes by sending DVMRP report messages. For each network path, the receiving router picks the neighbor advertising the lowest cost and adds that entry to its routing table for future advertisement.
The cost or metric for this routing protocol is the hop count back to the source. The hop count for a network device is the number of routers on the route between the source and that network device.
Table 4-2 shows an example of the routing table for a DVMRP router.
Table 4-2 Sample routing table for a DVMRP router
The DVMRP router maintains a (Source, Group) pair table that provides information to the multicast forwarding table. The (Source, Group) pair table is based on:
- Information from the DVMRP routing table
- Information learned from prune messages
- If IGMP and DVMRP are on the same interface, group information learned from IGMP
The (Source, Group) pair table includes a route from each subnetwork that contains a source to each multicast group of which that source is a member. These routes can be static or learned routes. Table 4-3 shows an example of the (Source, Group) pair table for DVMRP.
Table 4-3 Example of DVMRP (Source, Group) pair table
Enabling DVMRP on a VR
By default, DVMRP is enabled on the system. To enable DVMRP on a VR:
Note: If you do not specify a VR, you can configure DVMRP on the default router.![]()
You must now enable and configure DVMRP on one or more interfaces. See Activating DVMRP on an Interface. You can also set DVMRP limits for the VR. See Configuring DVMRP Limits.
Example
host1(config)#ip multicast-routinghost1(config)#virtual-router bostonActivating DVMRP on an Interface
By default, DVMRP is not activated on an interface. Configuring any DVMRP parameter on an interface automatically activates DVMRP on that interface. You can also activate DVMRP on an interface and use the default parameters.
ip dvmrp
- Use to activate DVMRP on an interface.
- This command automatically creates and enables DVMRP processing on the current VR.
- Issuing this command identifies this interface as one that DVMRP owns.
- Example
host1:boston(config-if)#ip dvmrpConfiguring DVMRP Limits
You can configure DVMRP and IGMP on the same interface. If you configure IGMP and DVMRP on an interface, the system considers that DVMRP owns the interface.
Note: You cannot configure DVMRP and PIM on the same interface.![]()
When you have enabled DVMRP processing on a VR, you can configure the following settings for that VR:
- The number of routes that the VR advertises on each interface.
- A maximum number of DVMRP routes at which the system generates a system log warning message and an SNMP trap.
ip dvmrp route-hog-notification
- Use to set the number of DVRMP routes that the system can record before it generates a system log warning message.
- The warning allows you to identify routers that are injecting large numbers of routes into the MBONE.
- Example
host1:boston(config)#ip dvmrp route-hog-notification 5000ip dvmrp route-limit
host1:boston(config)#ip dvmrp route-limit 5000Filtering DVMRP Reports
You can configure an interface to accept only reports with routes that appear on a standard IP access list. You can refine the set of accepted routes further, by defining a second access list of neighbors who can supply the specified routes.
For example, suppose you define an access list that specifies that the router accepts only reports for the route 172.16.2.0/24. You then define a second access list that specifies that only neighbors 192.168.1.1 and 193.168.1.1 can supply this route. If neighbor 192.168.2.2 supplies the route, the DVMRP router rejects this report.
You can also modify the value (distance) that the router associates with a DVMRP route when it computes the RPF interface for the source of a multicast packet. By default, the router associates a distance of 0 with DVMRP routes; this value indicates that the router should use DVMRP, rather than a unicast routing protocol, to transport multicast datagrams.
However, in a configuration where PIM discovers multicast routes and a unicast routing protocol performs RPF lookups, you can increase the administrative distance to favor the unicast protocol.
For information about defining access lists, see Chapter 1, Configuring Routing Policy.
ip dvmrp accept-filter
- Use to filter routes in DVMRP reports in accordance with a standard IP access list.
- Specify a standard IP access list of sources for which the interface will accept routes.
- To favor a unicast routing protocol, specify a DVMRP administrative distance.
- To restrict the neighbors from whom reports for routes on the first list will be accepted, specify a neighbor list.
- Example
host1:boston(config-if)#ip dvmrp accept-filter boston-list 4 neighbor-list boston-neighborsConfiguring DVMRP Summary Addresses
You can configure an interface to advertise a summary address with a known metric rather than a more specific route. DVMRP advertises the summary address if the DVMRP routing table contains a more specific route that matches the address and mask of the summary address.
If you want to advertise all routes rather than a summary, disable automatic summarization on the interface. By default, the system automatically summarizes DVMRP routes. DVMRP automatic summarization maps a unicast subnet route to a classful network number route when the subnet has a different network number from the IP address of the interface (or tunnel) over which the advertisement travels. If the interface is unnumbered, the system compares the network number of the numbered interface to the IP address to which the unnumbered interface points.
If you configure a summary address on an interface and do not disable automatic summarization, the interface advertises the least specific address.
ip dvmrp auto-summary
- Use to reenable the system to summarize routes automatically for this interface. By default, automatic summarization is enabled.
- Example
host1:boston(config-if)#ip dvmrp auto-summaryip dvmrp summary-address
- Use to advertise DVMRP summary addresses on an interface. By default, an interface advertises only summary addresses generated by automatic summarization.
- If you configure multiple overlapping summary addresses on an interface, the one with the shortest mask takes preference.
- The default metric value is 1.
- Example
host1:boston(config-if)#ip dvmrp summary-address 192.48.1.2 255.255.255.0 metric 1Changing the Metric for a Route
The metric for DVMRP is hop count. For example, a route with two hops over a slow serial line is preferable to a route with three hops over a faster optical line.
The system increments DVMRP routes in incoming reports by a default metric of one and in outgoing reports by a default of 0. You can change the metric for an interface to promote or demote the preference for associated routes.
ip dvmrp metric-offset
- Use to adjust the number of hops associated with a route. This action specifies that the route is more efficient or less efficient than an alternative route.
- Use the in keyword to specify the number of hops by which the system increments a DVMRP route advertised in incoming DVMRP reports. This option is the default.
- Use the out keyword to specify the number of hops by which the system increments a DVMRP route advertised in outgoing DVMRP reports.
- Example
host1:boston(config-if)#ip dvmrp metric-offset in 3
- Use the no version to revert to the default settings: 1 for incoming reports and 0 for outgoing reports.
Importing Routes from Other Protocols
You can import routing information from other protocols into the DVMRP routing table. Only routes that appear in the RPF table can be imported. To do so:
- If you want to use IS-IS, OSPF, or RIP routes, make those routes available to multicasting protocols. See Using Unicast Routes for RPF, earlier in this chapter.
- Access Router Configuration mode.
- Specify a route map.
- Import information from one type of routing domain into another.
redistribute
- Use to import information from another type of routing domain to the DVMRP domain. Only routes that appear in the RPF table can be imported.
- Specify the source protocol from which routes are being redistributed. It can be one of the following keywords: bgp, isis, ospf, static, and connected.
- Use the static keyword to redistribute static IP multicast routes into DVMRP.
- Use the keyword connected to redistribute routes that are established automatically in the RPF table when another multicast routing protocol, such as PIM, is enabled on an interface.
- Use the route-map keyword to configure the route map to filter imported routes from the source routing protocol to the current routing protocol. If you do not specify the route-map option, all routes are redistributed. If you specify the route-map option, but no route map tags are listed, no routes will be imported.
- Example: Importing routing information from BGP into DVMRP
host1:boston(config-router)#redistribute bgp 100 route-map boston-maproute-map
host1:boston(config-router)#route-map boston-map atm 3/2
- Use the no version to delete the route map. If you do not specify an interface, it removes the global route map if one exists.
router dvmrp
- Use to create and enable DVMRP processing on a VR or to access DVMRP Router Configuration mode.
- Example
host1:boston(config)#router dvmrpSpecifying Routes to Be Advertised
By default, if DVMRP owns an interface, that interface advertises all DVMRP routes it has learned to its neighbors. You can specify the routes that the interface advertises by issuing the ip dvmrp announce-filter command in conjunction with a standard IP access list. The IP access list defines the DVMRP routes that will be advertised.
ip dvmrp announce-filter
- Use to specify the DVMRP routes that an interface will advertise.
- Specify a standard IP access list of routes that the interface will advertise.
- Example
host1:boston(config-if)#ip dvmrp announce-filter boston-listPreventing Dynamic Route Distribution
By default, if you make changes to a route map, the system dynamically redistributes the routes in DVMRP. To prevent this dynamic redistribution, use the disable-dynamic-redistribute command.
disable-dynamic-redistribute
- Use to halt the dynamic redistribution of routes that are initiated by changes to a route map.
- Dynamic redistribution is enabled by default.
- Example
host1(config-router)#disable-dynamic-redistributeExchanging DVMRP Unicast Routes
DVMRP maintains its own unicast routing table, based on distance vector calculations. The routing table defines the best-known distance to each destination and how to get there. The router updates the tables by exchanging information with its neighbors. The DVMRP routing table is used solely for RPF lookups.
By default, if DVMRP owns an interface, that interface exchanges DVMRP unicast routes with its neighbors, and you cannot disable the exchange of routes. However, you can enable and disable the exchange of DVMRP unicast routes on interfaces that DVMRP does not own.
When an interface exchanges DVMRP routes, the router obtains routes from DVMRP report messages and stores them in its DVMRP routing table. Other multicast protocols, such as PIM, can then use these routes for RPF lookups. With this feature, PIM can use the DVMRP routing table even when the router is not running DVMRP.
All interfaces, including tunnels, support DVMRP unicast routing. DVMRP tunnels use DVMRP multicast routing to support DVMRP unicast routing.
ip dvmrp unicast-routing
host1:boston(config-if)#ip dvmrp unicast-routing
- Use the no version to disable the exchange of DVMRP unicast routes on an interface not owned by DVMRP.
Disabling and Removing DVMRP
You can disable DVMRP on a VR or an interface without removing the configuration. You can also remove DVMRP from a VR or an interface.
disable
- Use to disable DVMRP processing on a VR without removing the DVMRP configuration. By default, DVMRP processing is enabled.
- Example
host1:boston(config-router)#disableip dvmrp disable
host1:boston(config-if)#ip dvmrp disableip dvmrp
- Use to activate DVMRP on an interface.
- This command automatically creates and enables DVMRP processing on the current VR.
- Issuing this command identifies this interface as one that DVMRP owns.
- Example
host1:boston(config-if)#ip dvmrprouter dvmrp
host1:boston(config)#router dvmrpDeleting DVMRP Routes
You can clear one or more routes from the DVMRP routing table. However, if you do so, the routes may reappear in the routing table if they are rediscovered.
clear ip dvmrp routes
- Use to delete DVMRP routes from the routing table.
- If you do not specify any options, the system removes all routes except those associated with its own interfaces from the DVMRP table.
- If you specify an IP address but not a subnet mask, the system removes the longest route to that IP address from the DVMRP table.
- If you specify a subnet mask, the system removes that specific route from the DVMRP table.
- Example
host1:boston#clear ip dvmrp routesConfiguring DVMRP Tunnels
DVMRP tunnels allow the exchange of IP multicast traffic between routers separated by networks that do not support multicast routing. For information about DVMRP tunnels, see Chapter 5, Configuring IP Tunnels.
Monitoring DVMRP
You can establish a reference point for DVMRP statistics by setting the statistics counters to zero.
You can display DVMRP information with the show ip dvmrp commands.
baseline ip dvmrp
(host1)#baseline ip dvmrpshow ip dvmrp
- Dvmrp Admin State - state of DVMRP in the software: enabled or disabled
- Mcast Admin State - state of multicasting in the software: enabled or disabled
- Dvmrp Version - version of DVMRP with which this software is compatible
- GenerationID - a number the router generates each time it reboots; when the number changes, neighbors discard all information previously learned from the router
- NumRoutes - number of routes in the DVMRP routing table
- NumTrigdRts - number of routes waiting to be advertised, because a parameter for the route changed
- ReachableRoutes - number of routes that the router can currently reach
- RouteHogNotification - number of DVMRP routes that the system can record before it generates a system log warning message
- RouteLimit - maximum number of routes that the system can advertise on each interface
- Send-S32-Prunes-Only - indicates whether or not the router sends only S-32 prunes
- True - router sends only S-32 prunes and grafts to ensure compatibility with other protocols, such as PIM
- False - router sends S-32 and S/Prefix grafts and prunes
host1:boston>show ip dvmrpRouting Process DVMRP - Distance Vector Multicast Routing ProtocolDvmrp Admin State: EnabledMcast Admin State: EnabledDvmrp Version: 3.255GenerationID: 0x39aa07d3NumRoutes: 7NumTrigdRts: 0ReachableRoutes: 7RouteHogNotification: 10000RouteLimit: 7000Send-S32-Prunes-Only: falseshow ip dvmrp interface
- Interface - type and identifier of the interface connected to a source. For details about interface types and specifiers, see ERX Command Reference Guide, About This Guide.
- SourceAddress - IP address of the interface or, for an unnumbered interface, the address of the loopback interface
- Network/Mask - network and mask of the subnet on which the interface resides
- Received Bad Packets/RBdPk - number of bad packets received on this interface
- Received Bad Routes/RBdRt - number of bad routes received on this interface
- Routes Sent/SntRt - number of bad routes advertised on this interface
- Administrative State - configured state of DVMRP on this interface: enabled or disabled
- Summary Address - specific summary address that this interface should advertise
- auto-summary - status of automatic summarization: enabled or disabled
- metric-offset in - number of hops by which the system increments a DVMRP route advertised in incoming DVMRP reports
- metric-offset out - number of hops by which the system increments a DVMRP route advertised in outgoing DVMRP reports
- accept-filter(s) - names of IP access lists that specify the sources for which the interface accepts routes.
host1:v3#show ip dvmrp interfaceInterface: atm5/0.14SourceAddress: 14.0.1.1Network/Mask: 14.0.1.1/8Received Bad Packets: 0Received Bad Routes: 0Routes Sent: 2Administrative State: EnabledSummary Address(es)None Configuredauto-summary: Enabledmetric-offset in: 1metric-offset out: 0accept-filter(s): None Configuredhost1:boston#show ip dvmrp interface briefInterface SourceAddress Network/Mask RBdPk RBdRt SntRtatm5/0.14 14.0.1.1 14.0.1.1/8 0 0 2atm5/0.15 15.0.1.1 15.0.1.1/8 0 0 2show ip dvmrp mroute
- No Upstream Prune - router has sent no prune messages for this group
- Uptime - time, in seconds, that this (Source, Group) pair entry has been in the routing table
- RPF Interface - interface that provides the shortest path back to the source
- Outgoing interface list - types and identifiers of interfaces through which the VR forwards DVMRP messages, such as atm3/0. For details about interface types and specifiers, see ERX Command Reference Guide, About This Guide.
host1:boston#show ip dvmrp mrouteIP DVMRP Multicast Routing Table(40.0.0.0/16, 228.1.1.1) Uptime: 77Upstream Prune: noneRPF Interfaceatm5/0.40Outgoing interface list:atm5/0.31show ip dvmrp neighbor
- Interface - interface type and identifier, such as atm3/0. For details about interface types and specifiers, see ERX Command Reference Guide, About This Guide.
- Neighbor Address/NbrAddress - IP address of the neighbor
- Neighbor upTime/UpTime - length of time, in seconds, that this router has been a neighbor
- Neighbor Major Version/Maj - major number of the DVMRP version on the neighbor
- Neighbor Minor version/Min - minor number of the DVMRP version on the neighbor
- Neighbor capabilities/Cap - capability of the neighbor
- Prune/P - ability to send prune messages
- GenerationId/G - ability to create a GenID number
- Mtrace/M - ability to trace multicast routes
- Netmask/N - ability to send prunes and grafts with a network mask address
- Active - router is able to communicate with this neighbor
- Down - neighbor is down
- Ignoring - router is not accepting message from this neighbor
- Oneway - router is receiving messages from the neighbor, but the neighbor does not include the router's IP address in the messages. This state can indicate a starting transition, or a problem.
- Generation ID - number that the neighbor generates each time it boots; when the number changes, the VR discards all information previously learned from the router.
- Routes Received - number of routes learned from this neighbor
- Bad Routes Received - number of bad routes received from this neighbor
- Bad Packets Received - number of bad packets received from this neighbor
host1:boston#show ip dvmrp neighborNeighbor Address: 14.0.0.1Interface: atm5/0.14Neighbor upTime: 28Neighbor Major Version: 3Neighbor Minor Version: 255Neighbor Capabilities: Prune GenerationId Mtrace NetMaskNeighbor State: ActiveGeneneration ID: 0x3a13fbc2Routes Received: 1Bad Routes Received 0Bad Packets Received: 0host1:v3#show ip dvmrp neighbor briefInterface NbrAddress UpTime Maj Min Cap Stateatm5/0.14 14.0.0.1 32 3 255 PGMN Activeatm5/0.15 15.0.0.1 34 3 255 PGMN Activeshow ip dvmrp route
- Use to display information about DVMRP routes.
- Specify an IP address to display the best route to that address.
- Specify an IP address and subnet mask to display the route that exactly matches this IP address and subnet mask
- Specify an interface type and specifier to display routes associated with that interface.
- Specify the brief keyword to view a summary of information.
- Field descriptions
- Prefix - IP address of the network
- Length - length of the subnet mask for the network
- usNbr/Owner - IP address of the upstream neighbor associated with this route or a description of the origin of the route
- DVMRP Local - route is associated with a directly attached network
- DVMRP Aggregate - route is an aggregate route determined by summarization
- Metric - metric associated with this interface for this route
- ExpireTime - time until the VR starts the process for removing the route
- UpTime - length of time the route has been in the DVMRP routing table
- Interface - type and identifier for the interface, such as atm3/0. For details about interface types and specifiers, see ERX Command Reference Guide, About This Guide.
host1:boston>show ip dvmrp routePrefix/Length usNbr/Owner Metric ExpireTime UpTime Interface14.0.0.0/8 Dvmrp Local 1 Never 18 atm5/0.14Downstream Interface(s)Interfaceatm5/0.1515.0.0.0/8 Dvmrp Local 1 Never 18 atm5/0.15Downstream Interface(s)None25.0.0.0/8 14.0.0.1 2 129 11 atm5/0.14Downstream Interface(s)Interfaceatm5/0.15host1:v3#show ip dvmrp route briefPrefix/Length usNbr/Owner Metric ExpireTime UpTime Interface14.0.0.0/8 Dvmrp Local 1 Never 26 atm5/0.1415.0.0.0/8 Dvmrp Local 1 Never 26 atm5/0.1525.0.0.0/8 14.0.0.1 2 121 19 atm5/0.14show ip dvmrp routeNextHop
- addr - IP address of the next-hop router
- mlen - mask length of the next-hop router
- ifIndex - SNMP ifIndex for the interface that connects to the next hop
- Type - description of the next-hop router
host1:boston>show ip dvmrp routeNextHopaddr/mlen ifIndex Type172.16.0.0/16 4 leaf172.17.0.0/16 4 leaf172.18.0.0/16 3 leaf172.19.0.0/16 3 leaf172.19.0.0/16 4 branch