Agar veth berfungsi, salah satu ujung terowongan harus dijembatani dengan antarmuka lain. Karena Anda ingin membuat semua ini tetap virtual, Anda dapat menjembatani ujung terowongan vm1 (vm2 adalah ujung lain terowongan) dengan antarmuka virtual tipe tap, di jembatan yang disebut brm. Sekarang Anda memberikan alamat IP ke brm dan ke vm2 (masing-masing 10.0.0.1 dan 10.0.0.2), aktifkan penerusan IPv4 melalui
echo 1 > /proc/sys/net/ipv4/ip_forward
bawa semua antarmuka, dan tambahkan rute yang menginstruksikan kernel cara mencapai alamat IP 10.0.0.0/24. Itu saja.
Jika Anda ingin membuat lebih banyak pasangan, ulangi langkah-langkah di bawah ini dengan subnet yang berbeda, misalnya 10.0.1.0/24, 10.0.2.0/24, dan seterusnya. Karena Anda mengaktifkan penerusan IPv4 dan menambahkan rute yang sesuai ke tabel perutean kernel, mereka akan dapat langsung berbicara satu sama lain.
Ingat juga bahwa sebagian besar perintah yang Anda gunakan (brctl, ifconfig,...) sudah usang:iproute2 suite memiliki perintah untuk melakukan semua ini, lihat di bawah penggunaan ip saya memerintah.
Ini adalah urutan perintah yang benar untuk penggunaan antarmuka bertipe veth :
pertama-tama buat semua antarmuka yang diperlukan,
ip link add dev vm1 type veth peer name vm2
ip link set dev vm1 up
ip tuntap add tapm mode tap
ip link set dev tapm up
ip link add brm type bridge
Perhatikan bahwa kami tidak memunculkan brm dan vm2 karena kami harus menetapkan alamat IP untuk mereka, tetapi kami memunculkan tapm dan vm1, yang diperlukan untuk memasukkannya ke dalam bridge brm. Sekarang memperbudak antarmuka tapm dan vm1 ke bridge brm,
ip link set tapm master brm
ip link set vm1 master brm
sekarang berikan alamat ke jembatan dan ke antarmuka veth yang tersisa vm2,
ip addr add 10.0.0.1/24 dev brm
ip addr add 10.0.0.2/24 dev vm2
sekarang bawa vm2 dan brm ke atas,
ip link set brm up
ip link set vm2 up
Tidak perlu menambahkan rute ke subnet 10.0.0.0/24 secara eksplisit, ini dihasilkan secara otomatis, Anda dapat memeriksa dengan pertunjukan rute ip . Ini menghasilkan
ping -c1 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.035 m
--- 10.0.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.035/0.035/0.035/0.000 ms
Anda juga dapat melakukannya mundur, yaitu dari vm2 kembali ke brm:
ping -I 10.0.0.2 -c1 10.0.0.1
PING 10.0.0.1 (10.0.0.1) from 10.0.0.2 : 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.045 ms
--- 10.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.045/0.045/0.045/0.000 ms
Aplikasi NIC yang paling berguna dari veth kind adalah ruang nama jaringan , yang digunakan dalam wadah Linux (LXC). Anda memulai yang disebut nnsm sebagai berikut
ip netns add nnsm
lalu kami mentransfer vm2 ke sana,
ip link set vm2 netns nnsm
kami memberikan ruang nama jaringan baru dengan antarmuka lo (sangat diperlukan),
ip netns exec nnsm ip link set dev lo up
kami mengizinkan NATting di mesin utama,
iptables -t nat -A POSTROUTING -o brm -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(jika Anda terhubung ke Internet melalui eth0 , jika tidak, ubah sesuai kebutuhan), jalankan shell di ruang nama jaringan baru,
ip netns exec nnsm xterm &
dan sekarang, jika Anda mulai mengetikkan xterm baru, Anda akan menemukan bahwa Anda berada di mesin virtual terpisah dengan alamat IP 10.0.0.2, tetapi Anda dapat menjangkau Internet. Keuntungannya adalah ruang nama jaringan baru memiliki tumpukannya sendiri, yang berarti, misalnya, Anda dapat memulai VPN di dalamnya sementara komputer Anda yang lain tidak di VPN. Ini adalah alat yang menjadi dasar LXC.
EDIT:
Saya membuat kesalahan, menurunkan antarmuka vm2 dan menghapus alamatnya. Jadi Anda perlu menambahkan perintah ini, dari dalam xterm:
ip addr add 10.0.0.2/24 dev vm2
ip link set dev vm2 up
ip route add default via 10.0.0.1
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf
dan sekarang Anda dapat menavigasi dari dalam xterm.
ip
perintah juga dapat dilakukan sebelum xterm dengan
ip -netns nnsm addr add 10.0.0.2/24 dev vm2
ip -netns nnsm link set dev vm2 up
ip -netns nnsm route add default via 10.0.0.1