Síťová rozhraní v LXC
Většinu parametrů síťových rozhraní lze nastavit již v konfiguračním souboru kontejneru. Uživatel nemusí nastavovat IP/IPv6 adresy atd.
Konfigurační soubor
V konfiguračním souboru lze textově popsat jednotlivá síťová rozhraní. V ukázce níže jsou popsány dvě rozhraní.
lxc.network.type = veth lxc.network.flags = up lxc.network.link = br351 lxc.network.name = eth0 lxc.network.veth.pair = node3-eth0 lxc.network.type = veth lxc.network.flags = up lxc.network.link = br350 lxc.network.name = eth1 lxc.network.veth.pair = node3-eth1
Typ síťového rozhraní jsou popsány v dokumentaci, hodnota veth znamená, že se použije virtio síťová karta. link značí, do jakého siťového mostu se má nově vytvořené rozhraní připojit. name definuje, jak se bude síťové rozhraní jmenovat uvnitř kontejneru a veth.pair určí, jak se jmenuje virtuální rozhraní na úrovni hypervisoru. Opakováním více záznamů lxc.network lze vytvořit více síťových rozhraní.
Kontejnerům lze přiřadit i specifickou MAC adresu, případně i IP adresu. Hodnota x v MAC adrese je nahrazena náhodnou hodnotou při vytváření kontejneru.
lxc.network.type = veth lxc.network.hwaddr = fe:ab:5e:69:6b:xx lxc.network.ipv4 = 1.2.3.14/26 lxc.network.ipv4.gateway = 1.2.3.1 lxc.network.ipv6 = 2001:db8:0:1::e/64 lxc.network.ipv6.gateway = 2001:db8:0:1::1 lxc.network.name = eth0 lxc.network.flags = up lxc.network.script.up = /etc/lxc/ovsup.350 lxc.network.script.down = /etc/lxc/ovsdown.350
lxc.network.script.up ukazuje na cestu ke skriptu, který se zavolá po vytvoření virtuálních rozhraní. Zde je ukázka skriptu, který připojí virtuální rozhraní do OpenVSwitche (se správným VLAN ID).
#!/bin/bash BRIDGE="ovsbr0" OVSVSCTL="/usr/bin/ovs-vsctl" $OVSVSCTL --may-exist add-port $BRIDGE $5 tag=350
Parametry, které se skriptu předávají jsou následující:
- jméno kontejneru,
- kontext -- zde klíčové slovo up ,
- typ síťové karty (empty/veth/macvlan/phys),
- veth/macvlan/phys,
- název zařízení - odpovídá položce veth.pair.