게스트에 액세스하지 않고 NAT 네트워크를 사용하여 VirtualBox 게스트에 고정 IP 주소 할당

게스트에 액세스하지 않고 NAT 네트워크를 사용하여 VirtualBox 게스트에 고정 IP 주소 할당

Ubuntu Server 18.04에서 VirtualBox 5.2.18을 사용하고 있습니다. NAT 네트워크를 공유하는 여러 VirtualBox 게스트 컴퓨터가 있습니다 intnet. 현재 intnet동적 IP를 게스트에 자동으로 할당하는 DHCP 서버(VirtualBox로 설정)가 있습니다. 이것은 잘 작동하지만 DHCP 서버가 네트워크 인터페이스의 MAC 주소를 기반으로 특정 게스트에게 고정 IP를 할당하고 싶습니다. 고정 IP는 게스트 내부에서 설정할 수 있지만 시간이 걸리고 게스트 OS에 따라 다릅니다. VirtualBox에서 게스트에게 고정 IP를 할당하는 방법이 있습니까?

VirtualBox 설치 폴더에 이라는 실행 파일이 있습니다 VBoxNetDHCP. 의 출력으로 판단하면 VBoxNetDHCPMAC 주소에 의한 고정 IP 할당을 허용하는 것으로 보입니다. 그래도 작동하게 할 수 없으며 이에 대한 문서가 사실상 존재하지 않습니다.

답변1

일반적으로 저는 이런 일을 할 때(그리고 자주 합니다) DHCP, DNS(전세계 캐싱 및 로컬 스푸핑 fake.tld등) 와 같은 작업을 수행하는 네트워크 서버 역할을 하는 VM을 사용하는 경향이 있습니다.

가장 간단한 방법은 netinstall 이미지를 통해 기본적으로 데비안을 설치하는 것입니다. ssh 서버 옵션과 "표준 유틸리티" 이외의 패키지 그룹은 선택하지 마십시오.

일단 실행되면 내부 VM 네트워크용 DHCP 서버로 전환하려면 패키지를 설치하십시오 isc-dhcp-server. 그런 다음 편집/etc/dhcp/dhcpd.conf

여기 내 간단한 예가 있습니다. 이는 짧은 임대 시간(5분)을 설정하고, 클라이언트 검색 도메인 등을 "fake.tld"로 설정하고, DNS 쿼리를 192.168.1.2로 지정하고, 10.99.98.80-100 범위의 주소를 제공합니다. 24비트 넷마스크. 이 작업을 수행하는 VM에는 10.99.98.0/24 서브넷 내의 IP로 구성된 어댑터가 있어야 합니다.

일반 풀 외에도 IP에 대해 80:c1:6e:2b:b6:cd명시적으로 정의된 임대의 MAC 주소( option사용할 DNS 서버, 게이트웨이 등과 같은 기타 모든 것)를 장치에 제공합니다 .110. 이러한 "정적 임대"는 동적 범위 외부의 주소에 대한 것이어야 하지만 구성 파일과 서비스를 호스팅하는 시스템의 네트워크 어댑터 모두에 구성된 서브넷 내에 있어야 합니다.

새 호스트를 추가하고 특정 IP를 갖기를 원하는 경우 다른 호스트 스탠자를 추가하기만 하면 됩니다. 호스트 이름은 클라이언트가 보내는 것과 일치할 필요는 없지만 파일에서 고유해야 합니다. 추가한 후 서비스를 다시 시작하세요.service isc-dhcp-server restart

ddns-update-style none;
option domain-name "fake.tld";
option domain-name-servers 192.168.1.2;
option domain-search "fake.tld";
default-lease-time 600;
max-lease-time 720;
authoritative;
log-facility local7;

subnet 10.99.98.0 netmask 255.255.255.0{
    range 10.99.98.80 10.99.98.100;
    option routers 10.99.98.1;
}

host lr-tv {
    hardware ethernet 80:c1:6e:2b:b6:cd;
    fixed-address 10.99.98.110;
    option routers 10.99.98.1;
    option domain-name-servers 192.168.1.2;
}

답변2

이는 내부 VBOX DHCP 서버에서 수행될 수 있습니다:

1.- DHCP 서버의 FindOut 네트워크 이름:

./VBoxManage list dhcpservers
NetworkName:    HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter
Dhcpd IP:       192.168.56.100
LowerIPAddress: 192.168.56.101
UpperIPAddress: 192.168.56.254
NetworkMask:    255.255.255.0
Enabled:        Yes
Global Configuration:
    minLeaseTime:     default
    defaultLeaseTime: default
    maxLeaseTime:     default
    Forced options:   None
    Suppressed opts.: None
        1/legacy: 255.255.255.0
Groups:               None
Individual Config:

2.- VM 인터페이스의 MAC 주소도 필요합니다.

PS C:\Program Files\Oracle\VirtualBox> ./VBoxManage list vms
"accadev-ubuntu20.04" {2a98947e-4b8c-4bc3-9441-2b556d0b33a1}
"accadev-ansible01" {1d261714-9b49-47e2-a634-bc0677f5b707}

PS C:\Program Files\Oracle\VirtualBox> ./VBoxManage showvminfo accadev-ubuntu20.04 | Select-String -Pattern 'MAC'

NIC 1:                       MAC: 0800275452FB, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82543GC, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 2:                       MAC: 08002703E954, Attachment: Host-only Interface 'VirtualBox Host-Only Ethernet Adapter', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none

3.- 해당 MAC에 대한 정적 임대를 설정합니다.

./VBoxManage dhcpserver modify --ifname "VirtualBox Host-Only Ethernet Adapter" --mac-address=08:00:27:f8:31:fa --fixed-address=192.168.56.20

4.- 변경 사항을 적용하려면 DHCP 서버를 다시 시작하세요.

./VBoxManage dhcpserver restart --ifname "VirtualBox Host-Only Ethernet Adapter"

그리고 그게 다야. 호스트 전용 네트워크뿐만 아니라 DHCP 서버가 연결된 모든 Vbox 네트워크에 대해 이 작업을 수행할 수 있습니다.

참조

답변3

추가 DHCP 서버 소프트웨어가 필요하지 않습니다. NAT 네트워크를 사용하면 intnetVirtualBox dhcpserver를 설정할 수 있습니다.

VBoxManage dhcpserver add --netname intnet --ip 10.13.13.100 --netmask 255.255.255.0 --lowerip 10.13.13.101 --upperip 10.13.13.254 --enable

스크린샷에 표시된 대로 설정에서 게스트 MAC 주소를 복사하세요.

여기에 이미지 설명을 입력하세요

dhcpserver 내에 Individual Config섹션 을 추가해 보겠습니다.

VBoxManage dhcpserver modify --netname intnet --mac-address=080027D23E28 --fixed-address=10.13.13.254

추신: dhcpserver가 하위 집합 범위의 첫 번째 IP 주소를 할당하지 못한 것을 기억합니다. 그런 다음 마지막 IP를 시도했고 작동했습니다. 그 이후로 마지막 IP만 고정 IP로 사용했습니다.

게스트 VM 재부팅 또는 시작

Linux 기반 게스트에서는 터미널 등에서 DHCP에 IP가 할당되었는지 확인할 수 있습니다.

$ ip a

해제된 IP가 표시되지 않으면 다음과 같은 어댑터 구성 파일을 편집해야 합니다.

$ nano|vi /etc/sysconfig/network-scripts/ifcfg-[ethN|enp0sN]

일반적으로 추가하면 ONBOOT=yes이 문제가 해결되고 재부팅 중 하나가 해제 됩니다 systemctl restart network systemctl restart network.service. shutdown -h now:)reboot now

관련 정보