ON THIS PAGE
Example: Configuring IS-IS Dual Stacking of IPv4 and IPv6 Unicast Addresses
This example shows how to configure IPv4 and IPv6 dual stacking in IS-IS.
Requirements
No special configuration beyond device initialization is required before configuring this example.
Overview
You can use IPv4 and IPv6 dual stacking to begin your migration from IPv4 to IPv6 by implementing IPv6 alongside IPv4 in your existing networks. This allows you to implement IPv6 so that you can provide the same services over IPv6—for example, video, voice, high-quality data—that you currently provide in your IPv4 networks. You can then perform incremental upgrades to IPv6 and avoid service disruptions while migrating from IPv4 to IPv6.
Unlike RIP and OSPF, IS-IS does not require a distinct protocol or a new version to support IPv6. Because IS-IS uses ISO addresses, the configuration for IPv6 and IPv4 is identical in the Junos OS implementation of IS-IS. For IS-IS to carry IPv6 routes, you only need to add IPv6 addresses to IS-IS enabled interfaces or include other IPv6 routes in your IS-IS export policy.
The only explicit configuration needed in IS-IS with regard to IPv6 is if you want to disable it. Alternatively, you can disable IPv4 routing and use IS-IS with IPv6 only. An example of each is provided here:
Disable IPv6 routing in IS-IS:
[edit protocols isis] user@host# set no-ipv6-routing
Use IS-IS exclusively for IPv6 routing:
[edit protocols isis] user@host# set no-ipv4-routing
Figure 1 shows the topology used in this example.
CLI Quick Configuration shows the configuration for all of the devices in Figure 1. The section #configuration326__isis-dual-stack-step-by-step describes the steps on Device R1.
Configuration
Procedure
CLI Quick Configuration
To quickly configure
this example, copy the following commands, paste them into a text
file, remove any line breaks, change any details necessary to match
your network configuration, and then copy and paste the commands into
the CLI at the [edit]
hierarchy level.
Device R1
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/0 unit 0 family inet6 address 2001:db8:0:5::/64 eui-64 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.17/30 set interfaces fe-1/2/1 unit 0 family iso set interfaces fe-1/2/1 unit 0 family inet6 address 2001:db8:0:1::/64 eui-64 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0001.00 set interfaces lo0 unit 0 family inet6 address 2001:db8::1/128 set protocols isis interface fe-1/2/0.0 set protocols isis interface fe-1/2/1.0 set protocols isis interface lo0.0
Device R2
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/0 unit 0 family inet6 address 2001:db8:0:5::/64 eui-64 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0002.00 set interfaces lo0 unit 0 family inet6 address 2001:db8::2/128 set protocols isis interface fe-1/2/0.0 set protocols isis interface lo0.0
Device R3
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.18/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/0 unit 0 family inet6 address 2001:db8:0:1::/64 eui-64 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0003.00 set interfaces lo0 unit 0 family inet6 address 2001:db8::3/128 set protocols isis interface fe-1/2/0.0 set protocols isis interface lo0.0
Step-by-Step Procedure
The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.
To configure IS-IS dual stacking:
Configure the interfaces, including both IPv4 and IPv6 addresses on each interface.
Optionally, include the
eui-64
statement to automatically generate the host number portion of interface addresses.[edit interfaces] user@R1# set fe-1/2/0 unit 0 family inet address 10.0.0.1/30 user@R1# set fe-1/2/0 unit 0 family iso user@R1# set fe-1/2/0 unit 0 family inet6 address 2001:db8:0:5::/64 eui-64 user@R1# set fe-1/2/1 unit 0 family inet address 10.0.0.17/30 user@R1# set fe-1/2/1 unit 0 family iso user@R1# set fe-1/2/1 unit 0 family inet6 address 2001:db8:0:1::/64 eui-64 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32 user@R1# set lo0 unit 0 family iso address 49.0002.0192.0168.0001.00 user@R1# set lo0 unit 0 family inet6 address 2001:db8::1/128
Enable IS-IS on the interfaces.
[edit protocols isis] user@R1# set interface fe-1/2/0.0 user@R1# set interface fe-1/2/1.0 user@R1# set interface lo0.0
Results
From configuration mode, confirm your configuration
by entering the show interfaces
and show protocols
commands. If the output does not display the intended configuration,
repeat the instructions in this example to correct the configuration.
user@R1# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.1/30;
}
family iso;
family inet6 {
address 2001:db8:0:5::/64 {
eui-64;
}
}
}
}
fe-1/2/1 {
unit 0 {
family inet {
address 10.0.0.17/30;
}
family iso;
family inet6 {
address 2001:db8:0:1::/64 {
eui-64;
}
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.1/32;
}
family iso {
address 49.0002.0192.0168.0001.00;
}
family inet6 {
address 2001:db8::1/128;
}
}
}
user@R1# show protocols
isis {
interface fe-1/2/0.0;
interface fe-1/2/1.0;
interface lo0.0;
}
If you are done configuring the device, enter commit
from configuration mode.
Verification
Confirm that the configuration is working properly.
Checking the Neighbor Adjacencies
Purpose
Determine what topologies are supported on neighboring IS-IS devices.
Action
From operational mode, enter the show isis adjacency
detail
command.
user@R1> show isis adjacency detail R2 Interface: fe-1/2/0.0, Level: 3, State: Up, Expires in 24 secs Priority: 0, Up/Down transitions: 1, Last transition: 18:34:08 ago Circuit type: 3, Speaks: IP, IPv6 Topologies: Unicast Restart capable: Yes, Adjacency advertisement: Advertise IP addresses: 10.0.0.2 IPv6 addresses: fe80::2a0:a514:0:24c R3 Interface: fe-1/2/1.0, Level: 3, State: Up, Expires in 21 secs Priority: 0, Up/Down transitions: 1, Last transition: 18:33:41 ago Circuit type: 3, Speaks: IP, IPv6 Topologies: Unicast Restart capable: Yes, Adjacency advertisement: Advertise IP addresses: 10.0.0.18 IPv6 addresses: fe80::2a0:a514:0:124c
Meaning
As expected, the output shows that the two neighbors support both IPv4 and IPv6. The IPv4 address and the IPv6 link-local address are also shown.
Pinging the IPv6 Interfaces
Purpose
Make sure that you can ping the remote IPv6 interfaces.
Action
From operational mode, enter the ping
command
to ping from Device R2 to Device R3.
Determine the IPv6 address assigned to Device R3.
If you use EUI-64 addressing as shown in the example, the host portion of the IPv6 addresses is assigned automatically. To determine what addresses are assigned, use the
show interfaces terse
command on Device R3.user@R3> show interfaces terse Interface Admin Link Proto Local Remote fe-1/2/0 fe-1/2/0.0 up up inet 10.0.0.18/30 iso inet6 2001:db8:0:1:2a0:a514:0:124c/64 fe80::2a0:a514:0:124c/64 lo0 lo0.0 up up inet 192.168.0.3 --> 0/0 iso 49.0002.0192.0168.0003 inet6 2001:db8::3 fe80::2a0:a50f:fc56:14c
The IPv6 addresses that should be pingable are 2001:db8:0:1:2a0:a514:0:124c and 2001:db8::3.
From Device R2, ping the Device R3 fe-1/2/0.0 IPv6 interface address and the lo0.0 IPv6 interface address.
user@R2> ping 2001:db8:0:1:2a0:a514:0:124c PING6(56=40+8+8 bytes) 2001:db8:0:5:2a0:a514:0:24c --> 2001:db8:0:1:2a0:a514:0:124c 16 bytes from 2001:db8:0:1:2a0:a514:0:124c, icmp_seq=0 hlim=63 time=2.373 ms 16 bytes from 2001:db8:0:1:2a0:a514:0:124c, icmp_seq=1 hlim=63 time=1.600 ms 16 bytes from 2001:db8:0:1:2a0:a514:0:124c, icmp_seq=2 hlim=63 time=2.228 ms
user@R2> ping 2001:db8::3 PING6(56=40+8+8 bytes) 2001:db8:0:5:2a0:a514:0:24c --> 2001:db8::3 16 bytes from 2001:db8::3, icmp_seq=0 hlim=63 time=1.797 ms 16 bytes from 2001:db8::3, icmp_seq=1 hlim=63 time=1.430 ms 16 bytes from 2001:db8::3, icmp_seq=2 hlim=63 time=2.525 ms
Meaning
This test confirms that IS-IS has learned the IPv6 routes.
Checking the IPv6 Routing Table
Purpose
Verify that the expected routes are in the IPv6 routing table.
Action
user@R1> show route table inet6.0 inet6.0: 11 destinations, 12 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 2001:db8::1/128 *[Direct/0] 18:52:52 > via lo0.0 2001:db8::2/128 *[IS-IS/15] 01:59:52, metric 10 > to fe80::2a0:a514:0:24c via fe-1/2/0.0 2001:db8::3/128 *[IS-IS/15] 01:59:52, metric 10 > to fe80::2a0:a514:0:124c via fe-1/2/1.0 2001:db8:0:1::/64 *[Direct/0] 18:52:15 > via fe-1/2/1.0 2001:db8:0:1:2a0:a514:0:114c/128 *[Local/0] 18:52:48 Local via fe-1/2/1.0 2001:db8:0:5::/64 *[Direct/0] 18:52:49 > via fe-1/2/0.0 2001:db8:0:5:2a0:a514:0:14c/128 *[Local/0] 18:52:49 Local via fe-1/2/0.0 fe80::/64 *[Direct/0] 18:52:49 > via fe-1/2/0.0 [Direct/0] 18:52:15 > via fe-1/2/1.0 fe80::2a0:a50f:fc56:14c/128 *[Direct/0] 18:52:52 > via lo0.0 fe80::2a0:a514:0:14c/128 *[Local/0] 18:52:49 Local via fe-1/2/0.0 fe80::2a0:a514:0:114c/128 *[Local/0] 18:52:48 Local via fe-1/2/1.0
Meaning
The output shows the IPv6 interface routes (direct and local) and the IPv6 routes learned through IS-IS.