BUG: Nebula fails IP configuration of the tun device
What version of nebula are you using? (nebula -version)
1.11.1
What operating system are you using?
Linux 6.12.102-flatcar
Describe the Bug
I configured two hosts as described in the quickstart documentation, one lighthouse and one host. Both hosts have nebula up and running and seem to have a tunnel established. Using the sshd backend, I can succesfully run print-tunnel and device-info commands which show me the tunnel and device configuration respectively.
On both ends, nebula1 devices are succesfully created also. However, IP configuration and routing is missing on both ends. Therefore, the hosts cannot establish what traffic needs to be sent over the tunnel. As these hosts have multiple interfaces, both physical and virtual, I added the interfaces that Nebula needs to ignore to the local_allow_list.
I even used strace to monitor Netlink calls to configure the interface but I don't see any. Nebula logs the following message, however:
"time=2026-09-17T09:32:19.791Z level=INFO msg="Nebula interface is active" interface=nebula1 networks=[192.168.100.1/24] build=1.11.1 udpAddr=x.x.x.x:4242 boringcrypto=false"
Logs from affected hosts
time=2026-09-17T09:32:19.786Z level=DEBUG msg="Client nebula certificate(s)" cert="[{\"curve\":\"CURVE25519\",\"details\":{\"groups\":null,\"isCa\":false,\"issuer\":\"2ff6704b58db78454a139d8cb2937db9bb95a2b1c708556e209d9cfea38d3ea6\",\"name\":\"lighthouse01\",\"networks\":[\"192.168.100.1/24\"],\"notAfter\":\"2036-09-11T15:12:40Z\",\"notBefore\":\"2026-09-14T15:13:53Z\",\"unsafeNetworks\":null},\"fingerprint\":\"f61f93c65fbb4ebd39e4e86bf0bed1cb382a7d4eebc43470ad1d65cc1c280728\",\"publicKey\":\"545f6be06aa48933087b490e71963d0b4dba9e983f8ad3c7bb71a8099c74a321\",\"signature\":\"c31d816f5f0d4d9c31094a85b609bd7b02533667d0cdb64b903c35e64097ad1f1080eeb92c2527edd521df0210425e63a31ff7e771bb19883022bc2b5920a504\",\"version\":2}]"
time=2026-09-17T09:32:19.787Z level=DEBUG msg="Trusted CA fingerprints" fingerprints=[2ff6704b58db78454a139d8cb2937db9bb95a2b1c708556e209d9cfea38d3ea6]
time=2026-09-17T09:32:19.787Z level=INFO msg="Firewall rule added" firewallRule="map[caName: caSha: cidr: direction:outgoing endPort:0 groups:[] host:any localCidr: proto:0 startPort:0]"
time=2026-09-17T09:32:19.787Z level=WARN msg="ignoring port specification for ICMP firewall rule" port=any
time=2026-09-17T09:32:19.787Z level=INFO msg="Firewall rule added" firewallRule="map[caName: caSha: cidr: direction:incoming endPort:0 groups:[] host:any localCidr: proto:1 startPort:0]"
time=2026-09-17T09:32:19.787Z level=INFO msg="Firewall rule added" firewallRule="map[caName: caSha: cidr: direction:incoming endPort:22 groups:[] host:any localCidr: proto:6 startPort:22]"
time=2026-09-17T09:32:19.787Z level=INFO msg="Firewall started" firewallHashes=SHA:76c77c87efc394ea26c348df77eddb7b686359b4f12cca030a71ce8aff88fbb9,FNV:1417645050
time=2026-09-17T09:32:19.788Z level=INFO msg="Authorized ssh key" subsystem=sshd sshKey="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB4wqbE6KHWWnuhnrRi7VaHAwxYBirEIxwJ1InWBIhTA" sshUser=somedude
time=2026-09-17T09:32:19.788Z level=INFO msg=listening addr=x.x.x.x:4242
time=2026-09-17T09:32:19.791Z level=INFO msg="Main HostMap created" preferredRanges=[]
time=2026-09-17T09:32:19.791Z level=INFO msg="punchy enabled"
time=2026-09-17T09:32:19.791Z level=INFO msg="Loaded send_recv_error config" sendRecvError=always
time=2026-09-17T09:32:19.791Z level=INFO msg="Loaded accept_recv_error config" acceptRecvError=always
time=2026-09-17T09:32:19.791Z level=INFO msg="Nebula interface is active" interface=nebula1 networks=[192.168.100.1/24] build=1.11.1 udpAddr=x.x.x.x:4242 boringcrypto=false
Debugging from the sshd backend
> list-hostmap
[192.168.100.10]: [[x:x:x:x::]:4242 x.x.x.x:4242]> print-tunnel 192.168.100.10
{"vpnAddrs":["192.168.100.10"],"localIndex":1109117713,"remoteIndex":946230481,"remoteAddrs":["[x:x:x:x::]:4242","x.x.x.x:4242"],"cert":{"curve":"CURVE25519","details":{"groups":null,"isCa":false,"issuer":"2ff6704b58db78454a139d8cb2937db9bb95a2b1c708556e209d9cfea38d3ea6","name":"appserver01","networks":["192.168.100.10/24"],"notAfter":"2036-09-11T15:12:40Z","notBefore":"2026-09-14T15:14:21Z","unsafeNetworks":null},"fingerprint":"6a83150fcf0515292fdbf02a42e667b859c3d3acaf85f794a430d8c1556b6d79","publicKey":"9df68d432dd23c60b7c3a7069dff9dffc70060a3cbee43ee32a6f96e85d50d12","signature":"44cf337a7436fc1c88596f05f3038f20abc3984c210fa3a31cdb8c6c4c619460b5146f1f09707ccd50bc024070443f787b0d15aa5b039d235afec88632f53503","version":2},"messageCounter":43,"currentRemote":"x.x.x.x:4242","currentRelaysToMe":[],"currentRelaysThroughMe":[]}Config files from affected hosts
Lighthouse:
pki:
ca: /etc/nebula/ca.crt
cert: /etc/nebula/lighthouse01.crt
key: /etc/nebula/lighthouse01.key
lighthouse:
am_lighthouse: true
interval: 60
remote_allow_list:
'0.0.0.0/0': true
local_allow_list:
interfaces:
'docker.*': false
'dummy0': false
listen:
host: x.x.x.x
port: 4242
tun:
disabled: false
dev: nebula1
mtu: 1300
logging:
level: debug
format: text
sshd:
enabled: true
listen: 127.0.0.1:2222
host_key: /etc/nebula/ssh_host_ed25519_key
authorized_users:
- user: somedude
keys:
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB4wqbE6KHWWnuhnrRi7VaHAwxYBirEIxwJ1InWBIhTA'
punchy:
punch: true
firewall:
outbound:
- port: any
proto: any
host: any
inbound:
- port: any
proto: icmp
host: any
- port: 22
proto: tcp
host: anyHost:
pki:
ca: /etc/nebula/ca.crt
cert: /etc/nebula/appserver01.crt
key: /etc/nebula/appserver01.key
lighthouse:
am_lighthouse: false
interval: 60
remote_allow_list:
'0.0.0.0/0': true
local_allow_list:
interfaces:
'docker.*': false
'dummy0': false
hosts:
- "192.168.100.1" # overlay IP of the lighthouse
static_host_map:
"192.168.100.1": ["x.x.x.x:4242"] # real public IP:port
listen:
host: x.x.x.x
port: 4242
punchy:
punch: true
respond: true
firewall:
outbound:
- port: any
proto: any
host: any
inbound:
- port: any
proto: icmp
host: any
- port: 22
proto: tcp
host: any
- port: 443
proto: tcp
host: anyNebula1 interface configuration on both ends:
nebula1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1300
inet6 fe80::f653:83d0:c002:59b2 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 48 bytes 12644 (12.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0Source: slackhq/nebula