The Distance Vector Multicast Routing Protocol (DVMRP) provides connectionless datagram delivery to a group of hosts across an internetwork. DVMRP is a distributed protocol that dynamically generates IP multicast delivery trees using a technique called reverse-path multicasting (RPM) to forward multicast traffic to downstream interfaces. These mechanisms allow the formation of shortest- path trees, which are used to reach all group members from each network source of multicast traffic. DVMRP is designed to be used as an IGP within a multicast domain. Because not all IP routers support native multicast routing, DVMRP includes direct support for tunneling IP multicast datagrams through routers. The IP multicast datagrams are encapsulated in unicast IP packets and addressed to the routers that do support native multicast routing. DVMRP treats tunnel interfaces and physical network interfaces the same. DVMRP routers dynamically discover their neighbors by sending neighbor probe messages periodically to an IP multicast group address that is reserved for all DVMRP routers. Table 9.8 lists the DVMRP standard supported by the JUNOS software. Table 9.8. DVMRP Standard Supported by JUNOS Software
DVMRP Packet FormatsAll DVMRP packets have a common 4-byte header that consists of the following fields:
When a DVMRP router is configured to run on an interface, it multicasts probe messages to inform other DVMRP routers that it is operational. These messages allow the routers to locate each other and to determine their capabilities, and they provide a keepalive function. Probe messages consist of the DVMRP header plus the following fields:
Route report messages contain routing information that is used to determine the reverse path neighbor back to the source of the multicast traffic. These messages consist of the DVMRP header plus the following fields:
When the routers at the leaves of the multicast tree begin to receive unwanted multicast traffic, they send prune messages upstream toward the source. These messages consist of the DVMRP header plus the following fields:
After a multicast delivery tree has been pruned back, DVMRP sends graft messages to join new receivers onto the multicast tree. These messages consist of the DVMRP header plus the following fields:
DVMRP sends graft acknowledgment packets to ensure that the information in graft messages is correct. These messages consist of the DVMRP header plus the following fields:
Configuring DVMRPFor DVMRP to operate on an interface, you must configure it by including the following statements: [edit protocols] dvmrp { disable; export [ policy-names ]; import [ policy-names ]; interface interface-name { disable; hello-interval seconds ; metric metric ; mode (forwarding unicast-routing); } rib-group group-name2 ; traceoptions { file name <replace> <size size > <files number > <no-stamp> <(world-readable no-world-readable)>; flag flag < flag-modifier > <disable>; } } routing-options { interface-routes { rib-group group-name1 ; } rib-groups { group-name1 { import-rib [ inet.0 inet.2 ]; } group-name2 { import-rib inet.2; export-rib inet.2; } } } If you have configured PIM on an interface, you can configure DVMRP in unicast-routing mode only. You cannot configure PIM and DVMRP in forwarding mode at the same time. Modifying the DVMRP Hold-Time PeriodThe DVMRP hold-time period is the amount of time a neighbor should consider the sending router (this router) to be operative (up). The default hold-time period is 35 seconds. To modify the hold-time value for the local router, include the hold-time statement. The hold-time period can range from 1 through 255 seconds. [edit protocols dvmrp interface interface-name ] hold-time seconds ; Modifying the Metric ValueFor each source network reported, a route metric is associated with the unicast route being reported . The metric is the sum of the interface metrics between the router originating the report and the source network. A metric of 32 marks the source network as unreachable, thus limiting the breadth of the DVMRP network and placing an upper bound on the DVMRP convergence time. By default, a metric value of 1 is associated with each DVMRP route. To modify the metric value, include the metric statement. The metric can range from 1 through 31. [edit protocols dvmrp interface interface-name ] metric metric ; Disabling DVMRP on an InterfaceTo disable DVMRP on an interface, include the disable statement: [edit protocols dvmrp interface interface-name ] disable; Configuring DVMRP Routing PolicyTo apply policies to routes being imported into the routing table from DVMRP, include the import statement, listing the names of one or more policy filters to be evaluated. If you specify more than one policy, they are evaluated in the order specified, from first to last, and the first matching policy is applied to the route. If no match is found, DVMRP shares with the routing table only those routes that were learned from DVMRP routers. [edit protocols dvmrp] import [ policy-names ];
To apply policies to routes being exported from the routing table into DVMRP, include the export statement, listing the names of one or more policies to be evaluated. If you specify more than one policy, they are evaluated in the order specified, from first to last, and the first matching policy is applied to the route. If no match is found, the routing table exports into DVMRP only the routes that it learned from DVMRP and direct routes. [edit protocols dvmrp] export [ policy-names ]; Configuring DVMRP Routing ModesYou can configure DVMRP for either forwarding or unicast-routing modes. In forwarding mode, DVMRP operates its protocol normally (for example, it does the routing as well as multicast data forwarding). In unicast routing mode, you can use DVMRP for unicast routing only; the actual forwarding of multicast data is done by enabling PIM on that interface. The default mode is forwarding. To configure DVMRP for unicast routing, include the mode unicast-routing statement: [edit protocols dvmrp interface interface-name ] mode unicast-routing; Tracing DVMRP Protocol TrafficTo trace DVMRP protocol traffic, specify DVMRP-specific options by including the traceoptions statement: [edit protocols dvmrp] traceoptions { file name <replace> <size size > <files number > <no-stamp> <(world-readable no-world-readable)>; flag flag < flag-modifier > <disable>; }
You can specify the following DVMRP-specific options in the DVMRP traceoptions statement:
|