我可以通过主机所在的 DHCP 服务器从容器内获取 DHCP 地址吗?

我可以通过主机所在的 DHCP 服务器从容器内获取 DHCP 地址吗?

我有一个主机(ubuntu xenial)通过(也是xenial)运行容器systemd-nspawn

systemd-nspawn --directory=gogs --network-macvlan=ens192 --boot

ens192是通过 DHCP 获取 IP 地址的主机接口。

从容器内,我想获取一个由网络 DHCP 提供的 IP 地址,该地址之前将其提供给主机(我首先需要使用在 DHCP 服务器中注册的 MAC 地址):

root@git:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: mv-ens192: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1
    link/ether d2:b9:c3:77:25:83 brd ff:ff:ff:ff:ff:ff link-netnsid 0

root@git:~# ifconfig mv-ens192 hw ether aa:a0:a0:a0:a0:01

root@git:~# ifconfig mv-ens192 up

root@git:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: mv-ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
    link/ether 00:50:56:bb:60:3f brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::250:56ff:febb:603f/64 scope link
       valid_lft forever preferred_lft forever

root@git:~# dhclient -v
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/mv-ens192/aa:a0:a0:a0:a0:01
Sending on   LPF/mv-ens192/aa:a0:a0:a0:a0:01
Sending on   Socket/fallback
DHCPDISCOVER on mv-ens192 to 255.255.255.255 port 67 interval 3 (xid=0xd36b8c1e)
DHCPDISCOVER on mv-ens192 to 255.255.255.255 port 67 interval 7 (xid=0xd36b8c1e)

但这一发现并没有发生。

这失败的原因是什么?

DHCP 发现数据包发送至主机 NIC,然后主机 NIC 应进一步分派该数据包(它不应与主机在请求其自己的 IP 时进行的调用不同)。

注意:当tshark主持人,我看到容器的请求:

634 8.404019212      0.0.0.0 -> 255.255.255.255 DHCP 342 DHCP Discover - Transaction ID 0xd36b8c1e

相关内容