"호스트 어댑터만"을 사용하는 가상 머신이 있습니다. VirtualBox의 내장 DHCP 서버를 비활성화했습니다. isc-dhcp-server
하이퍼바이저에 설치했습니다 . 그런 다음 서브넷을 추가했습니다.
subnet 10.10.54.0 netmask 255.255.255.0 {
range 10.10.54.2 10.10.54.254;
option routers 10.10.54.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
}
그리고 가상 머신의 고정 주소를 추가했습니다.
host 10-10-54-11 {
hardware ethernet 08:00:27:de:7e:cc;
fixed-address 10.10.54.11;
}
내 가상 머신에는 MAC 주소가 있습니다 08:00:27:de:7e:cc
. 다음 명령을 사용하여 가상 머신에서 DHCP 요청을 보내려고 합니다 nmap --script broadcast-dhcp-discover
. 그러나 DHCPd가 VM에 IP 주소를 제공하라는 요청을 받으면 DHCPd는 완전히 다른 MAC 주소를 표시하고 고정 주소를 보내지 않습니다.
root@hypervisor:/etc/dhcp# systemctl status isc-dhcp-server
● isc-dhcp-server.service - ISC DHCP IPv4 server
Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-11-13 12:28:09 +05; 9min ago
Docs: man:dhcpd(8)
Main PID: 12274 (dhcpd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/isc-dhcp-server.service
└─12274 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf
Nov 13 12:28:09 hypervisor dhcpd[12274]: you want, please write a subnet declaration
Nov 13 12:28:09 hypervisor dhcpd[12274]: in your dhcpd.conf file for the network segment
Nov 13 12:28:09 hypervisor dhcpd[12274]: to which interface eth0 is attached. **
Nov 13 12:28:09 hypervisor dhcpd[12274]:
Nov 13 12:28:09 hypervisor dhcpd[12274]: Sending on Socket/fallback/fallback-net
Nov 13 12:28:09 hypervisor dhcpd[12274]: Server starting service.
Nov 13 12:28:14 hypervisor dhcpd[12274]: DHCPDISCOVER from de:ad:c0:de:ca:fe via vboxnet4
Nov 13 12:28:15 hypervisor dhcpd[12274]: DHCPOFFER on 10.10.54.3 to de:ad:c0:de:ca:fe via vboxnet4
Nov 13 12:32:39 hypervisor dhcpd[12274]: DHCPDISCOVER from de:ad:c0:de:ca:fe via vboxnet4
Nov 13 12:32:40 hypervisor dhcpd[12274]: DHCPOFFER on 10.10.54.3 to de:ad:c0:de:ca:fe via vboxnet4
이것은 버그입니까? 이 문제를 해결하는 방법?
답변1
댓글에서:
방금 netplan 구성에서 dhcp4: true를 설정하고 VM을 다시 시작했는데 고정 주소를 받았습니다. nmap이 임의의 MAC 주소를 DHCP 서버로 보낼 수도 있습니다.
그게 다지만 완전히 무작위는 아닙니다. 스크립트 시작 부분부터 /usr/share/nmap/scripts/broadcast-dhcp-discover.nse
:
description = [[
Sends a DHCP request to the broadcast address (255.255.255.255) and reports
the results. By default, the script uses a static MAC address
(DE:AD:CO:DE:CA:FE) in order to prevent IP pool exhaustion.
[...]
DHCP 요청의 MAC 주소는 기록된 주소와 정확히 동일합니다.
DHCPDISCOVER from de:ad:c0:de:ca:fe via vboxnet4
MAC 주소가 실제로 "Dead Code Cafe"라고 쓰여 있다는 것을 깨달았어야 했습니다. 이 흥미로운 16진수 패턴은 다양한 진단/식별 목적으로 일반적입니다.클래식 IBM 메모리 채우기 모드 0xDEADBEEF또는Java 클래스 파일을 식별하는 매직 넘버 0xCAFEBABE.
이러한 "의미 있는" MAC 주소를 사용하면 DHCP 서버 로그를 읽는 사람이 쿼리가 일반 DHCP 클라이언트( nmap
이 경우 스크립트)에서 나온 것이 아니라고 추측할 수 있습니다.