To implement MTR, you must configure the following:
You must configure one or more topologies. For each topology, you specify a string value that defines the type of traffic as well as an interface family. You can also enable a topology for IPv4 multicast traffic by including the ipv4-multicast statement. To configure a topology, include the topologies statement at the [edit routing-options hierarchy level:
- [edit routing-options]
- topologies {
-
- family inet { # inet6 is also supported, but you
must use static routes as the IGP.
- topology voice; # This action creates a routing table called :voice.inet.0
# for all routes destined for
the voice topology. A default topology is also
# automatically
created. Default topology routes are added to the inet.0
# routing table.
- }
- }
Configure a firewall filter that forces a lookup against the different routing tables. Any routes that match the forwarding class specified and then match a specified topology are installed in the routing table for that topology. To configure a firewall filter for MTR that performs filter-based forwarding, include the following configuration at the [edit firewall] hierarchy level:
- [edit firewall]
- family inet { # inet6 is also supported.
-
- filter topology-selection {
-
- term ef {
-
- from {
- forwarding-class expedited-forwarding; # The following
class types are also
# supported: assured-forwarding, best-effort, and network-control.
- }
-
- then {
- topology voice; # Specify the name of a configured topology.
- accept;
- }
- }
- }
- }
You must apply the filter to an ingress interface. Include the following statements at the [edit interfaces] hierarchy level to apply the filter to an interface:
- [edit interfaces]
- fe-2/2/1 {
-
- unit 0 {
-
- family inet {
-
- filter {
- input topology-selection; # Specify the name of the filter
configured under
# the [edit firewall] hierarchy
- }
- }
- }
- }
Configure BGP to add routes learned through BGP into a configured topology and the default topology, which is created automatically. Routes for the default topology are installed in the inet.0 routing table. To configure BGP for Multitopology Routing, include the following statements:
- [edit protocols bgp]
- group internal {
- type internal;
-
- family inet {
-
- unicast {
-
- topology voice;
- community target :1:1; # Any route that has :1:1 as its
target destination is
# installed in the routing table
for the voice topology. All received routes
# are
also automatically installed in the default topology.
- }
- }
- }
- }
To implement MTR, you must configure a interior gateway protocol (IGP) to route local network traffic. MTR supports both OSPFv2 and static routes. Only static routes support IPv6 addresses since MTR does not support OSPFv3.
For more information about configuring an IGP for MTR, see the following sections:
Configure OSPF to add routes from the default topology to the routing table for the specified topology. To enable OSPF for MTR, include the topology statement at the [edit protocols ospf] hierarchy level:
- [edit ospf protocols]
- topology voice { # Specify a topology name configured under
the [edit routing-options]
# hierarchy level.
- topology-id 127; # Specify a topology identifier from 32
through 127.
- }
Optionally, you can configure a specific metric for a topology for any interface on which OSPF has been enabled. Any topology-specific metric that you configure applies to routes advertised from that interface that belong only to that topology. To configure a topology-specific metric for an OSPF interface, include the following statements at the [edit protocols ospf] hierarchy level:
- [edit protocols ospf]
- area 0.0.0.0 {
-
- interface fe-2/2/1 {
- metric 10; # You can specify a metric for the interface
that overrides the default
# value of 1.
- }
-
- topology voice {
- metric 15; # Specify a topology-specific metric from 1
through 65,535.
- }
- }
- }
To configure a static route for MTR, you must specify the name of the routing table for the topology. Static routes for MTR support IPv4 and IPv6 addresses. To configure a static route for MTR, include the rib statement at the [edit routing-options] hierarchy level:
- [edit routing-options]
- rib :voice.inet6.0 { # Specify the routing-table name for
the voice topology configured
# at the [edit routing-options
topologies] hierarchy level.
- route 200::a4:0/126 next-hop 200::c0a8:1df;
- }
You can optionally configure a route resolution policy so that a routing table accepts routes from specific routing tables. For Multitopology Routing, you might want to configure a policy for the voice topology for IPv4 unicast traffic, for example, :voice.inet.0 to resolve routes through the inet.3 routing table. You might also want to override the default policy and not have the inet.0 routing table use the inet.3 routing table for route resolution. To configure a route resolution policy, include the resolution statement at the [edit routing-options] hierarchy level:
- [edit routing-options]
- resolution {
-
- rib inet.0 { # Specify the name of the routing table you
want to modify.
- resolution-ribs inet.0; # Specify use of the inet.0 table to resolve routes rather
# than the default
policy, which uses the inet.3 table.
- }
-
- rib :voice.inet.0 { # Specify that the routing table for
the voice topology for IPv4
# unicast traffic be modified.
- resolution-ribs [ inet.3 :voice.inet.0 ]; # Specify that
routes be resolved
# using the inet.3 routing
table for the voice topology.
- }
- }