Como obter o pppd para criar o ppp0 dentro do namespace?

2

Eu tenho uma conexão pppoe simples que está funcionando bem. Um simples

# pon my-isp

cria um dispositivo ppp0 .

Eu defini um namespace como

ip netns add physical

mas depois

ip netns exec physical pon my-isp

não cria um ppp0 nem no namespace global nem no physical namespace.

Como posso obter um ppp0 dentro do namespace mencionado?

    
por user1587451 29.04.2018 / 17:20

1 resposta

0

Idéias:

1) Deixe que pon crie o dispositivo no espaço de nomes padrão e, em seguida, mova-o para physical . Rotule o processo.

2) pon é apenas um script, se você olhar para ele, ele chama pppd . Copie o script, modifique-o para que use netns exec para chamar pppd . Veja se isso resolve o problema. Como Hauke disse, você precisa do dispositivo PPPoE no namespace. Um par de veth pode ou não ser necessário, dependendo do que você deseja fazer com o namespace.

Editar

Eu não sei sua configuração exata (todos os arquivos de configuração ppp e pppoe estão faltando na descrição), então eu tentei uma configuração simplificada que conecta dois namespaces via PPPoE. Como esperado, a inicialização de pppd em um namespace faz com que o dispositivo ppp0 apareça nesse namespace, portanto, eu realmente não sei o que está errado em sua configuração.

Teste o seguinte (como root):

ip netns add ns1
ip netns add ns2
ip link add veth1 type veth peer name veth2
ip link set veth1 addr 52:54:00:00:00:01
ip link set veth2 addr 52:54:00:00:00:02
ip link set veth1 netns ns1
ip link set veth2 netns ns2
ip -n ns1 link set lo up
ip -n ns1 link set veth1 up
ip -n ns2 link set lo up
ip -n ns2 link set veth2 up    
ip netns exec ns1 pppd pty '/usr/sbin/pppoe -I veth1 -e 1:52:54:00:00:00:02 -m 1412' noaccomp nopcomp asyncmap 000a0008 noauth nocrtscts xonxoff local maxfail 0 192.168.36.1:192.168.36.2
ip netns exec ns2 pppd pty '/usr/sbin/pppoe -I veth2 -e 1:52:54:00:00:00:01 -m 1412' noaccomp nopcomp asyncmap 000a0008 noauth nocrtscts xonxoff local maxfail 0 192.168.36.2:192.168.36.1

Agora inicie dois xterms no namespace como usuário username , para que você possa ver a configuração, teste com ping etc (eu gosto de ter fundos coloridos para isso, então eu sei qual é qual):

ip netns exec ns1 su -c "xterm -bg yellow &" username
ip netns exec ns2 su -c "xterm -bg lime &" username

Se isso funcionar, algo na forma como seus scripts PPPoE configuram as coisas está no caminho. Se isso não funcionar, algo está errado.

    
por 29.04.2018 / 18:46