QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
542 stars 48 forks source link

VMs depending on a VPN ProxyVM cannot reach the DNS server #9582

Open ramboman opened 6 days ago

ramboman commented 6 days ago

Qubes OS release

4.2.3

Brief summary

Since I upgraded my VPN ProxyVM (sys-vpn) from fedora-39-xfce to fedora-40-xfce, its depending VMs cannot reach the DNS server anymore.

Steps to reproduce

Result:

$ sudo nft list chain ip qubes dnat-dns
table ip qubes {
    chain dnat-dns {
        type nat hook prerouting priority dstnat; policy accept;
        ip daddr 10.139.1.1 udp dport 53 dnat to 10.139.1.1
        ip daddr 10.139.1.1 tcp dport 53 dnat to 10.139.1.1
        ip daddr 10.139.1.2 udp dport 53 dnat to 10.139.1.2
        ip daddr 10.139.1.2 tcp dport 53 dnat to 10.139.1.2
    }
}

Expected behavior

Result:

$ sudo nft list chain ip qubes dnat-dns
table ip qubes {
    chain dnat-dns {
        type nat hook prerouting priority dstnat; policy accept;
        ip daddr 10.139.1.1 udp dport 53 dnat to 1.1.1.1
        ip daddr 10.139.1.1 tcp dport 53 dnat to 1.1.1.1
        ip daddr 10.139.1.2 udp dport 53 dnat to 8.8.8.8
        ip daddr 10.139.1.2 tcp dport 53 dnat to 8.8.8.8
    }
}

sys-vpn reroute correctly the DNS request to the proper DNS server

Result:

$ ping www.google.com
PING www.google.com (64.233.177.99) 56(84) bytes of data.
64 bytes from yx-in-f99.1e100.net (64.233.177.99): icmp_seq=2 ttl=55 time=36.1 ms
64 bytes from yx-in-f99.1e100.net (64.233.177.99): icmp_seq=3 ttl=55 time=35.4 ms
64 bytes from yx-in-f99.1e100.net (64.233.177.99): icmp_seq=4 ttl=55 time=35.9 ms
^C
--- www.google.com ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3033ms
rtt min/avg/max/mdev = 35.380/35.790/36.111/0.305 ms

test-vpn is able to reach the DNS server and Google.

Actual behavior

Result:

$ sudo nft list chain ip qubes dnat-dns
table ip qubes {
    chain dnat-dns {
        type nat hook prerouting priority dstnat; policy accept;
        ip daddr 10.139.1.1 udp dport 53 dnat to 10.139.1.1
        ip daddr 10.139.1.1 tcp dport 53 dnat to 10.139.1.1
        ip daddr 10.139.1.2 udp dport 53 dnat to 10.139.1.2
        ip daddr 10.139.1.2 tcp dport 53 dnat to 10.139.1.2
    }
}

sys-vpn does not reroute correctly the DNS request to the proper DNS server.

Result:

$ ping www.google.com
<nothing>

test-vpn is unable to reach the DNS server and Google.

Further details