IP secundário em seu próprio namespace de netns

2

Existe uma maneira de mover um IP secundário para o seu próprio namespace, mantendo o IP principal no dispositivo original?

Se eu tiver 10.0.0.1 e 10.0.0.2 no dispositivo eth0 , mas eu quero que o 10.0.0.2 esteja em seu próprio netns test , o mais próximo que eu cheguei disso é adicionar um par veth e uma ponte, e movendo o IP principal eth0 para a ponte:

  netns: test              netns: default
==============     ===============================
vethB:10.0.0.2 <-> vethA <-> br0:10.0.0.1 <-> eth0

Infelizmente, mover o IP 10.0.0.1 de eth0 irá confundir alguns aplicativos legados opacos na caixa, então prefiro manter isso em eth0 .

    
por pilcrow 06.03.2018 / 13:42

2 respostas

1

O dispositivo Linux macvlan é uma solução viável aqui.

Instancia uma subinterface de camada 2 que é um dispositivo lógico bona fide , ao contrário da ficção administrativa eth0:1 para gerenciar IPs secundários, que eu posso mover para um namespace e endereço de rede. Exemplo:

#  netns: test        netns: default
# ==============     ================
# test0:10.0.0.2 <->  eth0:10.0.0.1

# Create "test" network namespace
ip netns add test
ip netns exec test ip link set lo up

# Create subinterface and move to "test"
ip link add link eth0 name test0 type macvlan
ip link set test0 netns test

# Configure the subinterface
ip netns exec test ip addr add 10.0.0.2/24 brd + dev test0

Isso preserva o IP "primário" em eth0 e, assim, mantém o sistema existente mais ou menos inconsciente do meu IP "secundário" oculto.

    
por 08.03.2018 / 15:13
1

Um determinado dispositivo só pode estar em um namespace, consulte link :

Aside from the loopback device, each network device (physical or virtual interfaces, bridges, etc.) can only be present in a single network namespace.

Então, o seu eth0 só pode estar em um. Sua configuração, com duas interfaces virtuais e uma ponte, é uma solução para esse problema. Eu não entendo o que muda para aplicativos se o IP está vinculado a br0 em vez de eth0 , eles não devem ver a diferença. Caso contrário, você precisará fornecer mais detalhes. Você realmente teve problemas e, em caso afirmativo, quais, ou você apenas os espera?

Se você puder usá-los, dê uma olhada nas VLANs: você pode colocar cada uma delas (fora da mesma interface física) em diferentes namespaces. Isso está detalhado aqui: link

Se você não puder usar uma ponte ou VLANs, precisará configurar algum encaminhamento de IP ou NAT.

    
por 06.03.2018 / 16:30