Jak skonfigurować gościa LXC, aby uzyskał adres dhcp, aby uzyskać dostęp do niego w mojej sieci?

15

Konfiguruję LXC za pomocą:

lxc-create -t ubuntu -n lxcguest1

Ale nie mogę uzyskać dostępu do żadnych usług działających na nim z mojej sieci LAN, wygląda na to, że ma NAT. Jak skonfigurować, aby móc uzyskać do niego dostęp (prawdopodobnie potrzebuje adresu dhcp z routera Linksys)?

Dzięki.

Benjamin Bryan
źródło
Możliwy duplikat askubuntu.com/questions/256304/…
bekce

Odpowiedzi:

5

Właśnie poradziłem sobie z tym problemem. Zasadniczo musisz skonfigurować most i powiązać z nim kartę sieciową i pojemnik. Oto artykuł, który śledziłem:

http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/

Wygląda na to, że tak jak ja, potrzebujesz rozwiązania „pomostowego”, a nie NAT. Wyłączyłem również domyślną konfigurację mostka LXC (która jest NAT'owana). Aby to zrobić, po prostu edytuj plik: /etc/default/lxci zmień USE_LXC_BRIDGE="TRUE"na USE_LXC_BRIDGE="FALSE"i uruchom ponownie.

użytkownik108168
źródło
1
Jestem trochę zdezorientowany tym rozwiązaniem: mówi, że musi skonfigurować mostek, a następnie mówi, że rozwiązaniem jest wyłączenie domyślnej konfiguracji mostu. Z pewnością musi włączyć ustawienie mostka. Drugą rzeczą, z którą potrzebuję pomocy, jest to, że Użytkownik mówi, że konfiguracja mostka jest NATed. Z pewnością jest albo zmostkowana (więc kontenery są w tej samej sieci co host), albo NATed (w innej sieci i wymaga routingu). Rozumiem, że wykluczają się one wzajemnie?
John Little
1
To wszystko jest teraz nieprawidłowe w obecnych wersjach. / etc / default / lx * całkowicie zniknął.
spyderdyne
5

Moja konfiguracja na hostach Ubuntu 14.04.1 LTS (Trusty Tahr)

Dodaj do /etc/network/interfacesna hoście

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 0.0.0.0

auto br0
iface br0 inet dhcp
    bridge_ports eth0

(uruchom ponownie po zmianach)

A na plikach konfiguracyjnych kontenera ( /var/lib/lxc/containername/config) ustawiłemlxc.network.link = br0

Dzięki temu kontener otrzyma publiczne adresy IP z serwera dhcp, podobnie jak host.

Epeli
źródło
@JonathanY. Br0 powinien pojawić się po dodaniu go do / etc / network / interfaces, jak podano w odpowiedzi. Może być konieczne ponowne uruchomienie komputera.
Epeli
3
Dzięki. Co mi brakowało było potrzeby, aby dodać <username> veth br0 2 do /etc/lxc/lxc-usernetw celu korzystania br0z nieuprzywilejowanych pojemników.
Jonathan Y.
2

Użyłem domyślnych ustawień Ubuntu LXC i skonfigurowałem router, aby wysyłał cały ruch z 10.0.3.xxx na maszynę Ubuntu. Na routerze obsługującym DD-WRT ustawienia wyglądają jak na poniższym zrzucie ekranu. Zamień 192.168.1.137na IP maszyny z uruchomionym LXC. Inne routery powinny mieć podobne opcje do ustawiania trasy statycznej (tutaj są na przykład instrukcje dotyczące trasy statycznej dla Linksys ).

Ustawienia DD-WRT dla routingu statycznego do LXC

Nie ma to żadnego związku, ale użyłem również usługi DNSMasq, aby wskazać nazwę hosta na adres IP kontenera LXC. W ten sposób mogę uzyskać dostęp do kontenera w http://gitlab/dowolnym miejscu w sieci. Moim zdaniem o wiele łatwiej jest użyć nazwy hosta, aby uzyskać dostęp do kontenera, niż zapamiętać adres IP.

Ustawienia DD-WRT DNSMasq

Trzeci
źródło
1
Niezłe podejście - spróbuj. Kciuki w górę! Dodawanie statycznej trasy działa - a sam router może pingować konteneryzowane maszyny! Ale w przypadku wielu routerów dostarczonych przez dostawcę usług internetowych przekierowanie portów nie będzie działać z powodu: Error code: 4937 The IP address is not in the same subnet with LAN IP address. Please input another one. (router posiada podsieć 192.168.xx, podczas gdy LXD / LXC są w podsieci 10.0.xx)
stamster
1
Tak, router będzie musiał zaakceptować maskę podsieci, aby moje rozwiązanie działało. Lubię kupować router i dodawać oprogramowanie posprzedażowe, aby umożliwić szalone konfiguracje :-p
Thirdender
1
Używam MikroTik zarówno w domu, jak iw biurze, ale dotyczyło to jednej konfiguracji, w której mieli zwykły router dostarczony przez dostawcę usług internetowych. Więc twój pomysł jest bardzo prosty, ale bardzo skuteczny - zasada KISS :) Podoba mi się i na pewno go wykorzystam, ponieważ nie mogę zrozumieć, w jaki sposób te pojemniki, których jeszcze nie mają, mogą wystawić je na świat zewnętrzny.
stamster