Conecte o namespace da rede à internet

2

Meu cenário é o seguinte: Eu quero ser capaz de executar um programa em um namespace separado com uma interface de rede própria. Mas eu também quero poder acessar a internet através da minha interface de rede física. Este é o meu código até agora:

ip netns add private_ns
ip link add link eth1 name eth1.100 type vlan id 100
ip link set eth1.100 netns private_ns
ip netns exec private_ns ip addr add 10.1.1.1/24 dev eth1.100
ip netns exec private_ns ip link set eth1.100 up

Então eu tento:

ip netns exec private_ns ping 8.8.8.8

E eu recebo connect: Network is unreachable

    
por pgsandstrom 02.06.2016 / 11:14

1 resposta

3

Cada namespace de rede é uma cópia lógica separada da pilha de rede. Então você precisa tratar um namespace de rede como se fosse uma máquina separada.

Para conectar uma nova máquina à internet através da sua máquina atual, você

    1. Selecione uma placa de rede não utilizada em cada máquina (ou instale uma nova).
    1. Conecte-os com um cabo de rede.
    1. Escolha entre ponte Ethernet, roteamento IP simples ou NAT.
  • 4a. Para ponte Ethernet, adicione a nova placa de rede na máquina existente a uma ponte apropriada e forneça à placa de rede na máquina secundária um IP na sub-rede em que a ponte está ligada.
  • 4b. Para roteamento IP convencional, escolha um bloco de IP para o novo link. Atribua os IPs de interfaces daquele bloco, certifique-se de que o encaminhamento de IP esteja habilitado em sua máquina existente, assegure-se de que o resto de sua rede saiba sobre a nova sub-rede e certifique-se de que suas regras iptables permitam. li>
  • 4c. Para NAT, escolha um bloco de IP para o novo link. Atribua os IPs de interfaces daquele bloco, certifique-se de que o encaminhamento de IP esteja ativado em sua máquina existente, certifique-se de que suas regras de IPtables permitam o fluxo de tráfego e estabeleçam uma regra SNAT ou MASQURADE para o tráfego de sua nova sub-rede para hosts externos. li>
    1. Configure um gateway padrão apropriado na nova máquina.

Da mesma forma, ao trabalhar com um namespace de rede.

    1. Crie um par veth no namespace da rede principal.
    1. Mova uma extremidade do par veth para o namespace de rede secundário.
    1. Escolha entre ponte Ethernet, roteamento IP simples ou NAT.
  • 4a. Para bridging Ethernet, inclua o novo veth no namespace da rede principal em uma ponte apropriada e forneça ao veth no novo namespace da rede um IP na sub-rede em que a bridge está.
  • 4b. Para roteamento IP convencional, escolha um bloco de IP para o novo link. Atribua os IPs de interfaces daquele bloco, certifique-se de que o encaminhamento de IP esteja habilitado em sua máquina existente, assegure-se de que o resto de sua rede saiba sobre a nova sub-rede e certifique-se de que suas regras iptables permitam. li>
  • 4c. Para NAT, escolha um bloco de IP para o novo link. Atribua os IPs de interfaces daquele bloco, certifique-se de que o encaminhamento de IP esteja ativado em sua máquina existente, certifique-se de que suas regras de IPtables permitam o fluxo de tráfego e estabeleçam uma regra SNAT ou MASQURADE para o tráfego de sua nova sub-rede para hosts externos. li>
    1. Configure um gateway padrão apropriado no namespace da rede secundária.

(desculpe sobre a formatação feia, sinta-se à vontade para corrigi-la se você tiver mais habilidades com o markdown do que eu)

    
por 20.06.2016 / 02:19