Linux 로컬 가상 네트워크 인터페이스에서 DHCP 서버 및 클라이언트를 설정하는 방법

Linux 로컬 가상 네트워크 인터페이스에서 DHCP 서버 및 클라이언트를 설정하는 방법

내 작업을 위해서는 로컬 Linux 시스템에서 dhcp 클라이언트-서버 교환을 덤프해야 합니다.

  1. 먼저 ISC dhcp 소스에서 dhcp 서버와 클라이언트를 복제하고 구축했습니다.https://github.com/isc-projects/dhcp.
  2. 내 실험을 위해 Bridge에서 Tap 인터페이스를 만들고 설정합니다.
sudo ip link add test_eth0 type tap
sudo ip link add test_eth1 type tap
sudo ip link add test_eth2 type tap

sudo ifconfig test_eth0 up
sudo ifconfig test_eth1 up
sudo ifconfig test_eth2 up

sudo ifconfig test_eth0 10.1.1.7 netmask 255.255.255.0 up

sudo ip link add test_br0 type bridge
sudo ip link set dev test_eht0 master test_br0
sudo ip link set dev test_eht1 master test_br0
sudo ip link set dev test_eht2 master test_br0
sudo ip link set test_br0 up
  1. dhcpd 서버 시작

sudo ./dhcpd -d -f # start dhcp daemon in foreground mode

dhcpd.conf를 사용하십시오:

...
subnet 10.1.1.0 netmask 255.255.255.0 {
  range 10.1.1.3 10.1.1.254;
  option routers 10.1.1.1; 
}
...
  1. 지정된 대상 인터페이스 및 dhcp 서버에 대해 dhclient를 시작합니다.

sudo ./dhclient -lf ./dhclient.leases test_eth1 -s 10.1.1.0 -v

클라이언트 출력:

...
DHCPDISCOVER on test_eht1 to 10.1.1.0 port 67 interval 3
DHCPDISCOVER on test_eht1 to 10.1.1.0 port 67 interval 6
DHCPDISCOVER on test_eht1 to 10.1.1.0 port 67 interval 11
...

클라이언트를 시작한 후 실행 중인 서버를 감지하여 test_eth1 인터페이스에 동적 주소를 제공하고 dhcpdump를 사용하여 덤프할 수 있을 것으로 예상했지만 생각만큼 네트워킹에 능숙하지 않습니다.

답변1

하나 이상의 테스트 인터페이스에 주소를 수동으로 할당해야 하며, DHCP 서버는 해당 인터페이스에 바인딩한 다음 해당 주소를 다른 인터페이스에 배포합니다.

dhcpd는 어떤 인터페이스에 바인딩할지 알 방법이 없기 때문입니다.

또한 모든 테스트 인터페이스를 브리지에 추가하여 함께 "연결"해야 합니다.

관련 정보