-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Subnet router ACL's broken on 0.23.0-alpha1 #1604
Comments
0.23.0-alpha2 addresses a series of issues with node synchronisation, online status and subnet routers, please test this release and report back if the issue still persist. |
Hello, seems 0.23.0-alpha2 still has this issue. I've just updated and reverted back to 0.22.3 mine deployment due inability to use subnet routers. On 0.22.3 all works as expected. |
I think this may be related to the ACLs - I have an alpha2 where subnet routes are working properly (albeit I have not tested with nodes that are exit nodes). |
@jwischka Can you share your ACL? I have the same problem, only ACL with "*:0" helps but its not what I want. |
Mine are basically a series of:
|
In my case:
|
Could you please get me a copy of the netmap from the nodes from both version 0.23.0-alpha2 and 0.22.3 so I can compare them? You can do that with |
Fixes juanfont#1604 Signed-off-by: Kristoffer Dalby <[email protected]>
I think I have fixed this in #1673, could you try that PR? |
Fixes juanfont#1604 Signed-off-by: Kristoffer Dalby <[email protected]>
Fixes juanfont#1604 Signed-off-by: Kristoffer Dalby <[email protected]>
At the moment I do not have a 0.23.0-alpha2 installation. |
Not sure if its entirely related, however I am seeing broken subnet routes when setting an ACL. I have the following ACL:
the test-server is defined as a host and is on the same subnet as a the "exit node" advertising the route for the subnet, it is enabled. With this ACL config, i am not seeing the subnet route in the PacketFilterRules under DstPorts (still seeing the other 2 rules though). When setting a wildcard dst for the developer group, i am able to ping everything on the subnet and can see the wildcard in DstPorts in the PacketFilterRules. I have also tried @kradalby's #1673 with the same result. Tried on MacOS, Windows and Linux clients with the exact same result, running a packet capture on the client for the tailscale interface shows the ICMP with no response found, running a wireshark sshdump on tailscale0 of the subnet route server, i see no ICMP packets |
@sniff122 does it work with 0.22.3? I just want to understand if it is already broken or a regression. |
It doesnt look like i have a recent snapshot of my VM with 0.22.3 however with 0.23.0-alpha1 the issues are still present |
ok, I it would be ideal to get that tested as it will indicate if it is a new issue or an already existing one. If it is a new issue (since 0.22.3), it will block the new release, but if it is an existing issue, then we should create a separate issue and solve it after 0.23.0 goes out. |
I just tested and confirmed this issue still exists on headscale_0.23.0-alpha2_linux_amd64.deb |
Here's a (slightly scrubbed) netmap from the client while broken. I was using the exact ACL at the top of this issue with just the allow 0.0.0.0 removed. |
Just tested with 0.22.3, found an older backup and it ACLs appear to be working fine |
Fixes juanfont#1604 Signed-off-by: Kristoffer Dalby <[email protected]>
Fixes #1604 Signed-off-by: Kristoffer Dalby <[email protected]>
Could you give 0.23.0-alpha3 a go and report back? |
My install is prod now unfortunately so I'll need to spin up a test environment. Hopefully can do that next week. |
I am having the same problem with 0.23.0-alpha3. Let me know if I can help debugging it in some way. |
Have checked into this, it seems the user connecting to the subnet needs 'access' to the device/user the subnet is on. acls:
- action: accept
src:
- "group:admin"
dst:
- "10.0.0.0/16:*" Can ping when acl is acls:
- action: accept
src:
- "group:admin"
dst:
- "10.0.0.0/16:*"
- "node:0" TL;DR peers are not inferred by advertised routes |
Related netmap when not working {
"PacketFilter": [
{
"IPProto": [
6,
17,
1,
58
],
"Srcs": [
"100.64.0.1/32",
"fd7a:115c:a1e0::1/128"
],
"Dsts": [
{
"Net": "10.0.0.0/16",
"Ports": {
"First": 0,
"Last": 65535
}
}
],
"Caps": []
}
],
"PacketFilterRules": [
{
"SrcIPs": [
"100.64.0.1/32",
"fd7a:115c:a1e0::1/128"
],
"DstPorts": [
{
"IP": "10.0.0.0/16",
"Bits": null,
"Ports": {
"First": 0,
"Last": 65535
}
}
]
}
]
} Related netmap when working {
"PacketFilter": [
{
"IPProto": [
6,
17,
1,
58
],
"Srcs": [
"100.64.0.1/32",
"fd7a:115c:a1e0::1/128"
],
"Dsts": [
{
"Net": "10.0.0.0/16",
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"Net": "100.64.0.2/32",
"Ports": {
"First": 0,
"Last": 0
}
},
{
"Net": "fd7a:115c:a1e0::2/128",
"Ports": {
"First": 0,
"Last": 0
}
}
],
"Caps": []
}
],
"PacketFilterRules": [
{
"SrcIPs": [
"100.64.0.1/32",
"fd7a:115c:a1e0::1/128"
],
"DstPorts": [
{
"IP": "10.0.0.0/16",
"Bits": null,
"Ports": {
"First": 0,
"Last": 65535
}
},
{
"IP": "100.64.0.2/32",
"Bits": null,
"Ports": {
"First": 0,
"Last": 0
}
},
{
"IP": "fd7a:115c:a1e0::2/128",
"Bits": null,
"Ports": {
"First": 0,
"Last": 0
}
}
]
}
]
} |
Bug description
If you define an ACL on 0.23.0-alpha1, it breaks subnet routing. It works if you allow access to 0.0.0.0/0, but anything more specific just breaks traffic.
Environment
Ubuntu server with headscale 0.23.0-alpha1 on public IP space
Ubuntu server with exit / subnet router on 1.52.1 on internal IP space
Windows test machine on 1.52.1
To Reproduce
This exact same config works fine on 0.22.3.
The text was updated successfully, but these errors were encountered: