Skip to content

Madrid Asilomar NDP not passively populating Juniper's link-local from received RAs #263

@sion42x

Description

@sion42x

Madrid TOML:

external_dns_zone_name = "madrid.eng.oxide.computer"
external_dns_ips = [ "198.51.110.20", "198.51.110.21" ]
ntp_servers = [ "time.cloudflare.com" ]
dns_servers = [ "1.1.1.1", "9.9.9.9" ]
bootstrap_sleds = [
    14, # BRM42220081 (model 913-0000019 revision 6, fdb0:a840:2504:3d2::1)
    15, # BRM42220046 (model 913-0000019 revision 6, fdb0:a840:2504:396::1)
    16, # BRM44220001 (model 913-0000019 revision 6, fdb0:a840:2504:355::1)
    17, # BRM42220004 (model 913-0000019 revision 6, fdb0:a840:2504:157::1)
]

[allowed_source_ips]
allow = "any"

[[internal_services_ip_pool_ranges]]
first = "198.51.110.20"
last = "198.51.110.29"

[rack_network_config]
infra_ip_first = "::"
infra_ip_last =  "::"

[[rack_network_config.bgp]]
asn = 47
originate = ["198.51.110.0/24"]

[rack_network_config.switch0.qsfp31]
routes = []
addresses = [{address = "addrconf"}]
uplink_port_speed = "40G"
uplink_port_fec="none"
autoneg = false
bgp_peers = [{asn = 47, addr = "unnumbered", port = "qsfp31"}]
lldp = { status = "enabled", chassis_id = "switch0", port_description = "uplink0"}

[rack_network_config.switch1.qsfp15]
routes = []
addresses = [{address = "addrconf"}]
uplink_port_speed = "40G"
uplink_port_fec="none"
autoneg = false
bgp_peers = [{asn = 47, addr = "unnumbered", port = "qsfp15"}]
lldp = { status = "enabled", chassis_id = "switch1", port_description = "uplink1"}

On sw0:

root@oxz_switch0:~# ipadm show-addr | grep qsfp
tfportqsfp31_0/ll addrconf ok           fe80::aa40:25ff:fe05:19f%tfportqsfp31_0/10

root@oxz_switch0:~# ndp -an | grep qsfp 
tfportqsfp31_0 33:33:00:00:00:01  other   REACHABLE    ff02::1                    
tfportqsfp31_0 33:33:00:00:00:02  other   REACHABLE    ff02::2                    
tfportqsfp31_0 33:33:00:00:00:16  other   REACHABLE    ff02::16                   
tfportqsfp31_0 a8:40:25:05:01:9f  local   REACHABLE    fe80::aa40:25ff:fe05:19f   
tfportqsfp31_0 33:33:ff:05:01:9f  other   REACHABLE    ff02::1:ff05:19f      

root@oxz_switch0:~# mgadm bgp status neighbors 47
Peer Address    Peer ASN  State    State Duration  Hold           Keepalive
tfportqsfp31_0  None      Connect  17h 43m 32s     6s 0ms/6s 0ms  2s 0ms/2s 0ms    

So stuck in Connect for ~18 hours. But then:

root@oxz_switch0:~# snoop -d tfportqsfp31_0 -c 30
Using device tfportqsfp31_0 (promiscuous mode)
fe80::aa40:25ff:fe05:19f -> ff02::1      ICMPv6 Router advertisement
fe80::aa40:25ff:fe05:19f -> ff02::2      ICMPv6 Router solicitation
fe80::46f4:77ff:feb1:737 -> ff02::1      ICMPv6 Router advertisement
fe80::aa40:25ff:fe05:19f -> ff02::1      ICMPv6 Router advertisement
fe80::aa40:25ff:fe05:19f -> ff02::2      ICMPv6 Router solicitation
fe80::46f4:77ff:feb1:737 -> ff02::1      ICMPv6 Router advertisement

Shows RAs were arriving from Juniper. So tossed out a multicast ping:

root@oxz_switch0:~# ping -A inet6 -i tfportqsfp31_0 ff02::2:2
ff02::2 is alive

And boom, NDP and BGP good to go:

root@oxz_switch0:~# ndp -an | grep qsfp
tfportqsfp31_0 33:33:00:00:00:01  other   REACHABLE    ff02::1                    
tfportqsfp31_0 33:33:00:00:00:02  other   REACHABLE    ff02::2                    
tfportqsfp31_0 33:33:00:00:00:16  other   REACHABLE    ff02::16                   
tfportqsfp31_0 44:f4:77:b1:07:37  dynamic REACHABLE    fe80::46f4:77ff:feb1:737   
tfportqsfp31_0 a8:40:25:05:01:9f  local   REACHABLE    fe80::aa40:25ff:fe05:19f   
tfportqsfp31_0 33:33:ff:05:01:9f  other   REACHABLE    ff02::1:ff05:19f         
  
root@oxz_switch0:~# mgadm bgp status neighbors 47
Peer Address    Peer ASN  State        State Duration  Hold           Keepalive
tfportqsfp31_0  Some(99)  Established  39s 402ms       6s 0ms/6s 0ms  2s 0ms/2s 0ms

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions