-
Notifications
You must be signed in to change notification settings - Fork 759
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
bogons: blocking order for IPv6 et al #1331
Comments
|
@xtof01 Oh thanks very much for this! Can you try the following patch? |
|
Thanks, that fixed it. There is still a problem with Prefix Delegation, but I'm still trying to figure that out ... |
|
I'm going to try all of this tonight and see if it resolves my IPv6 issues. I've been experiencing something similar. |
|
@kgleason I wouldn't recommend it 😃 @fichtner So I reverted the first patch (manually -- didn't have a working network connection) and tried again. Since I didn't see a possibility to fix this (reverting the third patch removed One interesting thing though: Despite the system not booting completely and not routing any traffic, on the second boot it did successfully manage to request prefix delegation (I observed this with Wireshark), and it did assign a prefix to the internal tracking interface: |
|
Sorry, I forgot to mention how to reset the original package: I will prepare a correct backport tomorrow, but @AdSchellevis did already indicate that it may indeed be another subtle PHP 7 issue and not related to direct changes. |
|
Well I didn't refresh this before I tried, but it didn't seem to affect anything. I did have some failures ... looks like perhaps Hunk #2 of 3 failed to apply. Still no IPv6. I should probably clarify that my issue I think is less specific than this issue. I am able to enter a prefix (or rather choose one from the dropdown), but I'm just not getting any IPv6 address on my WAN. |
|
Ok, here we go: The 16.7.x state is this one: Some fixes for 17.1 went into this one: Resetting the code is still done by: Thanks in advance, |
|
Okay, I hope I understood your instructions correctly. Test 1 No network connectivity, interfaces didn't get configured. Test 2 This is basically the same situation as in my post from two days ago: The interfaces are configured, the PPPoE link is established, even Prefix Delegation happens and the internal interface has an IPv6 address assigned, but the boot process fails (and no traffic is getting through the firewall). I was starting to wonder about something: Could it be possible that there is a race condition between the DHCPv6 client and the configuration process? I observed that while the PPPoE connection is being established the output |
|
Knowing about post-interfaces.lib.inc would be helpful, some changes made. It could be that the bootup code on 17.1 differs, but then this should be reproducible with 16.7 with the "opnsense-devel" package? It would help to confirm that PHP 7.0 or FreeBSD 11.0 is not part of the issue :) |
|
My apologies, I didn't quite understand your last post. What would you like me to try?
I tried post-interfaces.lib.inc in test 1 in my last post. Should I do something else with it?
Should I install 16.7 and then do a |
|
Hi, as I wrote at the end of my comment from Wednesday, I am now pretty sure that the problem lies in the packet filter rules. Right now I am using the following setup:
As described before, this setup boots without error messages, but PD and, consequently, assignment of IPv6 addresses on the internal network doesn't work. With Wireshark I can see the following happening on the WAN interface: This repeats over and over. And then the DHCPv6 handshake stops repeating on the WAN interface, the internal interface gets an IPv6 prefix assigned and my internal hosts get IPv6 addresses from that prefix (due to the firewall's radvd finally sending Prefix information options in its router advertisements). Since all this happens the very moment I disable the packet filter rules, it must be that the DHCPv6 responses get blocked on the WAN interface while the packet filter rules are active. |
|
@xtof01 If I'm not mistaken, there should be rules using port 546/547, can you run the following on your machine and report the output?
This should return a couple of rules related to DHCPv6. |
|
@AdSchellevis Thanks for pointing me in the right direction. I found the cause for this problem. This looks good so far. However, there are several "block" rules in front of them, in particular: The table
|
|
@xtof01 thanks for analysing this further, it looks like our bogon list is blocked too soon. I will take a look at this one and post a new patch as soon as I have the time. |
|
The command ;) |
|
It works! ;-) I applied the patch, re-enabled "Block bogon networks" on WAN, and rebooted. While this solution is fine for me, I would like to point out two things I noticed which might not be totally fine for other people. 1) Order of bogon rules wrt. other link-local rules If, for whatever reason, I would enable bogon filtering on my internal interface (bridge0), those rules would probably prevent access to the DHCPv6 server on bridge0, whose rules are below the bogon rules. 2) Distinction between bogons and private networks |
(cherry picked from commit 4dbc24e)
|
This latest patch resolved my lack of IPv6 connectivity as well. Props to @xtof01 for tracking it down. |
Due to the move to PHP 7 in 17.1 Beta, there is a problem when trying to configure IPv6 interface tracking.
On the interface configuration page, after setting "IPv6 Configuration Type" to "Track Interface" and selecting the IPv6 interface to track, you can enter an IPv6 prefix ID in order to select a specific prefix from the (potentially larger) prefix delegated to you.
However, entering any number different from 0 always results in getting the error message
The reason is that in line 694 of interfaces.php the function
is_numericis used to check the prefix ID, with a "0x" prefix prepended to the form input.Unfortunately, as stated in the PHP documentation, support for hex notation has been removed from
is_numericin PHP 7. Therefore,is_numericis always false.The text was updated successfully, but these errors were encountered: