OnWorks Linux en Windows Online WorkStations

logo

Gratis online hosting voor werkstations

<Vorige | Inhoud | Volgende>

6.4. Netwerken


Standaard creëert LXC voor elke container een privénetwerknaamruimte, die een laag 2-netwerkstack bevat. Containers maken meestal verbinding met de buitenwereld door een fysieke NIC of een veth-tunneleindpunt in de container te laten passeren. LXC maakt een NATed-brug, lxcbr0, bij het opstarten van de host. Containers die met de standaardconfiguratie zijn gemaakt, hebben één veth-NIC waarbij het externe uiteinde is aangesloten op de lxcbr0-bridge. Een NIC kan slechts in één naamruimte tegelijk bestaan, dus een fysieke NIC die in de container wordt doorgegeven, is niet bruikbaar op de host.


Het is mogelijk om een ​​container te maken zonder een particuliere netwerknaamruimte. In dit geval heeft de container toegang tot het hostnetwerk, net als elke andere applicatie. Houd er rekening mee dat dit vooral gevaarlijk is als de

container draait een distributie met parvenu, zoals Ubuntu, sinds programma's die met init praten, zoals stillegging, zal via de abstracte Unix-domeinsocket met de parvenu van de host praten en de host afsluiten.


Om containers op lxcbr0 een persistent IP-adres te geven op basis van de domeinnaam, kunt u vermeldingen naar schrijven /etc/lxc/dnsmasq.conf graag willen:


dhcp-host=lxcmail,10.0.3.100 dhcp-host=ttrss,10.0.3.101


Als het wenselijk is dat de container publiekelijk toegankelijk is, zijn er verschillende manieren om dat te doen. Eén is om te gebruiken

iptables om bijvoorbeeld hostpoorten naar de container door te sturen


iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 587 -j DNAT \

--naar bestemming 10.0.3.100:587


Een andere is het overbruggen van de netwerkinterfaces van de host (zie het hoofdstuk Netwerkconfiguratie van de Ubuntu Serverhandleiding, Paragraaf 1.4, “Bridging” [p. 46]). Specificeer vervolgens de bridge van de host in het containerconfiguratiebestand in plaats van bijvoorbeeld lxcbr0


lxc.network.type = vth lxc.network.link = br0


Ten slotte kunt u LXC vragen om macvlan te gebruiken voor de NIC van de container. Houd er rekening mee dat dit beperkingen heeft en dat, afhankelijk van de configuratie, de container mogelijk niet met de host zelf kan praten. Daarom hebben de andere twee opties de voorkeur en worden deze vaker gebruikt.


Er zijn verschillende manieren om het IP-adres van een container te bepalen. Ten eerste kun je gebruiken lxc-ls --mooi waarmee de IP-adressen voor alle actieve containers worden afgedrukt, of lxc-info -i -H -n C1 waarmee het IP-adres van C1 wordt afgedrukt. Als dnsmasq op de host is geïnstalleerd, kunt u ook een vermelding toevoegen aan /etc/dnsmasq.conf als hieronder


server=/lxc/10.0.3.1


waarna dnsmasq C1.lxc lokaal zal oplossen, zodat u het volgende kunt doen:


ping C1 ssh C1


Voor meer informatie, zie de lxc.conf manpage en de voorbeeldnetwerkconfiguraties hieronder /usr/share/doc/lxc/examples/.


Top OS Cloud Computing bij OnWorks: