O que você está tentando fazer parece correto, mas há um número importante de pequenos detalhes (limpando a configuração anterior, elevando todas as interfaces, criando um novo namespace de rede para usar uma extremidade do veth par), que não tenho certeza se você fez tudo corretamente. Em particular, eu não sei se você percebeu que precisará dhcp (se você não usar um endereço IP estático) o fim do par veth dentro do novo namespace de rede.
Assim, para lhe dar todos os detalhes, eu lhe direi como faço isso, usando veth : primeiro eu limpo a configuração atual,
# systemctl stop network-manager
# ip link set dev usb0 down
# ip addr flush dev usb0
então eu crio o par veth , e depois coloco minha interface ethernet (aqui é chamada usb0 ) e uma extremidade do veth parear em uma ponte chamada br1 :
# ip link add veth-a1 type veth peer name veth-b1
# ip link set veth-a1 up
# ip link add br1 type bridge
# ip link set veth-a1 master br1
# ip link set usb0 master br1
# ip link set usb0 up
# ip link set br1 up
Observe que é importante trazer as diferentes interfaces up ; então eu inicio dhclient na bridge :
# dhclient br1
.....
bound to 192.168.11.98 -- renewal in 16650 seconds.
Agora eu transfiro a outra extremidade do par veth para o novo namespace de rede, chamado ns1 , e crie um xterm dentro do novo namespace de rede:
# ip netns add ns1
# ip link set veth-b1 netns ns1
# ip netns exec ns1 xterm &
para que, a partir do xterm eu possa trazer a outra ponta do par veth e iniciar dhclient nele
># ip link set dev veth-b1 up
# dhclient veth-b1
Para testar isso, basta ping www.debian.org , e você verificará a conexão e o fato de que os DNSs são importados automaticamente do namespace de rede principal.
Teria sido muito mais fácil com um macvlan , embora ...