CentOS 7のネットワークネームスペース()内のデバイスveth
()のDHCP割り当てアドレスを取得しようとしていますが、そのデバイスはすでに実行されています。ピアデバイス()はデフォルトのネームスペースにあり、物理ネットワークインターフェイス()にブリッジされます。veth-inside
myns
dhclient
veth
veth-outside
ens3
デフォルトの名前空間のデバイス構成は次のとおりです。
(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
また、NetworkManager
CentOSシステムから削除し、NetworkManager
Ubuntuシステムのブリッジと物理デバイスを無効にしたため、NMはそのネットワークデバイスとは無関係です。
DHCPを介してCentOS 7の複数のランダムインターフェイスにIPアドレスを割り当てる方法は?dhclient
UbuntuとCentOSの構成やビルドが異なるため、複数の呼び出しは許可されていませんか?
答え1
複数のインスタンスを実行したい場合は、各呼び出しでそれを使用dhclient
できます。--no-pid
Redhatのdhclientバージョンが修正されているので、これに関してubuntuとcentosの違いを説明できます。
dhclientパラメーターを次のように変更します。
dhclient --no-pid br0
ip netns exec myns dhclient --no-pid veth-inside
今、各インスタンスは幸せに他のインスタンスを認識しません。
他の人は、これが他の構成で問題を引き起こす可能性があることに注意する必要があります。したがって、何をしているのかを知っている場合にのみ、このソリューションを考慮する必要があります。