Aqui está um pequeno script bash para criar um novo namespace, configurar um par veth e lançar um xterm
nesse namespace:
#!/bin/bash
# Setup network namespace with veth pair, start xterm in it
# nsterm ns0 veth0 10.0.0 yellow 24
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
NS=${1:-ns0}
DEV=${2:-veth0}
DEV_A=${DEV}a
DEV_B=${DEV}b
ADDR=${3-:10.0.0}
ADDR_A=${ADDR}.254
ADDR_B=${ADDR}.1
MASK=${5:-24}
COL=${4:-yellow}
# echo ns=$NS dev=$DEV col=$COL mask=$MASK
ip netns add $NS
ip link add $DEV_A type veth peer name $DEV_B netns $NS
ip addr add $ADDR_A/$MASK dev $DEV_A
ip link set ${DEV}a up
ip netns exec $NS ip addr add $ADDR_B/$MASK dev $DEV_B
ip netns exec $NS ip link set ${DEV}b up
ip netns exec $NS ip route add default via $ADDR_A dev $DEV_B
ip netns exec $NS su -c "xterm -bg $COL &" your_userid
Substitua your_userid
na última linha pelo seu ID de usuário, então su
pode mudar para isso. Use ip addr
e ip route
nesse xterm
e em algum outro terminal para entender a configuração da rede.
Agora, execute xev
do novo xterm
e verifique se as teclas de mídia funcionam (não há realmente nenhum motivo para isso, as próprias chaves não estão relacionadas aos namespaces da rede).
O namespace da rede funciona como um pequeno computador separado dentro do seu computador, então você ainda precisa fazer com que o seu computador "real" (namespace principal) conecte-o ao seu roteador de alguma forma, por exemplo. usando NAT em veth0a
(google para tutoriais: você precisa ativar o encaminhamento e mascarar as regras iptables
).
Teste se o novo namespace está conectado com sucesso ao seu roteador com ping google.com
(ou qualquer outro).
Por fim, tente lançar o Spotify a partir do novo xterm
. Se os testes acima forem bem-sucedidos, deverá funcionar.