In the meantime, I can report that stability seems perfectly fine and, while I have not run any scientific performance benchmarks, it seems to work well for my network access needs. There was what seems to be a memory leak in the older version, which now seems to be either fixed or less noticeable.
I built it and tried to use it, but my OpenVPN qube network always go down and up again after a few minutes for some reason. Anyone having the same issue?
Same here. Mirage firewall works fine if integrated with a non-openvpn qube. The minute I attached it to a vpn qube (@tasket type) the connection just cycled up and down and the qube became unusable.
@DVM@qub411 can you please clarify for which version of mirage-firewall this issue is present?
I have experienced similar VPN & tunneling stability issues with V0.7, V0.7.1, however adjusting the RAM/memory reduced the occurences hence I believe it to be caused by the same memory-leak issue mentioned by @flavio .
Hmm… Wireguard VPN… doesn’t it use UDP? If so, the mirage firewall Qube may not be configured to pass UDP from the world back into your VPN Qube. Did you try adding a rule to allow for that traffic?
I’ve never had an issue with firewall connectivity, and the previous 2020 release ran fine throughout its life; but with this new release the firewall after my Wireguard VM just silently crashes on occasion, leaving a gap in my network stack. On Qubes Manager that firewall is shown as shut off and I have to manually start it.
I have too few data points to be sure, but the crashing doesn’t seem correlated with network load as they have so far occured at low loads. Sometimes the crashes seem to affect dom0, which is very concerning.
I hope someone working on Mirage reads this since I don’t have a Github account to let them know directly.
The Robur collective actually developed reproducible builds for MirageOS unikernels: Job qubes-firewall
This conducts a build on a daily basis with the current HEAD of qubes-mirage-firewall and the latest (to opam, the OCaml package manager) released packages that it depends on. It would be great if we could push whenever the binary is updated a new release to all QubesOS users, thus:
how should it be packaged (at the moment, it is the binary (virtual machine image))?
could that be integrated into the QubesOS community repository?
So far, I’ve had one unexpected shutdown of my mirage-firewall net-vm. It was after a network outage this morning and I do have the same error message that is mentioned in that issue:
Fatal error: out of memory
Aborted
Solo5: solo5_abort() called
Update (5d): Another unexpected mirage-firewall “out of memory” shutdown; I didn’t notice a network outage this though.
Nice to see some fresh conversation going on about this.
Glad that Demi is in favor of including Mirage to the QubesOS repos, so that users wouldn’t have to export unikernel os from AppVM to dom0.
However, can someone talk more about Demi’s reservation about the “speed” ?
I hope so too, and I would like it to become fast enough to be the
default.
Also, Holger Levsen seems to argue that,
On slow computers (eg x230) it’s not only slow
but might also be using one cpu 100%
After suffering tens more crashes it seems as though the issue with dom0 was a one-time coincidence. Debug it using your typical Linux debugging skills with a bit of Qubes knowledge?
I run two Mirages, and it’s only the second one behind my Wireguard VM that consistently crashed, even though the loads the two experienced were virtually identical (not the routing though).
Based on consistent reports of Mirage crashes after network outage and the lack of crashes with my sys-net Mirage despite the fact I frequently remove my ethernet cable, I suspect my crashes had something to do with Wireguard’s quirks.