[j-nsp] pim bootstrap family inet6 import/export policies
Chuck Anderson
cra at WPI.EDU
Mon Oct 28 13:45:58 EDT 2013
Has anyone seen an issue where PIM bootstrap import/export policies
don't work correctly on IPv6 RPs? Or for that matter, is anyone using
these policies successfully?
They are working fine for IPv4, but for IPv6 they are preventing the
local RP router from learning the IPv6 BSR, so instead the local
router elects itself as the BSR for IPv6, causing the rest of the
network to never discover this local IPv6 RP. This is all being
tested on logical-systems and logical-tunnel lt-* interfaces (with
encapsulation frame-relay), so there could be a bug there too.
I'm using Junos 12.3R4.
Topology:
R1---R3
| / |
| / |
| / |
R2---R4
Loopbacks:
R1 10.0.6.1 2011:1006::10:61
R2 10.0.6.2 2011:1006::10:62
R3 10.0.3.3 2011:1006::10:33
R4 10.0.3.4 2011:1006::10:34
R1 is a local RP for inet/inet6 all groups.
R2 is a local RP for inet/inet6 all groups.
R3 is the BSR for inet/inet6 (bootstrap priority 1).
R4 is a non-RP, non-BSR, regular PIM router.
Unicast IPv4/IPv6 connectivity between loopbacks is all working
correctly.
R1 is experiencing the issue (R2 does as well if I apply the bootstrap
import/export policies there, but works fine when deactivating those
policies). R2/R3/R4 all agree on who the BSR is, and they also agree
that R2 is the only RP for IPv6. Everyone including R1 agrees on
everything for IPv4. But R1 doesn't see the correct BSR, and no one
learns that R1 is an IPv6 RP.
R1 config:
[edit protocols pim]
lab at mx80:r1# top show policy-options policy-statement BSR-IMPORT
term 1 {
from interface ge-1/3/8.100;
then reject;
}
term 2 {
then accept;
}
[edit protocols pim]
lab at mx80:r1# top show policy-options policy-statement BSR-EXPORT
term 1 {
to interface ge-1/3/8.100;
then reject;
}
term 2 {
then accept;
}
[edit protocols pim]
lab at mx80:r1# top show protocols pim
traceoptions {
file pim;
flag bootstrap detail;
flag register detail;
}
rp {
bootstrap {
family inet {
priority 0;
import BSR-IMPORT;
export BSR-EXPORT;
}
family inet6 {
priority 0;
import BSR-IMPORT;
export BSR-EXPORT;
}
}
local {
family inet {
address 10.0.6.1;
priority 2;
}
family inet6 {
address 2011:1006::10:61;
priority 2;
}
}
}
interface all {
version 2;
}
interface ge-1/3/8.100 {
disable;
}
R2 config:
[edit protocols pim]
lab at mx80:r2# show
traceoptions {
file pim;
flag bootstrap detail;
flag register detail;
}
rp {
bootstrap {
family inet {
priority 0;
import BSR-IMPORT;
export BSR-EXPORT;
}
family inet6 {
priority 0;
inactive: import BSR-IMPORT;
inactive: export BSR-EXPORT;
}
}
local {
family inet {
address 10.0.6.2;
priority 1;
}
family inet6 {
address 2011:1006::10:62;
priority 1;
}
}
}
interface all {
version 2;
}
interface ge-1/3/9.100 {
disable;
}
R3 config:
[edit protocols pim]
lab at mx80:r3# show
traceoptions {
file pim;
flag bootstrap detail;
flag register detail;
}
rp {
bootstrap {
family inet {
priority 1;
import BSR-IMPORT;
export BSR-EXPORT;
}
family inet6 {
priority 1;
import BSR-IMPORT;
export BSR-EXPORT;
}
}
}
interface all {
version 2;
}
interface lt-0/0/0.313 {
disable;
}
interface lt-0/0/0.317 {
disable;
}
R4 config:
[edit protocols pim]
lab at mx80:r4# show
traceoptions {
file pim;
flag bootstrap detail;
flag register detail;
}
rp {
bootstrap {
family inet {
priority 0;
import BSR-IMPORT;
export BSR-EXPORT;
}
family inet6 {
priority 0;
import BSR-IMPORT;
export BSR-EXPORT;
}
}
}
interface all {
version 2;
}
Output from R1:
[edit protocols pim]
lab at mx80:r1# run show pim neighbors
B = Bidirectional Capable, G = Generation Identifier
H = Hello Option Holdtime, L = Hello Option LAN Prune Delay,
P = Hello Option DR Priority, T = Tracking Bit
Instance: PIM.master
Interface IP V Mode Option Uptime Neighbor addr
lt-0/0/0.1405 4 2 HPLGT 00:27:08 10.0.4.6
lt-0/0/0.1414 4 2 HPLGT 00:27:08 10.0.4.13
lt-0/0/0.1405 6 2 HPLGT 00:27:08 fe80::8271:1f00:9:66ff
lt-0/0/0.1414 6 2 HPLGT 00:27:08 fe80::8271:1f00:d:55ff
[edit protocols pim]
lab at mx80:r1# run show pim bootstrap
Instance: PIM.master
BSR Pri Local address Pri State Timeout
10.0.3.3 1 10.0.6.1 0 Candidate 113
2011:1006::10:61 0 2011:1006::10:61 0 Elected 29
[edit protocols pim]
lab at mx80:r1# run show pim rps
Instance: PIM.master
address-family INET
RP address Type Mode Holdtime Timeout Groups Group prefixes
10.0.6.1 bootstrap sparse 150 130 0 224.0.0.0/4
10.0.6.2 bootstrap sparse 150 130 1 224.0.0.0/4
10.0.6.1 static sparse 150 None 0 224.0.0.0/4
address-family INET6
RP address Type Mode Holdtime Timeout Groups Group prefixes
2011:1006::10:61
bootstrap sparse 150 None 0 ff00::/8
2011:1006::10:61
static sparse 150 None 0 ff00::/8
Output from R2:
[edit protocols pim]
lab at mx80:r2# run show pim neighbors
B = Bidirectional Capable, G = Generation Identifier
H = Hello Option Holdtime, L = Hello Option LAN Prune Delay,
P = Hello Option DR Priority, T = Tracking Bit
Instance: PIM.master
Interface IP V Mode Option Uptime Neighbor addr
lt-0/0/0.2402 4 2 HPLGT 01:04:40 10.0.4.1
lt-0/0/0.2406 4 2 HPLGT 00:27:11 10.0.4.5
lt-0/0/0.2410 4 2 HPLGT 01:04:40 10.0.4.9
lt-0/0/0.2402 6 2 HPLGT 01:04:40 fe80::8271:1f00:d:49ff
lt-0/0/0.2406 6 2 HPLGT 00:27:11 fe80::8271:1f00:5:7dff
lt-0/0/0.2410 6 2 HPLGT 01:04:40 fe80::8271:1f00:11:39ff
[edit protocols pim]
lab at mx80:r2# run show pim bootstrap
Instance: PIM.master
BSR Pri Local address Pri State Timeout
10.0.3.3 1 10.0.6.2 0 Candidate 123
2011:1006::10:33 1 2011:1006::10:62 0 Candidate 123
[edit protocols pim]
lab at mx80:r2# run show pim rps
Instance: PIM.master
address-family INET
RP address Type Mode Holdtime Timeout Groups Group prefixes
10.0.6.1 bootstrap sparse 150 141 0 224.0.0.0/4
10.0.6.2 bootstrap sparse 150 141 1 224.0.0.0/4
10.0.6.2 static sparse 150 None 1 224.0.0.0/4
address-family INET6
RP address Type Mode Holdtime Timeout Groups Group prefixes
2011:1006::10:62
bootstrap sparse 150 141 0 ff00::/8
2011:1006::10:62
static sparse 150 None 0 ff00::/8
Output from R3:
[edit protocols pim]
lab at mx80:r3# run show pim neighbors
B = Bidirectional Capable, G = Generation Identifier
H = Hello Option Holdtime, L = Hello Option LAN Prune Delay,
P = Hello Option DR Priority, T = Tracking Bit
Instance: PIM.master
Interface IP V Mode Option Uptime Neighbor addr
lt-0/0/0.3202 4 2 HPLGT 01:18:02 10.0.2.1
lt-0/0/0.3205 4 2 HPLGT 01:18:02 10.0.2.6
lt-0/0/0.3401 4 2 HPLGT 01:04:43 10.0.4.2
lt-0/0/0.3413 4 2 HPLGT 00:27:14 10.0.4.14
lt-0/0/0.3202 6 2 HPLGT 01:18:02 fe80::8271:1f00:14:51ff
lt-0/0/0.3205 6 2 HPLGT 01:18:02 fe80::8271:1f00:10:6eff
lt-0/0/0.3401 6 2 HPLGT 01:04:43 fe80::8271:1f00:9:62ff
lt-0/0/0.3413 6 2 HPLGT 00:27:14 fe80::8271:1f00:5:86ff
[edit protocols pim]
lab at mx80:r3# run show pim bootstrap
Instance: PIM.master
BSR Pri Local address Pri State Timeout
10.0.3.3 1 10.0.3.3 1 Elected 8
2011:1006::10:33 1 2011:1006::10:33 1 Elected 8
[edit protocols pim]
lab at mx80:r3# run show pim rps
Instance: PIM.master
address-family INET
RP address Type Mode Holdtime Timeout Groups Group prefixes
10.0.6.1 bootstrap sparse 150 95 0 224.0.0.0/4
10.0.6.2 bootstrap sparse 150 95 0 224.0.0.0/4
address-family INET6
RP address Type Mode Holdtime Timeout Groups Group prefixes
2011:1006::10:62
bootstrap sparse 150 95 0 ff00::/8
Output from R4:
[edit protocols pim]
lab at mx80:r4# run show pim neighbors
B = Bidirectional Capable, G = Generation Identifier
H = Hello Option Holdtime, L = Hello Option LAN Prune Delay,
P = Hello Option DR Priority, T = Tracking Bit
Instance: PIM.master
Interface IP V Mode Option Uptime Neighbor addr
lt-0/0/0.405 4 2 HPLGT 01:18:05 172.16.0.6
lt-0/0/0.409 4 2 HPLGT 01:18:05 172.16.0.10
lt-0/0/0.4206 4 2 HPLGT 01:18:05 10.0.2.5
lt-0/0/0.4210 4 2 HPLGT 01:18:05 10.0.2.9
lt-0/0/0.4409 4 2 HPLGT 01:04:46 10.0.4.10
lt-0/0/0.4206 6 2 HPLGT 01:18:05 fe80::8271:1f00:c:85ff
lt-0/0/0.4210 6 2 HPLGT 01:18:05 fe80::8271:1f00:14:59ff
lt-0/0/0.4409 6 2 HPLGT 01:04:46 fe80::8271:1f00:9:6aff
[edit protocols pim]
lab at mx80:r4# run show pim bootstrap
Instance: PIM.master
BSR Pri Local address Pri State Timeout
10.0.3.3 1 10.0.3.4 0 Candidate 70
2011:1006::10:33 1 2011:1006::10:34 0 Candidate 70
[edit protocols pim]
lab at mx80:r4# run show pim rps
Instance: PIM.master
address-family INET
RP address Type Mode Holdtime Timeout Groups Group prefixes
10.0.6.1 bootstrap sparse 150 148 0 224.0.0.0/4
10.0.6.2 bootstrap sparse 150 148 0 224.0.0.0/4
address-family INET6
RP address Type Mode Holdtime Timeout Groups Group prefixes
2011:1006::10:62
bootstrap sparse 150 148 0 ff00::/8
Thanks.
More information about the juniper-nsp
mailing list