Saya mencoba untuk mengatur beberapa kontainer LXC pada sebuah host, masing-masing dengan IP statis publik mereka sendiri.
Tuan rumah saya sedang menjalankan Ubuntu terbaru. Ini memiliki antarmuka jaringan tunggal bernama eth0. IP statis dapat di-ping-ping dari internet dan diberi nama eth0: 210, eth0: 211 ... Angka-angka setelah titik dua adalah byte alamat yang paling tidak signifikan. Selain antarmuka ini, saya memiliki pengaturan BR0 pada IP publik host. Ada juga antarmuka lo, veth2LPP9A, dan lxcbr0. Lxcbr0 memiliki alamat IP pribadi.
Host / etc / network / interfaces terlihat seperti:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
Sejauh ini saya telah menggunakan berbagai sumber online, termasuk Bridging LXC wadah untuk menjadi tuan rumah eth0 sehingga mereka dapat memiliki IP publik untuk membantu saya mengatur ini.
File konfigurasi penampung memiliki:
lxc.network.type = veth
lxc.network.link = br0
Saya telah menghapus konfigurasi lxc.network.ipv4 statis dari file ini karena menyebabkan masalah. Ketika saya menjalankan lxc-ls - fancy dengan konfigurasi ini, saya akan melihat IP publik yang sama dua kali dalam output. Selain itu, ini akan mengacaukan konfigurasi subnet dari / etc / network / interface dari penampung.
Berbicara tentang file antarmuka penampung, tampilannya agak seperti:
auto eth0
iface eth0 inet static
address [...]
netmask 255.255.255.255
#gateway [...]
dns-nameservers 8.8.8.8
post-up route add [...] dev eth0
post-up route add default gw [...]
post-down route del [...] dev eth0
post-down route del default gw [...]
Saya harus mengomentari gateway dan menambahkan rute menambahkan perintah ke file ini. Jika tidak, wadah akan membutuhkan waktu beberapa menit untuk boot.
File / proc / sys / net / bridge / bridge-nf- * pada host semuanya diatur ke 0. Nilai / proc / sys / net / ipv4 / ip_forward adalah 1.
Masalahnya adalah, meskipun "route -n" dari kontainer sepertinya sudah seharusnya, saya tidak bisa keluar dari wadah. SSHing ke apa yang seharusnya menjadi IP kontainer, menghubungkan saya ke host.
EDIT: Menghapus IP statis penampung dari host memang membantu, tapi sekarang saya mendapatkan kesalahan baru. Mencoba melakukan ping kontainer dari hasil host di Redirect HostFrom, New nexthop. Paket hanya pergi dari gateway ke host, berulang kali. Menjalankan traceroute dari host menunjukkan bahwa pemberhentian pertama adalah di gateway. Maka semua rute lainnya adalah * * *. Saya mendapatkan masalah yang sama terlepas dari apakah wadahnya online atau tidak.
sumber
Karena Anda menjembatani, Anda perlu mengatur alamat IP dalam wadah saja , dan bukan pada host. Tuan rumah seharusnya hanya memiliki alamat IP sendiri .
sumber
Saya hanya melakukannya kemarin dengan Ubuntu 14.04. Sederhana saja. Anda hanya perlu mengedit
/etc/network/interfaces
file di dalam wadah Anda, dan mengatur ini:Ganti setiap variabel dengan nilai yang diinginkan.
Anda TIDAK perlu melakukan hal lain!
PS: Perhatikan ruang sebelum beberapa baris. Itu wajib.
sumber
Cara terbaik yang saya temukan dan tercepat adalah dengan menggunakan profil lxc
lxc profile list
- perintah daftar semua profil yang Anda miliki Kemudianlxc profile copy default minecraft
(ini adalah nama profil baru Anda)Kemudian
lxc profile edit minecraft
Ini akan muncul
lalu simpan
selanjutnya berikan profil ke wadah LXC Anda seperti ini
kemudian cukup restart wadah dan alamat ip baru Anda diatur ke wadah itu
sumber
Saya dapat mengatur dengan benar kontainer LXC saya setelah mengikuti jawaban @Enrique Moreno Tent, jadi saya akan menjelaskan apa yang harus dilakukan secara lebih rinci jika Anda tidak tahu cara mengatur item lainnya.
1. Akses wadah LXC Anda melalui
lxc-attach
perintahPerintah:
$ lxc-attach -n YOUR-CONTAINER-NAME
2. Lihat konfigurasi Anda saat ini dengan
ifconfig
Perintah
`` `
3. Mendapatkan alamat, netmask dan gateway
Melihat hasil dari
ifconfig
perintah di atas, kita kemudian melihat:Alamat adalah alamat yang Anda inginkan, Anda dapat mengubahnya ke 10.0.3.166.
Netmask ada di sana: 255.255.255.0
Gateway : Untuk gateway Anda menggunakan alamat broadcast dengan di sini adalah 10.0.3.255
Seperti yang Anda lihat di atas, saat ini Anda memiliki semua informasi yang Anda butuhkan untuk mengisi tamu Anda (wadah)
/etc/network/interfaces
.4. Mendapatkan
dns-nameservers
nilai.Terbitkan perintah:
cat /etc/resolv.conf
Tapi mungkin lebih baik menggunakan Google DNS, yang asre
8.8.8.8
dan8.8.4.4
5. Mengedit
/etc/network/interfaces
DI DALAM WADAHauto eth0 iface eth0 inet static address 10.0.3.166 netmask 255.255.255.0 gateway 10.0.3.255 dns-nameservers 8.8.8.8
sumber
ifconfig
telah diganti denganip a
di versi debian / ubuntu yang lebih baru linuxconfig.org/…