Configure múltiplas interfaces com DHCP no CentOS

1

Estou tentando obter um endereço atribuído por DHCP para um dispositivo veth ( veth-inside ) dentro de um namespace de rede ( myns ) no CentOS 7, mas o dhclient já está em execução. O dispositivo veth peer ( veth-outside ) está no espaço de nomes padrão, conectado à interface de rede física ( ens3 ).

Os dispositivos no namespace padrão foram configurados da seguinte forma:

(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 obtém 192.168.0.5 (via reserva DHCP) conforme esperado. Em seguida, o namespace de rede e o dispositivo veth-inside peer são configurados, mas dhclient retorna diferente de zero, com o seguinte:

(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

Todos os itens acima funcionam perfeitamente no Ubuntu 14.04. Posso usar dhclient para atribuir endereços IP a qualquer número de dispositivos físicos, virtuais ou de ponte no Ubuntu, estejam eles no espaço de nomes padrão ou isolados em seus próprios netns .

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

Além disso, eu desinstalei o NetworkManager do sistema CentOS e desabilitei NetworkManager para a ponte e os dispositivos físicos no sistema Ubuntu, portanto, o NM não está envolvido com esses dispositivos de rede.

Como posso atribuir endereços IP via DHCP a várias interfaces arbitrárias no CentOS 7? O dhclient foi de alguma forma configurado ou construído de forma diferente no CentOS do que no Ubuntu, de modo que múltiplas invocações dele não são permitidas?

    
por scottbb 05.04.2016 / 19:00

1 resposta

1

Se você quiser executar várias instâncias de dhclient , poderá usar o --no-pid em cada chamada. A versão do dhclient do Redhat é modificada, então isso pode explicar a diferença entre o Ubuntu e o centos a esse respeito.

Faça as seguintes alterações nos seus argumentos do dhclient:

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

Agora, cada instância deve estar felizmente inconsciente uma da outra.

Outros devem notar que isso pode causar problemas para configurações diferentes, portanto, essa solução só deve ser considerada se você souber o que está fazendo!

    
por 05.04.2016 / 19:28