나는 두 게스트 vdeb02-10-base
와 함께 KVM(커널 기반 가상 머신)을 실행하기 위해 Debian Bullseye를 사용하고 있습니다 vdeb03-10-base
. 두 게스트 모두 Debian Buster가 설치되어 있습니다. 테스트 목적으로 이 유틸리티를 vdeb03-10-base
복제 하고 사용하여 Mac 주소 등과 같은 고유한 시스템 매개변수가 있는지 확인하세요. 내가 사용하는 모든 장치(호스트, 게스트)vdeb02-10-base
virt-clone
시스템 네트워크.
ISC-DHCP 서버에서 IP 주소를 얻기 위해 DHCP를 활성화 하면 vdeb02-10-base
DHCP 서버 로그에 표시된 대로 모든 것이 제대로 작동합니다.
Oct 05 18:43:49 vnetsvr30-10 dhcpd[1534]: DHCPDISCOVER from 52:54:00:ee:f5:0a via ens1
Oct 05 18:43:50 vnetsvr30-10 dhcpd[1534]: DHCPOFFER on 192.168.30.104 to 52:54:00:ee:f5:0a (vdeb02-10-base) via ens1
Oct 05 18:43:50 vnetsvr30-10 dhcpd[1534]: DHCPREQUEST for 192.168.30.104 (192.168.30.10) from 52:54:00:ee:f5:0a (vdeb02-10-base) via ens1
Oct 05 18:43:50 vnetsvr30-10 dhcpd[1534]: Wrote 56 leases to leases file.
Oct 05 18:43:50 vnetsvr30-10 dhcpd[1534]: DHCPACK on 192.168.30.104 to 52:54:00:ee:f5:0a (vdeb02-10-base) via ens1
Oct 05 18:43:50 vnetsvr30-10 dhcpd[1534]: Added new forward map from vdeb02-10-base.home.hoeft-online.de. to 192.168.30.104
Oct 05 18:43:50 vnetsvr30-10 dhcpd[1534]: Added reverse map from 104.30.168.192.in-addr.arpa. to vdeb02-10-base.home.hoeft-online.de.
동적 DNS 이름은 DNS 서버에 매핑되므로 다음을 사용하여 쿼리할 수 있습니다.
~$ dig +search +noall +answer vdeb02-10-base
vdeb02-10-base.home.hoeft-online.de. 3600 IN A 192.168.30.104
시작하면 vdeb03-10-base
DHCP 서버 로그에 다음이 표시됩니다.
Oct 05 18:44:55 vnetsvr30-10 dhcpd[1534]: DHCPDISCOVER from 52:54:00:ed:c5:df (vdeb02-10-base) via ens1
Oct 05 18:44:55 vnetsvr30-10 dhcpd[1534]: ICMP Echo reply while lease 192.168.30.104 valid.
Oct 05 18:44:55 vnetsvr30-10 dhcpd[1534]: Abandoning IP address 192.168.30.104: pinged before offer
Oct 05 18:44:55 vnetsvr30-10 dhcpd[1534]: Removed forward map from vdeb02-10-base.home.hoeft-online.de. to 192.168.30.104
Oct 05 18:44:55 vnetsvr30-10 dhcpd[1534]: Removed reverse map on 104.30.168.192.in-addr.arpa.
Oct 05 18:44:57 vnetsvr30-10 dhcpd[1534]: DHCPDISCOVER from 52:54:00:ed:c5:df via ens1
Oct 05 18:44:58 vnetsvr30-10 dhcpd[1534]: DHCPOFFER on 192.168.30.95 to 52:54:00:ed:c5:df (vdeb03-10-base) via ens1
Oct 05 18:44:58 vnetsvr30-10 dhcpd[1534]: DHCPREQUEST for 192.168.30.95 (192.168.30.10) from 52:54:00:ed:c5:df (vdeb03-10-base) via ens1
Oct 05 18:44:58 vnetsvr30-10 dhcpd[1534]: DHCPACK on 192.168.30.95 to 52:54:00:ed:c5:df (vdeb03-10-base) via ens1
Oct 05 18:44:58 vnetsvr30-10 dhcpd[1534]: Added new forward map from vdeb03-10-base.home.hoeft-online.de. to 192.168.30.95
Oct 05 18:44:58 vnetsvr30-10 dhcpd[1534]: Added reverse map from 95.30.168.192.in-addr.arpa. to vdeb03-10-base.home.hoeft-online.de.
DHCP 서버가 from DHCPDISCOVER
대신 vdeb02-10-base
from 이라고 말하는 이유는 무엇입니까 vdeb03-10-base
? Mac 주소와 호스트 이름이 다릅니다. 물론 DHCP 서버에 ping을 보내는 것은 네트워크에 IP 주소 충돌이 있음을 의미합니다. 그런 다음 DNS 매핑을 제거 vdeb02-10-base
하고 매핑으로 대체하므로 더 이상 이름을 확인할 vdeb03-10-base
수 없습니다 .vdeb02-10-base
여기서 무슨 일이 일어나고 있는 걸까요? DHCP 서버가 두 번째 게스트의 이름을 추가하는 대신 DNS 서버의 호스트 이름을 바꾸는 이유는 무엇입니까? 문제가 어디에 있을 수 있습니까? 클라이언트에서, 표준 브리지가 있는 호스트에서, DHCP 서버에서, 아니면 systemd-networkd를 사용합니까? 어쩌면 사용할 수 있는 옵션이 있을까요 /etc/dhcp/dhcpd.conf
?
답변1
DHCP 서버의 로그를 살펴보면 서로 다른 두 장치의 이름과 MAC 주소가 다르더라도 이를 구별할 수 없는 것으로 보입니다. 분명히 이것은 네트워크에서 장치를 식별하는 데 사용되지 않습니다. vdeb03-10-base
클론이기 때문에 vdeb02-10-base
클론 후에도 변경되지 않은 다른 식별자가 있어야 합니다(이름과 mac 주소가 변경됨).
man systemd.network
이것이 무엇인지 알아보다가 ClientIdentifier=
"사과" 또는"두이드두 장치 이름 이 모두로 설정되면 mac
동적으로 DNS 서버에 올바르게 매핑되지만 문제의 원인이 해결되지는 않습니다. 두 장치 모두에 동일하게 유지되는 DUID가 있어야 하며 다른 문제를 일으킬 수 있습니다.
DHCP에 대한 DUID를 설정할 수 있다는 것을 알았는데 /etc/systemd/networkd.conf
다음 질문은 이를 어떻게 계산하느냐는 것입니다. 내가 찾은 것 man networkd.conf
:
"DUIDType=vendor"인 경우 DUID 값은 공급업체 식별자(systemd) 및 machine-id(5)의 해시로 "43793"을 사용하여 생성됩니다. DUIDType=이 지정되지 않은 경우 이것이 기본값입니다.
그래서 문제의 근본은머신 ID두 손님 모두 똑같습니다.
하지만 바꾸는 데에는 몇 가지 문제가 있습니다. 내가 찾은 방법은 다음과 같습니다./etc/machine-id를 변경할 수 있습니까?. 간단히 말해서, 다음을 수행해야 합니다.
~$ sudo rm -f /etc/machine-id
~$ sudo dbus-uuidgen --ensure=/etc/machine-id
~$ sudo rm /var/lib/dbus/machine-id
~$ sudo dbus-uuidgen --ensure