CentOS에서 DHCP를 사용하여 다중 인터페이스 구성

CentOS에서 DHCP를 사용하여 다중 인터페이스 구성

CentOS 7의 네트워크 네임스페이스( ) 내의 veth장치( )에 대해 DHCP 할당 주소를 가져오려고 하는데 해당 장치가 이미 실행 중입니다. 피어 장치( )는 기본 네임스페이스에 있으며 물리적 네트워크 인터페이스( )에 브리지됩니다.veth-insidemynsdhclientvethveth-outsideens3

기본 네임스페이스의 장치 구성은 다음과 같습니다.

(cent7)$ ip link add name br0 type bridge
(cent7)$ ip link add name veth-inside type veth peer name veth-outside
(cent7)$ ip link set dev ens3 master br0
(cent7)$ ip link set dev ens3 up
(cent7)$ ip link set dev veth-outside master br0
(cent7)$ ip link set dev veth-outside up
(cent7)$ ip link set dev br0 up
(cent7)$ dhclient br0

br0예상대로 192.168.0.5(DHCP를 통해 예약됨)를 가져옵니다. 그런 다음 veth-inside네트워크 네임스페이스와 피어 장치를 구성하되 dhclient다음과 같이 0이 아닌 값을 반환합니다.

(cent7)$ ip netns add myns
(cent7)$ ip link set dev veth-inside netns myns
(cent7)$ ip netns exec myns ip link set dev veth-inside up
(cent7)$ ip netns exec myns dhclient veth-inside
dhclient(29674) is already running - exiting. 

(cent7)$ dhclient --version
isc-dhclient-4.2.5

위의 모든 내용은 Ubuntu 14.04에서 완벽하게 작동합니다. dhclient기본 네임스페이스에 있든 자체 netns.

(ub1404)$ dhclient --version
isc-dhclient-4.2.4

또한 NetworkManagerCentOS 시스템에서 제거하고 NetworkManagerUbuntu 시스템의 브리지 및 물리적 장치를 비활성화했으므로 NM은 해당 네트워크 장치와 아무 관련이 없습니다.

DHCP를 통해 CentOS 7의 여러 임의 인터페이스에 IP 주소를 할당하는 방법은 무엇입니까? dhclientUbuntu와 CentOS의 구성이나 빌드가 다르기 때문에 다중 호출이 허용되지 않습니까?

답변1

여러 인스턴스를 실행하려는 경우 각 호출에서 이를 사용할 dhclient수 있습니다 . --no-pidRedhat의 dhclient 버전이 수정되었으므로 이와 관련하여 ubuntu와 centos의 차이점을 설명할 수 있습니다.

dhclient 매개변수를 다음과 같이 변경합니다.

dhclient --no-pid br0
ip netns exec myns dhclient --no-pid veth-inside

이제 각 인스턴스는 행복하게도 다른 인스턴스를 인식하지 못할 것입니다.

다른 사람들은 이로 인해 다른 구성에서 문제가 발생할 수 있다는 점에 유의해야 합니다. 따라서 수행 중인 작업을 알고 있는 경우에만 이 솔루션을 고려해야 합니다!

관련 정보