-
Notifications
You must be signed in to change notification settings - Fork 28
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
DNS pb with v0.8.2 #158
Comments
I have the following in my test VM:
I can reproduce the crash that with the 0.8.2 binary and with the current robur.coop build. I'll try to figure out what is the issue. |
It seems to be stuck resolving (with name as qubes-mirage-firewall/rules.ml Line 54 in b09acde
|
Would you mind to compile and try the |
You spotted the right thing, it loops with:
|
thanks. would you mind to try mirage-nat from my fork in the |
Still there's some issue, even with the above fix... namely the resouce "UDP source ports of the firewall" needs to be shared amongst "NAT" and "DNS". This is done by:
Whenever a new port is picked, NAT uses Whenever a fresh DNS port is used, free_udp_port is used that asks the NAT implementation (after pick_Free_port) whether the port is not in use. The issue now is that free_udp_port may loop (nearly) infinitely. Somehow the last_resort_port should be used more frequently / explicitly: after N (10?) tries of a not-used-by-dns port whether NAT uses it, the last_resort should be taken. There's no need to ask NAT whether that one is free. When there's confirmation that the mirage-nat change leads to a working dns-resolving firewall again, I'll re-structure the |
See #159 |
The #159 (and with or without the mirage-nat patch) solve the burn cpu loop, but I now can't get access to |
Hmm, maybe try with Or use a simpler setup, and test with |
I can see in the log (I simplified the rule to accept any proto/any port for mirage.io):
|
The |
Could you run that with debug level output? Then we'd see the error (from rules.ml): | Error (`Msg m) ->
Log.warn (fun f -> f "Ignoring rule %a, could not resolve" Q.pp_rule rule);
Log.debug (fun f -> f "%s" m); |
The error message is |
thanks for the report, fixed in the 0.8.3 release. |
First reported by fiftyfourthparallel on https://forum.qubes-os.org/t/mirage-firewall-0-8-2-broken-new-users-should-install-0-8-1/14566
It seems that we now have an issue with DNS. I'll try to reproduce the scenario to understand what is the pb root cause.
The text was updated successfully, but these errors were encountered: