-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
WaitingForInfoIssue is not actionable because of missing required information, which needs to be provided.Issue is not actionable because of missing required information, which needs to be provided.
Description
What version of nebula are you using? (nebula -version)
1.9.3
What operating system are you using?
Linux
Describe the Bug
I am using Nebula to assign a public IPv4 to a host behind NAT. Everything works well, except I cannot add a default route to an arbitrary routing table. When I do, Nebula crashes.
To reproduce, while you have Nebula running, run
ip route add default via <nebula-peer-gateway> table 1011
You can use any route table number or name, make a number up if you wish.
In effect, I'm not overriding my default route on my host. I want policy based routing to respond back using a specific routing table, and thus the need of a default route.
If I add all the CIDRs of public IPs to a given table, instead of using 'default', my policy based routing works. As in:
ip route add 23.x.y.0/24 dev nebula1 proto kernel scope link src 23.x.y.30 mtu 1300 table nb4n0
/sbin/ip rule add from 23.x.y.30 table nb4n0
/sbin/ip rule add iif nebula1 table nb4n0
/sbin/ip rule add oif nebula1 table nb4n0
ip route add 1.0.0.0/8 via 23.x.y.11 table nb4n0
ip route add 2.0.0.0/8 via 23.x.y.11 table nb4n0
ip route add 3.0.0.0/8 via 23.x.y.11 table nb4n0
ip route add 4.0.0.0/6 via 23.x.y.11 table nb4n0
ip route add 8.0.0.0/7 via 23.x.y.11 table nb4n0
ip route add 11.0.0.0/8 via 23.x.y.11 table nb4n0
ip route add 12.0.0.0/6 via 23.x.y.11 table nb4n0
ip route add 16.0.0.0/4 via 23.x.y.11 table nb4n0
ip route add 32.0.0.0/3 via 23.x.y.11 table nb4n0
ip route add 64.0.0.0/2 via 23.x.y.11 table nb4n0
ip route add 128.0.0.0/3 via 23.x.y.11 table nb4n0
ip route add 160.0.0.0/5 via 23.x.y.11 table nb4n0
ip route add 168.0.0.0/6 via 23.x.y.11 table nb4n0
ip route add 172.0.0.0/12 via 23.x.y.11 table nb4n0
ip route add 172.32.0.0/11 via 23.x.y.11 table nb4n0
ip route add 172.64.0.0/10 via 23.x.y.11 table nb4n0
ip route add 172.128.0.0/9 via 23.x.y.11 table nb4n0
ip route add 173.0.0.0/8 via 23.x.y.11 table nb4n0
ip route add 174.0.0.0/7 via 23.x.y.11 table nb4n0
ip route add 176.0.0.0/4 via 23.x.y.11 table nb4n0
ip route add 192.0.0.0/9 via 23.x.y.11 table nb4n0
ip route add 192.128.0.0/11 via 23.x.y.11 table nb4n0
ip route add 192.160.0.0/13 via 23.x.y.11 table nb4n0
ip route add 192.169.0.0/16 via 23.x.y.11 table nb4n0
ip route add 192.170.0.0/15 via 23.x.y.11 table nb4n0
ip route add 192.172.0.0/14 via 23.x.y.11 table nb4n0
ip route add 192.176.0.0/12 via 23.x.y.11 table nb4n0
ip route add 192.192.0.0/10 via 23.x.y.11 table nb4n0
ip route add 193.0.0.0/8 via 23.x.y.11 table nb4n0
ip route add 194.0.0.0/7 via 23.x.y.11 table nb4n0
ip route add 196.0.0.0/6 via 23.x.y.11 table nb4n0
ip route add 200.0.0.0/5 via 23.x.y.11 table nb4n0
ip route add 208.0.0.0/4 via 23.x.y.11 table nb4n0
Logs from affected hosts
After running /sbin/ip route add default via a.b.c.d table 111
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x2de818]
goroutine 27 [running]:
github.com/slackhq/nebula/overlay.(*tun).updateRoutes(_, {0x18, {0x8, 0x0, 0x0, 0x0, {0x0, 0x0, 0x0}, {0x40001104a8, ...}, ...}})
github.com/slackhq/nebula/overlay/tun_linux.go:508 +0x48
github.com/slackhq/nebula/overlay.(*tun).watchRoutes.func1()
github.com/slackhq/nebula/overlay/tun_linux.go:486 +0x60
created by github.com/slackhq/nebula/overlay.(*tun).watchRoutes in goroutine 1
github.com/slackhq/nebula/overlay/tun_linux.go:482 +0xf8
Config files from affected hosts
Metadata
Metadata
Assignees
Labels
WaitingForInfoIssue is not actionable because of missing required information, which needs to be provided.Issue is not actionable because of missing required information, which needs to be provided.