호스트가 위치한 DHCP 서버를 통해 컨테이너 내부에서 DHCP 주소를 얻을 수 있나요?

호스트가 위치한 DHCP 서버를 통해 컨테이너 내부에서 DHCP 주소를 얻을 수 있나요?

(또한 xenial)을 통해 컨테이너를 실행하는 호스트(ubuntu xenial)가 있습니다 systemd-nspawn.

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

ens192DHCP를 통해 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

관련 정보