Figure 4 shows how you can use multiple instances of IS-IS to segregate traffic within a large network. The network consists of three administrative entities: voice_policy, other_policy, and the backbone or core. Each entity is composed of several geographically separate sites that are connected by the backbone and managed by the backbone entity.
Figure 4: Configuration for Multiple Routing Instances

Sites A and D belong to the voice_policy routing instance. Sites B and C belong to the other_policy instance. Router 1 and Router 3 at the edge of the backbone connect the routing instances. Each runs a separate IS-IS instance (one per entity).
Router 1 runs three IS-IS instances: one each for Site A (voice_policy), Site C (other_policy), and the backbone, otherwise known as the default instance. Router 3 also runs three IS-IS instances: one each for Site B (other_policy), Site D (voice_policy), and the backbone (default instance).
When Router 1 runs the IS-IS instances, the following occur:
Configuring Router 1
The following sections describe how to configure Router 1 in the backbone entity with multiple routing instances.
Configure the routing instances for voice-policy and other-policy. Use all routes learned from the routing tables in the routing table group common. Export routes tagged as belonging to the routing instance.
- [edit]
- routing-instances {
-
- voice-policy {
- interface so-2/2/2.0;
-
- protocols {
-
- isis {
- rib-group voice_to_inet;
- export filter-on-voice-policy;
-
- interface so-2/2/2.0 {
- level 2 metric 20;
- }
- }
- }
- }
- }
- other-policy {
- interface so-4/2/2.0;
-
- protocols {
-
- isis {
- rib-group other_to_inet;
- export filter-on-other-policy;
-
- interface so-4/2/2.0 {
- level 2 metric 20;
- }
- }
- }
- }
Configure the routing table group inet_to_voice_and_other to share routes with the inet.0 (in the backbone entity), voice-policy.inet.0, and other-policy.inet.0 routing tables:
- [edit]
- routing-options {
-
- rib-groups {
-
- inet_to_voice_and_other {
- import-rib [ inet.0 voice-policy.inet.0 other-policy.inet.0
];
- }
- }
- }
Configure the routing table group voice_to_inet to share routes with the inet.0 (in the backbone entity) and voice-policy.inet.0 routing tables:
- [edit]
- routing-options {
-
- rib-groups {
-
- voice_to_inet {
- import-rib [ voice-policy.inet.0 inet.0];
- }
- }
- }
Configure the routing table group other_to_inet to share routes with the inet.0 (in the backbone entity) and other-policy.inet.0 routing tables:
- [edit]
- routing-options {
-
- rib-groups {
-
- other_to_inet {
- import-rib [ other-policy.inet.0 inet.0];
- }
- }
- }
Configure the default IS-IS instance so that the routes learned from the routing instances are installed in inet.0 and the tagged routes are exported from voice-policy and other-policy:
- [edit]
- protocols {
-
- isis {
- export apply-tag;
- rib-group inet_to_voice_and_other;
-
- interface so-1/0/0.0 {
- level 2 metric 20;
- }
-
- interface fxp0.0 {
- disable;
- }
-
- interface lo0.0 {
- passive;
- }
- }
- }
Configure routing policy for the routes learned from the routing instances:
- [edit]
- policy-options {
-
- policy-statement apply-tag {
-
- term voice-policy {
- from instance voice-policy;
-
- then {
- tag 10;
- accept;
- }
- }
-
- term other-policy {
- from instance other-policy;
-
- then {
- tag 12;
- accept;
- }
- }
- }
-
- policy-statement filter-on-voice-policy {
-
- from {
- tag 10;
- protocol isis;
- }
-
- then {
- accept;
- }
- }
-
- policy-statement filter-on-other-policy {
-
- from {
- tag 12;
- protocol isis;
- }
-
- then {
- accept;
- }
- }
- }
Configuring Router 3
The configuration for Router 3 is the same as for Router 1 except that the interface names might differ. In this topology, the interface so-5/2/2.0 belongs to other-policy, and so-3/2/2.0 belongs to voice-policy.