Bir LXC davetlisini ağımda erişebilmem için bir dhcp adresi alacak şekilde nasıl ayarlarım?


15

Ben kullanarak LXC kurulum:

lxc-create -t ubuntu -n lxcguest1

Ancak üzerinde çalışan herhangi bir hizmete LAN'ımdan erişemiyorum, NAT gibi görünüyor. Erişebilmem için nasıl ayarlayabilirim (muhtemelen Linksys yönlendiricimden dhcp adresini alması gerekir)?

Teşekkürler.


Yanıtlar:


5

Bu konuyu kendim hallettim. Temel olarak bir köprü kurmanız ve ağ kartınızı ve kabınızı ona bağlamanız gerekir. İşte takip ettiğim makale:

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

Benim gibi geliyor, NAT çözümü yerine 'köprü' çözümüne ihtiyacınız var. Ayrıca varsayılan LXC köprü kurulumunu (NAT'ed) kapattım. Bu sadece düzenlemek dosyayı yapmak için /etc/default/lxcve değişim USE_LXC_BRIDGE="TRUE"için USE_LXC_BRIDGE="FALSE"ve yeniden.


1
Bu çözümle biraz kafam karıştı: bir köprü kurması gerektiğini söylüyor, sonra çözümün varsayılan köprü kurulumunu kapatmak olduğunu söylüyor. Elbette bir köprü kurulumunu AÇIK hale getirmesi gerekir. Yardıma ihtiyacım olan ikinci şey, Kullanıcı'nın köprü kurulumunun NATed olduğunu, elbette ya köprülenmiş olduğunu (kapsayıcıların ana bilgisayarla aynı ağda olduğunu) ya da NATed'in (farklı bir ağda ve yönlendirmeyi gerektirdiğini) söylediğidir. Anladıklarım, bunların karşılıklı olarak münhasır olduğu?
John Little

1
Şu anki sürümlerde bunların hepsi geçersiz. / etc / default / lx * tamamen kayboldu.
spyderdyne

5

Ubuntu 14.04.1 LTS (Trusty Tahr) sunucularına kurulumum

/etc/network/interfacesAna bilgisayara ekle

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

(değişikliklerden sonra yeniden başlat)

Ve konteyner config dosyalarında ( /var/lib/lxc/containername/config)lxc.network.link = br0

Bununla kapsayıcı, ana bilgisayar gibi dhcp sunucusundan genel ip adresleri alacaktır.


@JonathanY. Br0, yanıtta belirtildiği gibi / etc / network / arabirimlerine eklendikten sonra görünmelidir. Yeniden başlatmanız gerekebilir.
Epeli

3
Teşekkürler. Ne eksikti ayrıcalıklı kapsayıcılar ile kullanmak için eklemek <username> veth br0 2 gerekiyordu . /etc/lxc/lxc-usernetbr0
Jonathan Y.

2

Varsayılan Ubuntu LXC ayarlarını kullandım ve yönlendiricimi 10.0.3.xxx üzerindeki tüm trafiği Ubuntu makinesine gönderecek şekilde yapılandırdım. DD-WRT özellikli bir yönlendiricide ayarlar aşağıdaki ekran görüntüsüne benziyor. 192.168.1.137LXC çalıştıran makinenin IP'si ile değiştirin . Diğer yönlendiriciler, statik bir rota ayarlamak için benzer seçeneklere sahip olmalıdır ( örneğin, Linksys için statik rota talimatları aşağıda verilmiştir ).

LXC'ye statik yönlendirme için DD-WRT ayarları

Bu alakasız, ancak LXC kabının IP adresine bir ana bilgisayar adı göstermek için DNSMasq hizmetini de kullandım. Bu şekilde konteynere http://gitlab/ağın herhangi bir yerinden erişebilirim . Bence bir konteynere erişmek için ana bilgisayar adını kullanmak IP adresini hatırlamaktan çok daha kolay.

DD-WRT DNSMasq ayarları


1
Güzel bir yaklaşım - deneyin. Başparmak havaya! Statik yol çalışmaları eklemek - ve yönlendiricinin kendisi konteynerli makinelere ping atabilir! Ancak birçok ISS tarafından sağlanan yönlendirici ile bağlantı noktası yönlendirme aşağıdakilerden dolayı çalışmaz: Error code: 4937 The IP address is not in the same subnet with LAN IP address. Please input another one. (yönlendirici 192.168.xx alt ağını tutarken, LXD / LXC 10.0.xx alt ağındayken)
stamster

1
Evet, çözümümün çalışması için yönlendiricinizin bir alt ağ maskesini kabul etmesi gerekir. Bir yönlendirici satın almak ve çılgın konfigürasyonları mümkün kılmak için bir pazar sonrası ürün yazılımı eklemek istiyorum :-p
thirdender

1
MikroTik'i hem evde hem de ofiste kullanıyorum, ancak bu, ISS tarafından sağlanan düz yönlendiriciye sahip bir kurulum içindi. Bu yüzden fikriniz çok basit ama çok etkili - KISS prensibi :) Sevdim ve eminim kullanacağım çünkü bu kapların henüz dış dünyaya açığa çıkarmak için bir çözümleri yok.
stamster
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.