-
Notifications
You must be signed in to change notification settings - Fork 9
Fix DNS resolution in ephemeral guests #167
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
base: main
Are you sure you want to change the base?
Conversation
d5e8558 to
f693004
Compare
cgwalters
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine with this overall if you are; a few nits.
That said, an integration test (run as part of just test-integration ephemeral) would be both easy and IMO mandatory for changes like this.
542253f to
8b859ad
Compare
dcc3ad4 to
9996db4
Compare
|
|
9996db4 to
5e28fd5
Compare
Ah yes that relates to #22 - basically all of |
cgwalters
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One nit otherwise looks sane (though I'd reiterate we probably really do want a bigger fix of --net=host per the issue, but this helps for now)
| "-c", | ||
| r#" | ||
| for i in $(seq 1 30); do | ||
| ip -4 addr show | grep -q "inet " && break |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because ssh requires IP networking, I can't think of a scenario in which ssh would work but this could somehow fail. This is likely just dead code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. Updated and removed the dead code there.
5e28fd5 to
57af585
Compare
57af585 to
eb89500
Compare
|
Reworking this PR as I think it will require a few more changes. |
eb89500 to
5cf80aa
Compare
QEMU's slirp reads /etc/resolv.conf from the container namespace, which contains unreachable bridge DNS servers. On systemd-resolved hosts, it only has 127.0.0.53 (stub resolver). Read upstream DNS servers from host's /run/systemd/resolve/resolv.conf, pass them to the container, and write /etc/resolv.conf before starting QEMU. Signed-off-by: gursewak1997 <[email protected]>
5cf80aa to
3bf0686
Compare
Configure QEMU user-mode networking to use host DNS servers from /etc/resolv.conf instead of the default 10.0.2.3, which doesn't work when QEMU runs inside containers.