Berikut ini adalah skrip bash kecil untuk membuat namespace baru, mengatur pasangan veth, dan meluncurkan sebuah xterm
dalam 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_userid
di baris terakhir dengan id pengguna Anda, jadi su
bisa mengubahnya. Gunakan ip addr
dan ip route
keduanya di xterm
terminal itu dan di beberapa terminal lain untuk memahami konfigurasi jaringan.
Sekarang jalankan xev
dari 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 iptables
aturan 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.
veth
pasangan untuk berkomunikasi dengan namespace utama? Namespace utama Anda melakukan routing / NAT, apa pun yang diperlukan?