여러 네트워크 인터페이스에 대해 고유한 DHCP 호스트 이름 지정

여러 네트워크 인터페이스에 대해 고유한 DHCP 호스트 이름 지정

내 홈 서버의 ESXi 아래 가상 머신에서 Ubuntu Server 20.04를 실행하고 있습니다. Docker 컨테이너 내에서 두 개의 별도 PiHole 인스턴스를 실행할 수 있도록 가상 머신에 두 개의 고유한 IP 주소가 있기를 원합니다.

가상 머신에 두 개의 네트워크 어댑터를 구성한 다음 /etc/netplan/00-installer-config.yaml을 다음과 같이 구성했습니다.

network:
  ethernets:
    ens160:
      dhcp4: true
    ens192:
      dhcp4: true
  version: 2

을 실행하면 netplan applyDHCP를 통해 각각 자체 IP를 갖는 두 개의 인터페이스가 있습니다.

# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.212  netmask 255.255.255.0  broadcast 10.0.0.255
...
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.213  netmask 255.255.255.0  broadcast 10.0.0.255
...

/etc/dhcp/dhclient.conf그런 다음 기본 "호스트 이름 보내기" 옵션을 주석 처리하고 두 가지 인터페이스별 옵션으로 대체하여 편집했습니다.

#send host-name = gethostname();
interface "ens160" {
    send host-name = "something-else-1";
}

interface "ens192" {
    send host-name = "something-else-2";
}

이 단계는 작동하지 않는 것 같습니다. DHCP 서버(Unifi)는 여전히 호스트 이름을 "실험적"이라고 보고합니다. 실제로 gethostname()기존 행을 변경하여 호스트 이름만 다르게 하려고 시도했지만 그것조차 작동하지 않는 것 같았습니다.

나는 /etc/hostname다른 것을 사용하여 변경해 보았고 이것이 실제로 효과가 있었습니다. 따라서 어떤 이유로 옵션이 /etc/dhcp/dhclient.conf무시되는 것 같습니다.

누구든지 내가 뭘 잘못하고 있는지 말해 줄 수 있나요? 감사해요!

답변1

문제는 각 인터페이스에 서로 다른 DHCP "상태 머신"이 필요하다는 것입니다. 이렇게 하려면 아래와 같이 각 클라이언트에 서로 다른 클라이언트 ID를 할당해야 합니다.

# send host-name = gethostname();
interface "enp2s0" {
    send dhcp-client-identifier "officemac";
    send host-name "officemac";
}
interface "enp2s0:0" {
    send dhcp-client-identifier "media";
    send host-name "media";
}

관련 정보