GateD-5.0 now keeps multiple RIBs with active routes. Currently two RIBs are available: "unicast" and "multicast". But only routes in the unicast RIB get installed in the kernel (since the Unix kernel supports only routes in the unicast RIB). The multicast RIB is used by multicast routing protocols to construct multicast trees.
Each route may be active in one or more RIBs simultaneously.
The direct route(s) for each multicast-capable interface apply to (are eligible to become active in) the Multicast RIB. The direct route(s) for each unicast-capable interface apply to the unicast RIB. No additional configuration is needed to achieve this.
Static routes can now be tagged with one or more RIB names. By default, a static route applies only to the unicast RIB.
Example:
static { 10.0.0.0 masklen 24 interface le1; 10.0.1.0 masklen 24 interface le1 unicast; 10.0.2.0 masklen 24 interface le1 multicast; 10.0.3.0 masklen 24 interface le1 unicast multicast; };
The first two static routes apply only to the unicast RIB. The third applies only to the multicast RIB, and the last applies to both.
RIBs need not specified be for aggregate routes. By default, an aggregate applies to all RIBs to which any contributing route applies. For example, an aggregate applies to the unicast RIB if and only if any contributing route applies to the unicast RIB.
Example:
aggregate 10.0.0.0 masklen 8 { proto static { 10.0.0.0 masklen 8 refines; }; }; If any static route in the unicast RIB matches the route filter (which three of the four static routes in the previous example do), the aggregate will exist in the unicast RIB. Likewise, for the multicast RIB.
RIB limits may, however, be specified. By default, the limit is all ribs (i.e., all RIBs to which any contributing route applies). This can be overridden with a more specific limit, as in the example below:
aggregate 10.0.0.0 masklen 8 unicast { proto static { 10.0.0.0 masklen 8 refines; }; }; The above aggregate applies ONLY to the unicast RIB (and only if a contributing route is in the unicast RIB). Contributing routes in other RIBs are ignored.
Normally, routes from unicast routing protocols are only imported into the unicast RIB. Routes from multicast routing protocols (i.e. DVMRP) are only imported into the multicast RIB. However, many multicast routing protocols (e.g., PIM-SM, PIM-DM, CBT) do not maintain their own routing table, but rather rely on the unicast routing protocol instead. To support these protocols, unicast routes must be imported into the Multicast RIB. If this is not done, only interface routes will be available to PIM-SM, etc.
Since BGP4+ is able to tag routes as to which RIBs they apply, no additional configuration is required for BGP routes. The RIP, Hello, and Redirect protocols, however, do not do this. Hence, GateD must be configured to import RIP (etc) routes into the multicast RIB.
One or more RIB names may be specified as follows (where multicast and unicast appear below):
import proto ( rip | hello | redirect ) [ ( interface interface_list ) | ( gateway gateway_list ) ] [ preference preference ] [ multicast ] [ unicast ] { route_filter [ restrict | ( preference preference ) ] [ multicast ] [ unicast ]; };
If no RIBs are specified, the unicast RIB (only) is assumed.
Example 1:
import proto rip { 0.0.0.0 masklen 0 refines; 198.0.0.0 masklen 8 refines multicast unicast; }; This example keeps the normal behavior of allowing all RIP routes in the unicast RIB, but also imports all routes falling under 198/8 into the multicast RIB.
Example 2:
import proto rip { 0.0.0.0 masklen 0 refines multicast unicast; }; This example imports all RIP routes into the multicast RIB (as well as the usual unicast RIB). This would be used, for example, in a PIM-SM domain using RIP as the unicast routing protocol.
To import OSPF routes into the multicast RIB, you currently must import all OSPF routes as follows:
ospf yes { defaults { ribs unicast multicast; ... }; ... };
You may not import OSPF routes into only the multicast RIB. Attempting to do so will be flagged as a configuration error.
The "show ip walkup" and "show ip walkdown" commands have been expanded to allow a RIB name as an additional optional argument. If no RIB is specified, the output covers all RIBs combined. Also, another column has been added to their output to show to which RIBs a route applies ("u" for unicast, "m" for multicast).
Example:
GateD> sh ip walkdown 10 100 um Agg 10/8 --- IGP (Id 1) 100 u Sta 10/24 192.168.10.89 IGP (Id 1) 100 u Sta 10.0.1/24 192.168.10.89 IGP (Id 1) 100 m Sta 10.0.2/24 192.168.10.89 IGP (Id 1) 100 um Sta 10.0.3/24 192.168.10.89 IGP (Id 1) GateD> sh ip walkdown 10 unicast 100 u Agg 10/8 --- IGP (Id 1) 100 u Sta 10/24 192.168.10.89 IGP (Id 1) 100 u Sta 10.0.1/24 192.168.10.89 IGP (Id 1) 100 u Sta 10.0.3/24 192.168.10.89 IGP (Id 1) GateD> sh ip walkdown 10 m 100 m Agg 10/8 --- IGP (Id 1) 100 m Sta 10.0.2/24 192.168.10.89 IGP (Id 1) 100 m Sta 10.0.3/24 192.168.10.89 IGP (Id 1) GateD>
Last updated November 29, 1997
gated@gated.merit.edu