Seperti yang telah disebutkan dalam jawaban sebelumnya, solusi untuk masalah ini adalah menambahkan adapter jaringan macvlan pada host. Namun, saya merasa bahwa secara manual rewiring rute ke adaptor macvlan agak berantakan, terutama karena saya ingin dukungan IPv6 dan secara manual mengatur rute mungkin menjadi masalah ketika awalan berubah. Jadi inilah konfigurasi saya yang membuat kernel mengendalikan tabel routing:
(Konfigurasi khusus di sini adalah khusus Debian dan pemula, tetapi langkah-langkah dasar harus bekerja pada GNU / Linux.)
Membuat adaptor macvlan saat boot
Pertama, Anda perlu memilih alamat MAC untuk adaptor Anda. Anda mungkin bisa hanya menggunakan yang acak, tetapi saya sarankan Anda secara manual membuat adaptor macvlan dan menggunakan MAC-nya. Dengan cara ini, MAC tunduk pada konvensi yang mungkin ada.
Menetapkan MAC tetap disarankan, karena jika tidak, tidak ada jalan untuk mis. server DHCP untuk mengenali mesin Anda setelah reboot dan menetapkannya alamat IP yang sama seperti sebelumnya.
Jadi buat adaptor dan cari MAC:
root@host:~# ip link add link eth0 macvlan0 type macvlan mode bridge
root@host:~# ip addr show dev macvlan0
#: macvlan0@eth0: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
link/ether 12: 34: 56: 78: 90: ab brd ff: ff: ff: ff: ff: ff
...
Nomor heksadesimal yang disorot adalah alamat MAC Anda.
Sekarang Anda membuat skrip init - yang harus dijalankan sebelum jaringan diinisialisasi - untuk membuat adaptor macvlan setiap startup. Perintah untuk melakukan ini adalah:
ip link add link eth0 address <MACADDRESS> macvlan0 type macvlan mode bridge
Contoh skrip init pemula untuk tujuan ini adalah:
start on starting networking
script
ip link add link eth0 address <MACADDRESS> macvlan0 type macvlan mode bridge
end script
Masukkan saja ini, mis. /etc/init/macvlan.conf
.
Menyiapkan konfigurasi jaringan
Di /etc/network/interfaces
, atur adapter jaringan fisik Anda menjadi manual (tetapi biarkan otomatis) dan pindahkan konfigurasi sebelumnya (biasanya DHCP atau alamat IP statis) ke adaptor macvlan Anda. Misalnya.:
auto eth0
iface eth0 inet manual
auto macvlan0
iface macvlan0 inet dhcp
Menonaktifkan IPv6 untuk adaptor fisik
Terakhir, Anda tidak menginginkannya fisik adaptor untuk mendapatkan alamat IP. Untuk pengaturan IPv4, adaptor ke manual mencegahnya mendapatkan alamat. Namun, saya belum menemukan konfigurasi yang menghentikan kernel untuk mendapatkan / menetapkan alamat IPv6 untuk / ke adaptor. Ketika itu terjadi, itu juga menambahkan rute bagi mereka, yang dapat menyebabkan masalah. Jadi cara terbaik tampaknya menonaktifkan IPv6 untuk adaptor fisik. Anda dapat melakukan ini dengan menambahkan baris
net.ipv6.conf.eth0.disable_ipv6=1
untuk /etc/sysctl.conf
, dengan membuat file dalam /etc/sysctl.d/
dengan baris ini, atau dengan menambahkan
sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
ke skrip init Anda.
Ketika sekarang Anda me-reboot mesin Anda, berkomunikasi dari host ke tamu harus bekerja dengan IPv4 dan IPv6.
Perlu diketahui, bahwa jika Anda membuat kesalahan saat mengatur ini, host Anda dapat menjadi tidak terjangkau melalui jaringan bahkan setelah reboot. Lakukan ini hanya jika Anda memiliki akses fisik ke alat berat atau perlindungan lainnya sehingga Anda dapat memperbaiki masalah yang mungkin terjadi.