mirror of https://github.com/containers/podman.git
Merge pull request #17963 from Luap99/slirp-dns-userns
fix slirp4netns resolv.conf ip with a userns
This commit is contained in:
commit
9369a3c336
|
@ -1003,6 +1003,8 @@ func (c *Container) completeNetworkSetup() error {
|
|||
nameservers = append(nameservers, server.String())
|
||||
}
|
||||
}
|
||||
nameservers = c.addSlirp4netnsDNS(nameservers)
|
||||
|
||||
// check if we have a bindmount for /etc/hosts
|
||||
if hostsBindMount, ok := state.BindMounts[config.DefaultHostsFile]; ok {
|
||||
entries, err := c.getHostsEntries()
|
||||
|
|
|
@ -2037,8 +2037,13 @@ func (c *Container) generateResolvConf() error {
|
|||
}
|
||||
// first add the nameservers from the networks status
|
||||
nameservers = networkNameServers
|
||||
|
||||
// slirp4netns has a built in DNS forwarder.
|
||||
nameservers = c.addSlirp4netnsDNS(nameservers)
|
||||
// If in userns the network is not setup here, instead we need to do that in
|
||||
// c.completeNetworkSetup() which knows the actual slirp dns ip only at that point
|
||||
if !c.config.PostConfigureNetNS {
|
||||
nameservers = c.addSlirp4netnsDNS(nameservers)
|
||||
}
|
||||
}
|
||||
|
||||
// Set DNS search domains
|
||||
|
|
|
@ -196,8 +196,18 @@ load helpers.network
|
|||
@test "podman run with slirp4ns adds correct dns address to resolv.conf" {
|
||||
CIDR="$(random_rfc1918_subnet)"
|
||||
run_podman run --rm --network slirp4netns:cidr="${CIDR}.0/24" \
|
||||
$IMAGE grep "${CIDR}" /etc/resolv.conf
|
||||
is "$output" "nameserver ${CIDR}.3" "resolv.conf should have slirp4netns cidr+3 as a nameserver"
|
||||
$IMAGE cat /etc/resolv.conf
|
||||
assert "$output" =~ "nameserver ${CIDR}.3" "resolv.conf should have slirp4netns cidr+3 as first nameserver"
|
||||
no_userns_out="$output"
|
||||
|
||||
if is_rootless; then
|
||||
# check the slirp ip also works correct with userns
|
||||
run_podman run --rm --userns keep-id --network slirp4netns:cidr="${CIDR}.0/24" \
|
||||
$IMAGE cat /etc/resolv.conf
|
||||
assert "$output" =~ "nameserver ${CIDR}.3" "resolv.conf should have slirp4netns cidr+3 as first nameserver with userns"
|
||||
assert "$output" == "$no_userns_out" "resolv.conf should look the same for userns"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
@test "podman run with slirp4ns assigns correct ip address container" {
|
||||
|
|
Loading…
Reference in New Issue