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.