Berikut ini adalah skrip bash kecil untuk membuat namespace baru, mengatur pasangan veth, dan meluncurkan sebuah xtermdalam namespace tersebut:
#!/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
Ganti your_useriddi baris terakhir dengan id pengguna Anda, jadi subisa mengubahnya. Gunakan ip addrdan ip routekeduanya di xtermterminal itu dan di beberapa terminal lain untuk memahami konfigurasi jaringan.
Sekarang jalankan xevdari yang baru xterm, dan verifikasi bahwa kunci media berfungsi (benar-benar tidak ada alasan mereka tidak boleh, kunci itu sendiri sama sekali tidak terkait dengan ruang nama jaringan).
Namespace jaringan bertindak seperti komputer kecil yang terpisah di dalam komputer Anda, jadi Anda masih harus membuat komputer "nyata" Anda (namespace utama) menghubungkannya ke router Anda, misalnya dengan menggunakan NAT on veth0a(google for tutorials: Anda perlu mengaktifkan penerusan , dan iptablesaturan topeng ).
Uji bahwa namespace baru berhasil terhubung ke router Anda dengan ping google.com(atau apa pun).
Akhirnya, coba luncurkan spotify dari yang baru xterm. Jika tes di atas semuanya berhasil, itu akan berhasil.
vethpasangan untuk berkomunikasi dengan namespace utama? Namespace utama Anda melakukan routing / NAT, apa pun yang diperlukan?