Próbuję skonfigurować wiele kontenerów LXC na hoście, każdy z własnymi publicznymi statycznymi adresami IP.
Na moim hoście działa najnowsza wersja Ubuntu. Ma pojedynczy interfejs sieciowy o nazwie eth0. Statyczne adresy IP są pingowane z Internetu i noszą nazwy eth0: 210, eth0: 211 ... Liczby po dwukropku są najmniej znaczącym bajtem adresów. Oprócz tych interfejsów mam konfigurację br0 na publicznym adresie IP hosta. Istnieją również interfejsy lo, veth2LPP9A i lxcbr0. Lxcbr0 ma adres prywatnego adresu IP.
Interfejs host / etc / network / wygląda następująco:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
Do tej pory korzystałem z różnych źródeł online, w tym z kontenerów Bridging LXC do hostowania eth0, aby mogli mieć publiczny adres IP, który pomoże mi to skonfigurować.
Plik konfiguracyjny kontenera zawiera:
lxc.network.type = veth
lxc.network.link = br0
Usunąłem z tego pliku statyczną konfigurację lxc.network.ipv4, ponieważ spowodowała problemy. Kiedy uruchomiłem lxc-ls - fantazyjne w tej konfiguracji, zobaczyłem dwa razy ten sam publiczny adres IP na wyjściu. Ponadto bałagan z konfiguracją podsieci / etc / network / interfaces kontenera.
Mówiąc o pliku interfejsów kontenera, wygląda to trochę tak:
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 [...]
Musiałem skomentować bramę i dodać polecenie trasy dodaj do tego pliku. W przeciwnym razie uruchomienie kontenera zajmie kilka minut.
Wszystkie pliki / proc / sys / net / bridge / bridge-nf- * na hoście są ustawione na 0. Wartość / proc / sys / net / ipv4 / ip_forward wynosi 1.
Problem w tym, że chociaż „route -n” kontenera wygląda tak, jak powinno, nie mogę pingować z kontenera. SSHing do adresu IP kontenera łączy mnie z hostem.
EDYCJA: Usunięcie statycznego adresu IP kontenera z hosta pomogło, ale teraz pojawia się nowy błąd. Próba pingowania kontenera z hosta powoduje przekierowanie HostFrom, New nexthop. Pakiety wielokrotnie przechodzą od bramki do hosta. Uruchomienie traceroute z hosta pokazuje, że pierwszy przystanek znajduje się w bramie. Wszystkie pozostałe trasy to * * *. Mam ten sam problem niezależnie od tego, czy kontener jest online, czy nie.
źródło
Ponieważ jesteś pomostowych, trzeba ustawić adresy IP w pojemniku tylko , a nie na komputerze. Host powinien mieć tylko własny adres (adresy) IP.
źródło
Właśnie zrobiłem to z Ubuntu 14.04. To jest proste. Musisz tylko edytować
/etc/network/interfaces
plik w kontenerze i ustawić to:Zastąp każdą zmienną żądaną wartością.
Ty NIE trzeba robić nic innego!
PS: Zwróć uwagę na spację przed niektórymi liniami. Jest to obowiązkowe
źródło
Najlepszym sposobem, jaki znajduję i najszybszym, jest użycie profili lxc
lxc profile list
- polecenie listy wszystkich profili, które masz Następnielxc profile copy default minecraft
(to jest nazwa twojego nowego profilu)Następnie
lxc profile edit minecraft
To się pojawi
następnie zapisz to
następnie przypisz profil do swojego kontenera LXC w ten sposób
następnie ponownie uruchom kontener, a nowy adres IP zostanie ustawiony na ten kontener
źródło
Mógłbym poprawnie skonfigurować moje pojemniki LXC po podążeniu za odpowiedzią @Enrique Moreno Tent, więc wyjaśnię, co robić bardziej szczegółowo, na wypadek, gdybyś nie wiedział, jak skonfigurować inne przedmioty.
1. Uzyskaj dostęp do kontenera LXC za pomocą
lxc-attach
poleceniaKomenda:
$ lxc-attach -n YOUR-CONTAINER-NAME
2. Zobacz swoje obecne konfiguracje za pomocą
ifconfig
Komenda
``
3. Uzyskiwanie adresu, maski sieci i bramy
Widząc wynik
ifconfig
powyższego polecenia, widzimy:Adres to żądany adres, możesz go zmienić na 10.0.3.166.
Maska sieci jest tam: 255.255.255.0
Brama : W przypadku bramy, której używasz adresu rozgłoszeniowego, tutaj jest 10.0.3.255
Jak widać powyżej, obecnie masz wszystkie informacje potrzebne do wypełnienia gościa (kontenera)
/etc/network/interfaces
.4. Uzyskiwanie
dns-nameservers
wartości.Wydaj polecenie:
cat /etc/resolv.conf
Ale może najlepiej jest używać Google DNS, który docenia
8.8.8.8
i8.8.4.4
5. Edycja
/etc/network/interfaces
WEWNĄTRZ POJEMNIKAauto 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
źródło
ifconfig
został zastąpiony nowszymiip a
wersjami debian / ubuntu linuxconfig.org/…