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にゼロ以外の値を返します。

(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

今、各インスタンスは幸せに他のインスタンスを認識しません。

他の人は、これが他の構成で問題を引き起こす可能性があることに注意する必要があります。したがって、何をしているのかを知っている場合にのみ、このソリューションを考慮する必要があります。

関連情報