GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Ubuntu – Wie konfiguriere ich externe IP-Adressen für Lxc-Gäste?

Ich erkunde die LXC-Funktionen in Ubuntu 12.04 und möchte wirklich ein Netzwerk wie dieses einrichten:

client1:   192.168.56.101/24
lxc-host:  192.168.56.102/24
guest1     192.168.56.201/24
guest2     192.168.56.202/24
guest3     192.166.56.203/24

Ich möchte nur ein „flaches“ Netzwerk, in dem die Gäste vollen Zugriff auf das LAN haben und von den Clients aus sichtbar sind. Ich bin es gewohnt, Netzwerke mit libvirt/KVM zu überbrücken, wie hier beschrieben:http://libvirt.org/formatdomain.html#elementsNICSBridge

Auf dem Host:

# /etc/network/interfaces
auto br0
iface br0 inet static
    address 192.168.56.102
    netmask 255.255.255.0
    broadcast 192.168.56.255
    bridge_ports eth1

lxc.conf für den ersten Gast:

# /var/lib/lxc/guest1/config:
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
lxc.network.hwaddr=00:16:3e:13:48:4e
lxc.network.ipv4=192.168.56.201/24

Es sieht so aus, als ob 192.168.56.201 für die Außenwelt unsichtbar ist, was ich nicht will. Anscheinend muss ich eines dieser Dinge tun:

1) Manuelles Einrichten des Routings auf Host und Gast

2) Machen Sie etwas Hokey ... erstellen Sie im Voraus virtuelle Schnittstellen auf dem Host und konfigurieren Sie die Gäste, um sie zu verwenden lxc.network.type=phys . Ich weiß nicht, ob das wirklich funktionieren würde.

Ich konzentriere mich auf Ubuntu, aber Antworten für RHEL/Fedora wären auch nützlich….

Akzeptierte Antwort:

Das ist ziemlich richtig – obwohl Ihnen eine Zeile wie diese fehlt:

lxc.network.ipv4.gateway = X.X.X.X

Ich habe einen LXC-Gast, der auf Debian läuft. Zuerst richten Sie die Host-Bridge (einfacher Weg) in /etc/network/interfaces ein :

auto wan
iface wan inet static
        address 72.X.X.X
        netmask 255.255.255.0
        gateway 72.X.X.1
        bridge_ports wan_phy    # this line is important.
        bridge_stp off
        bridge_fd 2
        bridge_maxwait 20

In Ihrem Fall haben Sie es br0 genannt , und ich habe es wan genannt . Die Brücke kann beliebig heißen. Sie bringen dies zuerst zum Laufen – wenn es fehlschlägt, untersuchen Sie es mit (z. B.) brctl

Dann ist Ihre LXC-Konfiguration so eingerichtet, dass sie dieser Bridge beitritt:

lxc.utsname = FOO
lxc.network.type = veth
lxc.network.link = wan                  # remember, this is what I call my bridge
lxc.network.flags = up
lxc.network.name = v-wan                # optional, I believe
lxc.network.ipv4 = 72.X.X.Y/24          # different IP than the host
lxc.network.ipv4.gateway = 72.X.X.1     # same as on the host

Wie HoverHell feststellt, kann jemand mit Root im Container die IP-Adresse ändern. Ja. Es ist eine Bridge (auch bekannt als Ethernet-Switch). Wenn Sie das verhindern möchten, können Sie Firewall-Regeln auf dem Host verwenden – zumindest in meinem Fall müssen die Pakete durch die iptables des Hosts gehen.


Ubuntu
  1. So konfigurieren Sie eine statische IP-Adresse unter Ubuntu 18.04

  2. So konfigurieren Sie eine statische IP-Adresse unter Ubuntu 20.04

  3. So konfigurieren Sie den Bacula-Server unter Ubuntu 16.04

  4. So starten Sie das Netzwerk unter Ubuntu neu

  5. So konfigurieren Sie den Ubuntu-DHCP-Client

So richten Sie die Netzwerkbindung in Ubuntu 20.04 ein

So starten Sie das Netzwerk unter Ubuntu 20.04 neu

So konfigurieren Sie die Netzwerkbrücke in Ubuntu

So konfigurieren und verwenden Sie die Netzwerkbrücke in Ubuntu Linux

So starten Sie das Netzwerk unter Ubuntu 22.04 neu

So legen Sie ein externes Netzwerk für Container in Linux-Containern (LXC) fest