Merit GateD Consortium Documentation

GateD Versions 4.2/5.x/6.x

6.1.9 Multiple RIBS Documentation

6.1.9.1 Overview

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.


6.1.9.2 Direct (interface) routes

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.


6.1.9.3 Static routes

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.


6.1.9.4 Aggregate routes

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.


6.1.9.5 Importing routes

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.


6.1.9.6 GII

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