Skip to content
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

IPv6 FW Rule from WAN IP to ff02 missing (NDP) #3015

Closed
bbaumer opened this issue Dec 5, 2018 · 18 comments
Closed

IPv6 FW Rule from WAN IP to ff02 missing (NDP) #3015

bbaumer opened this issue Dec 5, 2018 · 18 comments
Assignees
Labels
bug Production bug
Milestone

Comments

@bbaumer
Copy link

bbaumer commented Dec 5, 2018

Freshinstall on Version: 18.7.8

Setup:
Static IPv6 Address on WAN. The ISP-Gateway is on the same Net (Transfer-Net).
After Reboot no IPv6 Communication is possible, because the Neighbor-Discovery can not be completed.

There is an outgoing pass Rule from the WAN-IP to ff02::/16 for icmp6-type 135 (Neighbor Solicitation) missing.
This Rule should be automatically generated.

Workaround:
Generate a Floating Firewall-Rule on the Webinterface with following parameters:
Action: Pass
Quick: Enabled
Interface: Your WAN
Direction: out
TCP/IP Version: IPv6
Protocol: IPV6-ICMP
Source: WAN address
Destination: ff02::/16
Advanced -> disbale reply-to: Enabled

@fichtner fichtner added the support Community support label Dec 5, 2018
@fichtner
Copy link
Member

fichtner commented Dec 5, 2018

We do have all of these hardwired:

pass in log quick inet6 proto ipv6-icmp from {any} to {any} icmp6-type {1,2,135,136} keep state label "IPv6 requirements (ICMP)"
pass out log quick inet6 proto ipv6-icmp from {fe80::/10} to {fe80::/10,ff02::/16} icmp6-type {129,133,134,135,136} keep state label "IPv6 requirements (ICMP)"
pass in log quick inet6 proto ipv6-icmp from {fe80::/10} to {fe80::/10,ff02::/16} icmp6-type {128,133,134,135,136} keep state label "IPv6 requirements (ICMP)"
pass in log quick inet6 proto ipv6-icmp from {ff02::/16} to {fe80::/10} icmp6-type {128,133,134,135,136} keep state label "IPv6 requirements (ICMP)"

From your description it looks like this one is "mismatching":

pass out log quick inet6 proto ipv6-icmp from {fe80::/10} to {fe80::/10,ff02::/16} icmp6-type {129,133,134,135,136} keep state label "IPv6 requirements (ICMP)"

The only reason why that would happen is fe80::/10 is not being used as traffic source?

@AdSchellevis
Copy link
Member

If I'm understanding the rfc correctly, the router should broadcast itself using it's own address, which in our case is send to the gateway instead of being multicasted:

https://tools.ietf.org/html/rfc4861
On multicast-capable links, each router periodically multicasts a
Router Advertisement packet announcing its availability. A host
receives Router Advertisements from all routers, building a list of
default routers. Routers generate Router Advertisements frequently
enough that hosts will learn of their presence within a few minutes,
but not frequently enough to rely on an absence of advertisements to
detect router failure; a separate Neighbor Unreachability Detection
algorithm provides failure detection.

that would mean we should discard route-to for our outbound ipv6-icmp to ff02::/16 traffic, right?

@fichtner
Copy link
Member

fichtner commented Dec 5, 2018

where would reply-to be set?

@fichtner
Copy link
Member

fichtner commented Dec 5, 2018

sorry, route-to.. do you mean "let out anything from firewall host itself" ?

@AdSchellevis
Copy link
Member

yes, my mistake, I was just looking for the exact reference, but that's it. I can fix this later if you like. we should probably add a rule here, since we also have the others in there too.

@fichtner
Copy link
Member

fichtner commented Dec 5, 2018

but shouldn't the hardcoded ipv6 quick pass without the route-to already catch this?

@AdSchellevis
Copy link
Member

no, since it's not using fe80::/10, but it's own address to multicast (again, assuming I read the rfc correctly)

@fichtner
Copy link
Member

fichtner commented Dec 5, 2018

why not set from {fe80::/10,ff02::/16} for the out rule then?

@AdSchellevis
Copy link
Member

and just drop the from part, that would probably be fine too, easiest fix if you ask me.

@fichtner
Copy link
Member

fichtner commented Dec 5, 2018

I see, it would send from its global address oO

@fichtner fichtner added bug Production bug and removed support Community support labels Dec 5, 2018
@fichtner fichtner added this to the 19.1 milestone Dec 5, 2018
@fichtner
Copy link
Member

fichtner commented Dec 5, 2018

@bbaumer one question, do you have IPv6 Upstream Gateway set under WAN or left it at "auto-detect" ?

fichtner added a commit that referenced this issue Dec 5, 2018
... should honour if a gateway was actually provided.  It worked
or at least was supposed to work in this way before repairing
get_interface_gateway*().

PR: #3015
fichtner added a commit that referenced this issue Dec 5, 2018
@mahescho
Copy link

mahescho commented Dec 6, 2018

I've the same problem with 18.7.8-amd64 and a static internet connection. For me @bbaumer s workaround does not work. I've to do "pfctl -d" and then "pfctl -e" to make it work.

@bbaumer
Copy link
Author

bbaumer commented Dec 6, 2018

@fichtner: I tried both Settings "IPv6 Upstream Gateway" and "auto-detect". It makes no difference. Actually it is set to "auto-detect".

@AdSchellevis
Copy link
Member

@bbaumer can you try c3213d4 ?

@fichtner
Copy link
Member

fichtner commented Dec 6, 2018

I want to work on a related oddity still :)

@fichtner fichtner reopened this Dec 6, 2018
fichtner pushed a commit that referenced this issue Dec 6, 2018
@bbaumer
Copy link
Author

bbaumer commented Dec 6, 2018

I've the same problem with 18.7.8-amd64 and a static internet connection. For me @bbaumer s workaround does not work. I've to do "pfctl -d" and then "pfctl -e" to make it work.

"pfctl -d" and then "pfctl -e" will only temporarly fix the Problem, because Entries in the Neighbor-Table have a Lifetime (24h). You can look at the Entries with ndp -atn

@mahescho
Copy link

mahescho commented Dec 6, 2018

@bbaumer can you try c3213d4 ?

This fixed the issue for me with 18.7.8-amd64 !

@fichtner
Copy link
Member

It's in 18.7.9, closing.

@fichtner fichtner removed their assignment Dec 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Production bug
Development

No branches or pull requests

4 participants