[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