Hi, I'm running what I would call a fairly basic setup composed of: - 4 routers (OpenBGPd) / R{1..4} - 2 transits AS{8218,13193} - my AS: 49463 - BGP session over loopback interfaces (2a02:27d0:0:112::1 / 2a02:27d0:100:114::4) - Several peering sessions (HE, ...)
R1 - bgpd.conf: AS 49463 network 2a02:27d0::/48 socket "/var/www/logs/bgpd.rsock" restricted group "eBGP_Transit" { announce self holdtime 30 holdtime min 3 set med 100 neighbor 2001:7a8:1:9FF2::1 { remote-as 13193 descr ev6_gw-001_to_NERIM local-address 2001:7a8:1:9FF2::2 announce IPv6 unicast announce IPv4 none } } group "iBGP_VTY_TMM" { remote-as 49463 announce all set nexthop self neighbor 2a02:27d0:100:114::4 { descr iv6_gw-001_to_004 local-address 2a02:27d0:0:112::1 announce IPv6 unicast announce IPv4 none set prepend-neighbor 4 set prepend-self 1 } } deny from any allow from any inet6 prefixlen 16 - 48 deny from any prefix ::/8 prefixlen >= 8 deny from any prefix 2001:2::/48 prefixlen >= 48 # BMWG [RFC5180] deny from any prefix 2001:10::/28 prefixlen >= 28 # ORCHID [RFC4843] deny from any prefix 2001:db8::/32 prefixlen >= 32 # docu range [RFC3849] deny from any prefix 3ffe::/16 prefixlen >= 16 # old 6bone deny from any prefix fc00::/7 prefixlen >= 7 # unique local unicast deny from any prefix fe80::/10 prefixlen >= 10 # link local unicast deny from any prefix fec0::/10 prefixlen >= 10 # old site local unicast deny from any prefix ff00::/8 prefixlen >= 8 # multicast R4 - bgpd.conf: AS 49463 network 2a02:27d0:100::/48 socket "/var/www/logs/bgpd.rsock" restricted group "eBGP_Transit_NEO" { remote-as 8218 holdtime 30 holdtime min 3 announce self set med 100 neighbor 2001:1b48:2:103::175 { descr ev6_gw-004_to_NEO local-address 2001:1b48:2:103::176 announce IPv4 none announce IPv6 unicast } } group "iBGP_VTY_TMM" { remote-as 49463 announce all neighbor 2a02:27d0:0:112::1 { descr iv6_gw-004_to_001 local-address 2a02:27d0:100:114::4 announce IPv6 unicast announce IPv4 none set prepend-neighbor 1 set prepend-self 1 set nexthop self } } deny from any allow from any inet6 prefixlen 16 - 48 deny from any prefix ::/8 prefixlen >= 8 deny from any prefix 2001:2::/48 prefixlen >= 48 # BMWG [RFC5180] deny from any prefix 2001:10::/28 prefixlen >= 28 # ORCHID [RFC4843] deny from any prefix 2001:db8::/32 prefixlen >= 32 # docu range [RFC3849] deny from any prefix 3ffe::/16 prefixlen >= 16 # old 6bone deny from any prefix fc00::/7 prefixlen >= 7 # unique local unicast deny from any prefix fe80::/10 prefixlen >= 10 # link local unicast deny from any prefix fec0::/10 prefixlen >= 10 # old site local unicast deny from any prefix ff00::/8 prefixlen >= 8 # multicast On R1: # bgpctl show | egrep '(iv6_gw-001_to_004|ev6_gw-001_to_NERIM)' ev6_gw-001_to_NERIM 13193 302495 94094 0 01w3d21h 10543 iv6_gw-001_to_004 49463 317993 154496 0 00:53:17 2 I receive 10543 IPv6 prefixes from my transit, but only 2 over the iBGP session. # bgpctl show rib nei iv6_gw-001_to_004 in I* 2001:7f8:4::/48 2a02:27d0:100:114::4 100 200 49463 49463 49463 49463 49463 49463 49463 49463 8218 8218 5459 i I* 2a02:27d0:100::/48 2a02:27d0:100:114::4 100 0 49463 49463 49463 49463 49463 49463 49463 49463 i # bgpctl show rib nei iv6_gw-001_to_004 out *> 2001:559:8008::/48 2001:7a8:1:9ff2::1 100 100 49463 13193 3356 7015 7015 7015 7015 ? *> 2001:7f8:4::/48 2001:7a8:1:9ff2::1 100 100 49463 13193 5459 i AI*> 2a02:27d0::/48 :: 100 0 49463 i On R4: # bgpctl show | egrep '(iv6_gw-004_to_001|ev6_gw-004_to_NEO)' ev6_gw-004_to_NEO 8218 8451 331 0 00:54:35 10849 iv6_gw-004_to_001 49463 263 562 0 00:54:35 3 I receive 10849 IPv6 prefixes from my transit, but only 3 over the iBGP session. # bgpctl show rib nei iv6_gw-004_to_001 in flags: * = Valid, > = Selected, I = via IBGP, A = Announced, S = Stale origin: i = IGP, e = EGP, ? = Incomplete flags destination gateway lpref med aspath origin I*> 2001:559:8008::/48 2a02:27d0:0:112::1 100 100 49463 49463 13193 3356 7015 7015 7015 7015 ? I* 2001:7f8:4::/48 2a02:27d0:0:112::1 100 100 49463 49463 13193 5459 i I*> 2a02:27d0::/48 2a02:27d0:0:112::1 100 0 49463 49463 i # bgpctl show rib nei iv6_gw-004_to_001 out flags: * = Valid, > = Selected, I = via IBGP, A = Announced, S = Stale origin: i = IGP, e = EGP, ? = Incomplete flags destination gateway lpref med aspath origin *> 2001:7f8:4::/48 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 5459 i *> 2402:da00::/32 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00:2000::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00:4000::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00:6000::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00:8000::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00:a000::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00:c000::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i *> 2402:da00:e000::/35 2001:1b48:2:103::175 100 200 49463 49463 49463 49463 8218 8218 1299 6453 7713 6939 55818 24526 i AI*> 2a02:27d0:100::/48 :: 100 0 49463 49463 49463 49463 i Is is really strange since the very same setup is working fine over IPv4 (all routes are seen over iBGP). Note: When shutting sessions to my peerings (I mean all peerings), I see the PrfRcvd increasing, which means I then begin to receive prefixes and my sessions seem to be well configured. Hint: on my R3 router (basically the same config as R4 with different IPs) I have: match from group Peering_France-IX set { localpref 450 } On R4: match from group Peering_France-IX set { localpref 250 } Please note Peering_France-IX group contains both IPv4 *and* IPv6 sessions (IPv4 sessions don't exhibit this behavior). Did I miss something obvious or...? :$ Thanks Laurent PS: tests conducted with *and* without pf.