-
Notifications
You must be signed in to change notification settings - Fork 14
PPR Basic Test Topology
The FRR PPR implementation for IS-IS is available here: https://github.com/opensourcerouting/frr/tree/isisd-ppr
In this topology we have an IS-IS network consisting of 12 routers. CE1 and CE2 are the consumer edges, connected to R11 and R14, respectively. Three hosts are connected to the CEs using only static routes.
Router R11 advertises 6 PPR TLVs, which corresponds to three bi-directional GRE tunnels:
- 6000:1::1 <-> 6000:2::1: {R11 - R21 - R22 - R23 - R14} (IPv6 Node Addresses only)
- 6000:1::2 <-> 6000:2::2: {R11 - R21 - R32 - R41 - R33 - R23 - R14} (IPv6 Node and Interface Addresses)
- 6000:1::3 <-> 6000:2::3: {R11 - R21 - R99 - R23 - R14} (misconfigured path)
PBR rules are configured on R11 and R14 to route the traffic between Host 1 and Host 3 using the first PPR tunnel. Traffic between Host 2 and Host 3 uses the regular IS-IS shortest path.
+-------+ +-------+ +-------+
| | | | | |
| HOST1 | | HOST2 | | HOST3 |
| | | | | |
+---+---+ +---+---+ +---+---+
| | |
|fd00:10:1::/64 | |
+-----+ +------+ fd00:20:1::/64|
| |fd00:10:2::/64 |
| | |
+-+--+--+ +---+---+
| | | |
| CE1 | | CE2 |
| | | |
+---+---+ +---+---+
| |
| |
|fd00:10:0::/64 fd00:20:0::/64|
| |
| |
+---+---+ +-------+ +-------+ +---+---+
| |4000:101::/64| |4000:102::/64| |4000:103::/64| |
| R11 +-------------+ R12 +-------------+ R13 +-------------+ R14 |
| | | | | | | |
+---+---+ +--+-+--+ +--+-+--+ +---+---+
| | | | | |
|4000:104::/64 | |4000:106::/64 | |4000:108::/64 |
+---------+ +--------+ +--------+ +--------+ +--------+ +---------+
| |4000:105::/64 | |4000:107::/64 | |4000:109::/64
| | | | | |
+--+-+--+ +--+-+--+ +--+-+--+
| |4000:110::/64| |4000:111::/64| |
| R21 +-------------+ R22 +-------------+ R23 |
| | | | | |
+--+-+--+ +--+-+--+ +--+-+--+
| | | | | |
| |4000:113::/64 | |4000:115::/64 | |4000:117::/64
+---------+ +--------+ +--------+ +--------+ +--------+ +---------+
|4000:112::/64 | |4000:114::/64 | |4000:116::/64 |
| | | | | |
+---+---+ +--+-+--+ +--+-+--+ +---+---+
| |4000:118::/64| |4000:119::/64| |4000:120::/64| |
| R31 +-------------+ R32 +-------------+ R33 +-------------+ R34 |
| | | | | | | |
+-------+ +---+---+ +---+---+ +-------+
| |
|4000:121::/64 |
+----------+----------+
|
|
+---+---+
| |
| R41 |
| |
+-------+
PPR TLV processing needs to be enabled on all IS-IS routers using the ppr on
command. The advertisements of all PPR TLVs is done by router R11.
---
routers:
host1:
links:
eth-ce1:
peer: [ce1, eth-host1]
frr:
zebra:
staticd:
config: |
interface eth-ce1
ipv6 address fd00:10:1::1/64
!
ipv6 route ::/0 fd00:10:1::100
host2:
links:
eth-ce1:
peer: [ce1, eth-host2]
frr:
zebra:
staticd:
config: |
interface eth-ce1
ipv6 address fd00:10:2::1/64
!
ipv6 route ::/0 fd00:10:2::100
host3:
links:
eth-ce2:
peer: [ce2, eth-host3]
frr:
zebra:
staticd:
config: |
interface eth-ce2
ipv6 address fd00:20:1::1/64
!
ipv6 route ::/0 fd00:20:1::100
ce1:
links:
eth-host1:
peer: [host1, eth-ce1]
eth-host2:
peer: [host2, eth-ce1]
eth-rt11:
peer: [rt11, eth-ce1]
frr:
zebra:
staticd:
config: |
interface eth-host1
ipv6 address fd00:10:1::100/64
!
interface eth-host2
ipv6 address fd00:10:2::100/64
!
interface eth-rt11
ipv6 address fd00:10:0::100/64
!
ipv6 route ::/0 fd00:10:0::11
ce2:
links:
eth-host3:
peer: [host3, eth-ce2]
eth-rt14:
peer: [rt14, eth-ce2]
frr:
zebra:
staticd:
config: |
interface eth-host3
ipv6 address fd00:20:1::100/64
!
interface eth-rt14
ipv6 address fd00:20:0::100/64
!
ipv6 route ::/0 fd00:20:0::14
rt11:
links:
lo-ppr:
eth-ce1:
peer: [ce1, eth-rt11]
eth-rt12:
peer: [rt12, eth-rt11]
eth-rt21:
peer: [rt21, eth-rt11]
shell: |
# GRE tunnel for preferred packets (PPR)
ip -6 tunnel add tun-ppr mode ip6gre remote 6000:2::1 local 6000:1::1 ttl 64
ip link set dev tun-ppr up
# PBR rules
ip -6 rule add from fd00:10:1::/64 to fd00:20:1::/64 iif eth-ce1 lookup 10000
ip -6 route add default dev tun-ppr table 10000
frr:
zebra:
staticd:
isisd:
config: |
interface lo-ppr
ipv6 address 6000:1::1/128
ipv6 address 6000:1::2/128
ipv6 address 6000:1::3/128
!
interface lo
ipv6 address 5000::11/128
ipv6 router isis 1
!
interface eth-ce1
ipv6 address fd00:10:0::11/64
!
interface eth-rt12
ipv6 address 4000:101::11/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt21
ipv6 address 4000:104::11/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
ipv6 route fd00:10::/32 fd00:10:0::100
!
ppr group VOIP
ppr ipv6 6000:1::1/128 prefix 5000::11/128 metric 50
pde ipv6-node 5000::14/128
pde ipv6-node 5000::23/128
pde ipv6-node 5000::22/128
pde ipv6-node 5000::21/128
pde ipv6-node 5000::11/128
!
ppr ipv6 6000:2::1/128 prefix 5000::14/128 metric 50
pde ipv6-node 5000::11/128
pde ipv6-node 5000::21/128
pde ipv6-node 5000::22/128
pde ipv6-node 5000::23/128
pde ipv6-node 5000::14/128
!
!
ppr group INTERFACE_PDES
ppr ipv6 6000:1::2/128 prefix 5000::11/128
pde ipv6-node 5000::14/128
pde ipv6-node 5000::23/128
pde ipv6-node 5000::33/128
pde ipv6-interface 4000:121::41/64
pde ipv6-node 5000::32/128
pde ipv6-interface 4000:113::21/64
pde ipv6-node 5000::11/128
!
ppr ipv6 6000:2::2/128 prefix 5000::14/128
pde ipv6-node 5000::11/128
pde ipv6-node 5000::21/128
pde ipv6-node 5000::32/128
pde ipv6-interface 4000:121::41/64
pde ipv6-node 5000::33/128
pde ipv6-interface 4000:116::23/64
pde ipv6-node 5000::14/128
!
!
ppr group BROKEN
ppr ipv6 6000:1::3/128 prefix 5000::11/128 metric 1500
pde ipv6-node 5000::14/128
pde ipv6-node 5000::23/128
! non-existing node!!!
pde ipv6-node 5000::99/128
pde ipv6-node 5000::21/128
pde ipv6-node 5000::11/128
!
ppr ipv6 6000:2::3/128 prefix 5000::14/128 metric 1500
pde ipv6-node 5000::11/128
pde ipv6-node 5000::21/128
! non-existing node!!!
pde ipv6-node 5000::99/128
pde ipv6-node 5000::23/128
pde ipv6-node 5000::14/128
!
!
router isis 1
net 49.0000.0000.0000.0011.00
is-type level-1
topology ipv6-unicast
ppr on
ppr advertise VOIP
ppr advertise INTERFACE_PDES
ppr advertise BROKEN
!
rt12:
links:
eth-rt11:
peer: [rt11, eth-rt12]
eth-rt13:
peer: [rt13, eth-rt12]
eth-rt21:
peer: [rt21, eth-rt12]
eth-rt22:
peer: [rt22, eth-rt12]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::12/128
ipv6 router isis 1
!
interface eth-rt11
ipv6 address 4000:101::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt13
ipv6 address 4000:102::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt21
ipv6 address 4000:105::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:106::12/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0012.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt13:
links:
eth-rt12:
peer: [rt12, eth-rt13]
eth-rt14:
peer: [rt14, eth-rt13]
eth-rt22:
peer: [rt22, eth-rt13]
eth-rt23:
peer: [rt23, eth-rt13]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::13/128
ipv6 router isis 1
!
interface eth-rt12
ipv6 address 4000:102::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt14
ipv6 address 4000:103::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:107::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:108::13/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0013.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt14:
links:
lo-ppr:
eth-ce2:
peer: [ce2, eth-rt14]
eth-rt13:
peer: [rt13, eth-rt14]
eth-rt23:
peer: [rt23, eth-rt14]
shell: |
# GRE tunnel for preferred packets (PPR)
ip -6 tunnel add tun-ppr mode ip6gre remote 6000:1::1 local 6000:2::1 ttl 64
ip link set dev tun-ppr up
# PBR rules
ip -6 rule add from fd00:20:1::/64 to fd00:10:1::/64 iif eth-ce2 lookup 10000
ip -6 route add default dev tun-ppr table 10000
frr:
zebra:
staticd:
isisd:
config: |
interface lo-ppr
ipv6 address 6000:2::1/128
ipv6 address 6000:2::2/128
ipv6 address 6000:2::3/128
!
interface lo
ipv6 address 5000::14/128
ipv6 router isis 1
!
interface eth-ce2
ipv6 address fd00:20:0::14/64
!
interface eth-rt13
ipv6 address 4000:103::14/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:109::14/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
ipv6 route fd00:20::/32 fd00:20:0::100
!
router isis 1
net 49.0000.0000.0000.0014.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt21:
links:
eth-rt11:
peer: [rt11, eth-rt21]
eth-rt12:
peer: [rt12, eth-rt21]
eth-rt22:
peer: [rt22, eth-rt21]
eth-rt31:
peer: [rt31, eth-rt21]
eth-rt32:
peer: [rt32, eth-rt21]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::21/128
ipv6 router isis 1
!
interface eth-rt11
ipv6 address 4000:104::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt12
ipv6 address 4000:105::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:110::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt31
ipv6 address 4000:112::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:113::21/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0021.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt22:
links:
eth-rt12:
peer: [rt12, eth-rt22]
eth-rt13:
peer: [rt13, eth-rt22]
eth-rt21:
peer: [rt21, eth-rt22]
eth-rt23:
peer: [rt23, eth-rt22]
eth-rt32:
peer: [rt32, eth-rt22]
eth-rt33:
peer: [rt33, eth-rt22]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::22/128
ipv6 router isis 1
!
interface eth-rt12
ipv6 address 4000:106::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt13
ipv6 address 4000:107::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt21
ipv6 address 4000:110::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:111::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:114::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:115::22/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0022.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt23:
links:
eth-rt13:
peer: [rt13, eth-rt23]
eth-rt14:
peer: [rt14, eth-rt23]
eth-rt22:
peer: [rt22, eth-rt23]
eth-rt33:
peer: [rt33, eth-rt23]
eth-rt34:
peer: [rt34, eth-rt23]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::23/128
ipv6 router isis 1
!
interface eth-rt13
ipv6 address 4000:108::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt14
ipv6 address 4000:109::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:111::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:116::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt34
ipv6 address 4000:117::23/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0023.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt31:
links:
eth-rt21:
peer: [rt21, eth-rt31]
eth-rt32:
peer: [rt32, eth-rt31]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::31/128
ipv6 router isis 1
!
interface eth-rt21
ipv6 address 4000:112::31/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:118::31/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0031.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt32:
links:
eth-rt21:
peer: [rt21, eth-rt32]
eth-rt22:
peer: [rt22, eth-rt32]
eth-rt31:
peer: [rt31, eth-rt32]
eth-rt33:
peer: [rt33, eth-rt32]
eth-sw1:
peer: [sw1, eth-rt32]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::32/128
ipv6 router isis 1
!
interface eth-rt21
ipv6 address 4000:113::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt22
ipv6 address 4000:114::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt31
ipv6 address 4000:118::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:119::32/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-sw1
ipv6 address 4000:121::32/64
ipv6 router isis 1
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0032.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt33:
links:
eth-rt22:
peer: [rt22, eth-rt33]
eth-rt23:
peer: [rt23, eth-rt33]
eth-rt32:
peer: [rt32, eth-rt33]
eth-rt34:
peer: [rt34, eth-rt33]
eth-sw1:
peer: [sw1, eth-rt33]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::33/128
ipv6 router isis 1
!
interface eth-rt22
ipv6 address 4000:115::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt23
ipv6 address 4000:116::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt32
ipv6 address 4000:119::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt34
ipv6 address 4000:120::33/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-sw1
ipv6 address 4000:121::33/64
ipv6 router isis 1
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0033.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt34:
links:
eth-rt23:
peer: [rt23, eth-rt34]
eth-rt33:
peer: [rt33, eth-rt34]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::34/128
ipv6 router isis 1
!
interface eth-rt23
ipv6 address 4000:117::34/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
interface eth-rt33
ipv6 address 4000:120::34/64
ipv6 router isis 1
isis network point-to-point
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0034.00
is-type level-1
topology ipv6-unicast
ppr on
!
rt41:
links:
eth-sw1:
peer: [sw1, eth-rt41]
frr:
zebra:
isisd:
config: |
interface lo
ipv6 address 5000::41/128
ipv6 router isis 1
!
interface eth-sw1
ipv6 address 4000:121::41/64
ipv6 router isis 1
isis hello-multiplier 3
!
router isis 1
net 49.0000.0000.0000.0041.00
is-type level-1
topology ipv6-unicast
ppr on
!
switches:
sw1:
links:
eth-rt32:
peer: [rt32, eth-sw1]
eth-rt33:
peer: [rt33, eth-sw1]
eth-rt41:
peer: [rt41, eth-sw1]
frr:
base-config: |
hostname %(node)
password 1
log file %(logdir)/%(node).log
log commands
!
debug zebra rib
debug isis ppr
debug isis events
debug isis route-events
debug isis spf-events
debug isis lsp-gen
!
PPR can also be configured using NETCONF, RESTCONF and gRPC based on the following YANG models:
As an example, here's R11 configuration in the XML format:
<lib xmlns="http://frrouting.org/yang/interface">
<interface>
<name>lo-ppr</name>
<vrf>default</vrf>
</interface>
<interface>
<name>lo</name>
<vrf>default</vrf>
<isis xmlns="http://frrouting.org/yang/isisd">
<area-tag>1</area-tag>
<ipv6-routing>true</ipv6-routing>
</isis>
</interface>
<interface>
<name>eth-ce1</name>
<vrf>default</vrf>
</interface>
<interface>
<name>eth-rt12</name>
<vrf>default</vrf>
<isis xmlns="http://frrouting.org/yang/isisd">
<area-tag>1</area-tag>
<ipv6-routing>true</ipv6-routing>
<hello>
<multiplier>
<level-1>3</level-1>
<level-2>3</level-2>
</multiplier>
</hello>
<network-type>point-to-point</network-type>
</isis>
</interface>
<interface>
<name>eth-rt21</name>
<vrf>default</vrf>
<isis xmlns="http://frrouting.org/yang/isisd">
<area-tag>1</area-tag>
<ipv6-routing>true</ipv6-routing>
<hello>
<multiplier>
<level-1>3</level-1>
<level-2>3</level-2>
</multiplier>
</hello>
<network-type>point-to-point</network-type>
</isis>
</interface>
</lib>
<ppr xmlns="http://frrouting.org/yang/ppr">
<group>
<name>VOIP</name>
<ipv6>
<ppr-id>6000:1::1/128</ppr-id>
<ppr-prefix>5000::11/128</ppr-prefix>
<ppr-pde>
<pde-id>5000::14/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::23/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::22/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::21/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::11/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<attributes>
<ppr-metric>50</ppr-metric>
</attributes>
</ipv6>
<ipv6>
<ppr-id>6000:2::1/128</ppr-id>
<ppr-prefix>5000::14/128</ppr-prefix>
<ppr-pde>
<pde-id>5000::11/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::21/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::22/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::23/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::14/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<attributes>
<ppr-metric>50</ppr-metric>
</attributes>
</ipv6>
</group>
<group>
<name>INTERFACE_PDES</name>
<ipv6>
<ppr-id>6000:1::2/128</ppr-id>
<ppr-prefix>5000::11/128</ppr-prefix>
<ppr-pde>
<pde-id>5000::14/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::23/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::33/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>4000:121::41/64</pde-id>
<pde-id-type>ipv6-interface</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::32/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>4000:113::21/64</pde-id>
<pde-id-type>ipv6-interface</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::11/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
</ipv6>
<ipv6>
<ppr-id>6000:2::2/128</ppr-id>
<ppr-prefix>5000::14/128</ppr-prefix>
<ppr-pde>
<pde-id>5000::11/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::21/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::32/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>4000:121::41/64</pde-id>
<pde-id-type>ipv6-interface</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::33/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>4000:116::23/64</pde-id>
<pde-id-type>ipv6-interface</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::14/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
</ipv6>
</group>
<group>
<name>BROKEN</name>
<ipv6>
<ppr-id>6000:1::3/128</ppr-id>
<ppr-prefix>5000::11/128</ppr-prefix>
<ppr-pde>
<pde-id>5000::14/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::23/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::99/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::21/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::11/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<attributes>
<ppr-metric>1500</ppr-metric>
</attributes>
</ipv6>
<ipv6>
<ppr-id>6000:2::3/128</ppr-id>
<ppr-prefix>5000::14/128</ppr-prefix>
<ppr-pde>
<pde-id>5000::11/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::21/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::99/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::23/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<ppr-pde>
<pde-id>5000::14/128</pde-id>
<pde-id-type>ipv6-node</pde-id-type>
<pde-type>topological</pde-type>
</ppr-pde>
<attributes>
<ppr-metric>1500</ppr-metric>
</attributes>
</ipv6>
</group>
</ppr>
<isis xmlns="http://frrouting.org/yang/isisd">
<instance>
<area-tag>1</area-tag>
<area-address>49.0000.0000.0000.0011.00</area-address>
<multi-topology>
<ipv6-unicast>
</ipv6-unicast>
</multi-topology>
<ppr>
<enable>true</enable>
<ppr-advertise>
<name>VOIP</name>
</ppr-advertise>
<ppr-advertise>
<name>INTERFACE_PDES</name>
</ppr-advertise>
<ppr-advertise>
<name>BROKEN</name>
</ppr-advertise>
</ppr>
</instance>
</isis>
Verify that IS-IS has flooded the PPR TLVs correctly to all routers:
# show isis database detail 0000.0000.0011
Area 1:
IS-IS Level-1 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
debian.00-00 1233 0x00000009 0x7bd4 683 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0000
MT Router Info: ipv4-unicast
MT Router Info: ipv6-unicast
Hostname: debian
MT Reachability: 0000.0000.0012.00 (Metric: 10) ipv6-unicast
MT Reachability: 0000.0000.0021.00 (Metric: 10) ipv6-unicast
MT IPv6 Reachability: 5000::11/128 (Metric: 10) ipv6-unicast
MT IPv6 Reachability: 4000:101::/64 (Metric: 10) ipv6-unicast
MT IPv6 Reachability: 4000:104::/64 (Metric: 10) ipv6-unicast
PPR: Fragment ID: 0, MT-ID: ipv4-unicast, Algorithm: SPF, F:0 D:0 A:0 U:1
PPR Prefix: 5000::11/128
ID: 6000:1::3/128 (Native IPv6)
PDE: 5000::14/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::23/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::99/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::21/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::11/128 (IPv6 Node Address), L:0 N:1 E:0
Metric: 1500
PPR: Fragment ID: 0, MT-ID: ipv4-unicast, Algorithm: SPF, F:0 D:0 A:0 U:1
PPR Prefix: 5000::14/128
ID: 6000:2::3/128 (Native IPv6)
PDE: 5000::11/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::21/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::99/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::23/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::14/128 (IPv6 Node Address), L:0 N:1 E:0
Metric: 1500
PPR: Fragment ID: 0, MT-ID: ipv4-unicast, Algorithm: SPF, F:0 D:0 A:0 U:1
PPR Prefix: 5000::11/128
ID: 6000:1::2/128 (Native IPv6)
PDE: 5000::14/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::23/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::33/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 4000:121::41 (IPv6 Interface Address), L:0 N:0 E:0
PDE: 5000::32/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 4000:113::21 (IPv6 Interface Address), L:0 N:0 E:0
PDE: 5000::11/128 (IPv6 Node Address), L:0 N:1 E:0
Metric: 0
PPR: Fragment ID: 0, MT-ID: ipv4-unicast, Algorithm: SPF, F:0 D:0 A:0 U:1
PPR Prefix: 5000::14/128
ID: 6000:2::2/128 (Native IPv6)
PDE: 5000::11/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::21/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::32/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 4000:121::41 (IPv6 Interface Address), L:0 N:0 E:0
PDE: 5000::33/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 4000:116::23 (IPv6 Interface Address), L:0 N:0 E:0
PDE: 5000::14/128 (IPv6 Node Address), L:0 N:1 E:0
Metric: 0
PPR: Fragment ID: 0, MT-ID: ipv4-unicast, Algorithm: SPF, F:0 D:0 A:0 U:1
PPR Prefix: 5000::11/128
ID: 6000:1::1/128 (Native IPv6)
PDE: 5000::14/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::23/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::22/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::21/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::11/128 (IPv6 Node Address), L:0 N:1 E:0
Metric: 50
PPR: Fragment ID: 0, MT-ID: ipv4-unicast, Algorithm: SPF, F:0 D:0 A:0 U:1
PPR Prefix: 5000::14/128
ID: 6000:2::1/128 (Native IPv6)
PDE: 5000::11/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::21/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::22/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::23/128 (IPv6 Node Address), L:0 N:0 E:0
PDE: 5000::14/128 (IPv6 Node Address), L:0 N:1 E:0
Metric: 50
The PPR TLVs can also be seen using a modified version of Wireshark as seen below:
Using the show isis ppr
command, verify that all routers installed the PPR-IDs for the paths they are part of. Example:
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
--------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Tail-End - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Tail-End - -
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Tail-End - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Head-End Up 00:45:41
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Head-End Up 00:45:41
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Head-End Up 00:45:41
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:2::1/128 [115/50] via fe80::c2a:54ff:fe39:bff7, eth-rt21, 00:01:33
I>* 6000:2::2/128 [115/0] via fe80::c2a:54ff:fe39:bff7, eth-rt21, 00:01:33
I>* 6000:2::3/128 [115/1500] via fe80::c2a:54ff:fe39:bff7, eth-rt21, 00:01:33
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Off-Path - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Off-Path - -
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Off-Path - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Off-Path - -
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Off-Path - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Off-Path - -
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Off-Path - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Off-Path - -
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
--------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Head-End Up 00:45:45
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Head-End Up 00:45:45
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Head-End Up 00:45:45
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Tail-End - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Tail-End - -
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Tail-End - -
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:1::1/128 [115/50] via fe80::58ea:78ff:fe00:92c1, eth-rt23, 00:01:36
I>* 6000:1::2/128 [115/0] via fe80::58ea:78ff:fe00:92c1, eth-rt23, 00:01:36
I>* 6000:1::3/128 [115/1500] via fe80::58ea:78ff:fe00:92c1, eth-rt23, 00:01:36
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
---------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Mid-Point Up 00:45:46
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Mid-Point Up 00:45:46
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Mid-Point Up 00:45:46
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Mid-Point Up 00:45:46
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Mid-Point Up 00:45:46
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Mid-Point Down -
# show isis ppr id ipv6 6000:2::3/128 detail
Area 1:
PPR-ID: 6000:2::3/128 (Native IPv6)
PPR-Prefix: 5000::14/128
PDEs:
5000::11/128 (IPv6 Node Address)
5000::21/128 (IPv6 Node Address) [LOCAL]
5000::99/128 (IPv6 Node Address) [NEXT]
5000::23/128 (IPv6 Node Address)
5000::14/128 (IPv6 Node Address)
Attributes:
Metric: 1500
Position: Mid-Point
Originator: 0000.0000.0011
Level: L1
Algorithm: 1
MT-ID: ipv4-unicast
Status: Down: PDE is unreachable
Last change: 00:00:37
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:1::1/128 [115/50] via fe80::142e:79ff:feeb:cffc, eth-rt11, 00:01:38
I>* 6000:1::2/128 [115/0] via fe80::142e:79ff:feeb:cffc, eth-rt11, 00:01:38
I>* 6000:1::3/128 [115/1500] via fe80::142e:79ff:feeb:cffc, eth-rt11, 00:01:38
I>* 6000:2::1/128 [115/50] via fe80::c88e:7fff:fe5f:a08d, eth-rt22, 00:01:38
I>* 6000:2::2/128 [115/0] via fe80::8b2:9eff:fe98:f66a, eth-rt32, 00:01:38
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
---------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Mid-Point Up 00:45:47
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Off-Path - -
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Mid-Point Up 00:45:47
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Off-Path - -
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:1::1/128 [115/50] via fe80::2cb5:edff:fe60:29b1, eth-rt21, 00:01:38
I>* 6000:2::1/128 [115/50] via fe80::e8d9:63ff:fea3:177b, eth-rt23, 00:01:38
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
---------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Mid-Point Up 00:45:49
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Mid-Point Up 00:45:49
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Mid-Point Down -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Mid-Point Up 00:45:49
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Mid-Point Up 00:45:49
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Mid-Point Up 00:45:49
# show isis ppr id ipv6 6000:1::3/128 detail
Area 1:
PPR-ID: 6000:1::3/128 (Native IPv6)
PPR-Prefix: 5000::11/128
PDEs:
5000::14/128 (IPv6 Node Address)
5000::23/128 (IPv6 Node Address) [LOCAL]
5000::99/128 (IPv6 Node Address) [NEXT]
5000::21/128 (IPv6 Node Address)
5000::11/128 (IPv6 Node Address)
Attributes:
Metric: 1500
Position: Mid-Point
Originator: 0000.0000.0011
Level: L1
Algorithm: 1
MT-ID: ipv4-unicast
Status: Down: PDE is unreachable
Last change: 00:02:50
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:1::1/128 [115/50] via fe80::d09f:1bff:fe31:e9c9, eth-rt22, 00:01:40
I>* 6000:1::2/128 [115/0] via fe80::c0c3:b3ff:fe9f:b5d3, eth-rt33, 00:01:40
I>* 6000:2::1/128 [115/50] via fe80::f40a:66ff:fefc:5c32, eth-rt14, 00:01:40
I>* 6000:2::2/128 [115/0] via fe80::f40a:66ff:fefc:5c32, eth-rt14, 00:01:40
I>* 6000:2::3/128 [115/1500] via fe80::f40a:66ff:fefc:5c32, eth-rt14, 00:01:40
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Off-Path - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Off-Path - -
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Off-Path - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Off-Path - -
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
---------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Off-Path - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Mid-Point Up 00:45:51
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Off-Path - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Mid-Point Up 00:45:51
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:1::2/128 [115/0] via 4000:113::21, eth-rt21, 00:01:42
I>* 6000:2::2/128 [115/0] via 4000:121::41, eth-sw1, 00:01:42
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
---------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Off-Path - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Mid-Point Up 00:45:52
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Off-Path - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Mid-Point Up 00:45:52
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:1::2/128 [115/0] via 4000:121::41, eth-sw1, 00:01:43
I>* 6000:2::2/128 [115/0] via 4000:116::23, eth-rt23, 00:01:43
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Off-Path - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Off-Path - -
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Off-Path - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Off-Path - -
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
# show isis ppr
Area Level ID Prefix Metric Position Status Uptime
---------------------------------------------------------------------------------------------
1 L1 6000:1::1/128 (Native IPv6) 5000::11/128 50 Off-Path - -
1 L1 6000:1::2/128 (Native IPv6) 5000::11/128 0 Mid-Point Up 00:45:55
1 L1 6000:1::3/128 (Native IPv6) 5000::11/128 1500 Off-Path - -
1 L1 6000:2::1/128 (Native IPv6) 5000::14/128 50 Off-Path - -
1 L1 6000:2::2/128 (Native IPv6) 5000::14/128 0 Mid-Point Up 00:45:55
1 L1 6000:2::3/128 (Native IPv6) 5000::14/128 1500 Off-Path - -
# show ipv6 route 6000::/16 longer-prefixes isis
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued route, r - rejected route
I>* 6000:1::2/128 [115/0] via fe80::b4b9:60ff:feee:3c73, eth-sw1, 00:01:46
I>* 6000:2::2/128 [115/0] via fe80::bc2a:d9ff:fe65:97f2, eth-sw1, 00:01:46
As it can be seen by the output of show isis ppr id ipv6 ... detail
, routers R21 and R23 couldn't install the third PPR path because of an unreachable PDE (configuration error).
On Router R11, use the traceroute
tool to ensure that the PPR paths were installed correctly in the network:
root@rt11:~# traceroute 6000:2::1
traceroute to 6000:2::1 (6000:2::1), 30 hops max, 80 byte packets
1 4000:104::21 (4000:104::21) 0.612 ms 0.221 ms 0.241 ms
2 4000:110::22 (4000:110::22) 0.257 ms 0.113 ms 0.105 ms
3 4000:111::23 (4000:111::23) 0.257 ms 0.151 ms 0.098 ms
4 6000:2::1 (6000:2::1) 0.346 ms 0.139 ms 0.100 ms
root@rt11:~#
root@rt11:~# traceroute 6000:2::2
traceroute to 6000:2::2 (6000:2::2), 30 hops max, 80 byte packets
1 4000:104::21 (4000:104::21) 4.383 ms 4.148 ms 0.044 ms
2 4000:113::32 (4000:113::32) 0.272 ms 0.065 ms 0.064 ms
3 4000:121::41 (4000:121::41) 0.263 ms 0.101 ms 0.086 ms
4 4000:115::33 (4000:115::33) 0.351 ms 4000:119::33 (4000:119::33) 0.249 ms 4000:115::33 (4000:115::33) 0.153 ms
5 4000:111::23 (4000:111::23) 0.232 ms 0.293 ms 0.131 ms
6 6000:2::2 (6000:2::2) 0.184 ms 0.212 ms 0.140 ms
root@rt11:~#
root@rt11:~# traceroute 6000:2::3
traceroute to 6000:2::3 (6000:2::3), 30 hops max, 80 byte packets
1 4000:104::21 (4000:104::21) 1.537 ms !N 1.347 ms !N 1.075 ms !N
The failure on the third traceroute is expected since the 6000:2::3 PPR-ID is misconfigured.
Now ping Host 3 from Host 1 and use iproute2/wireshark to verify that the ICMP packets are being tunneled using GRE and following the {R11 - R21 - R22 - R23 - R14} path. Here's a wireshark capture between R11 and R21:
Using traceroute
it's also possible to see that the ICMP packets are being tunneled through the IS-IS network:
root@host1:~# traceroute fd00:20:1::1 -s fd00:10:1::1
traceroute to fd00:20:1::1 (fd00:20:1::1), 30 hops max, 80 byte packets
1 fd00:10:1::100 (fd00:10:1::100) 0.354 ms 0.092 ms 0.031 ms
2 fd00:10::11 (fd00:10::11) 0.125 ms 0.022 ms 0.026 ms
3 * * *
4 * * *
5 fd00:20:1::1 (fd00:20:1::1) 0.235 ms 0.106 ms 0.091 ms