konfigurace síťování pro lxc kontejnery

Tomas Vondra tv na fuzzy.cz
Středa Květen 14 00:08:36 CEST 2014


On 13.5.2014 23:22, Miroslav Lednicky wrote:
> Ahoj,
> 
> neznam, bohuzel, Gentoo a jeho konfigurace interface, takze nemuzu
> poradit, co kam napsat.
> 
> Je zde videt jeden zasadni rozdil mezi tim, jak to mas udelane
> na Centosu (lituji cloveka, ktery rozchazel LXC na Centosu ;-)
> a mezi tim, jak to mas udelane na tom gentoo.
> 
> Centos:
> 
> je zde bridge virbr0 na nem IP 192.168.122.1, v tomto bridge jsou
> vsechny veth interface LXC, ale NENI tam eth0.
> 
> Gentoo:
> 
> je zde bridge br0 a v nem enp2s0. A to je velky rozdil.
> 
> Jakmile po nastartovani naskoci LXC, tak si pres bridge leasnou
> IP z centralniho DHCP. Gentoo se na net nedostane.

Aha! Na tom CentOSu je to jednoduše zNATované přes iptables.

A s touto trochou nakopnutí už to (zdá se) už i funguje. Stačilo udělat
toto:

(1) vyhodit enp2s0 z bridge (včetně té routy), takže /etc/conf.d/net.br0
teď vypadá takhle:

config_br0="192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255"
brctl_br0="setfd 0 sethello 10 stp off"
#routes_br0="192.168.1.1"
bridge_br0=""

(2) nahodit triviální NAT (což už jsem nedělal drahně let, ale okopčil
jsem to z toho CentOSu)

iptables -t nat -A POSTROUTING --source 192.168.2.0/24 ! --destination
192.168.2.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
iptables -t nat -A POSTROUTING --source 192.168.2.0/24 ! --destination
192.168.2.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
iptables -t nat -A POSTROUTING --source 192.168.2.0/24 ! --destination
192.168.2.0/24 -j MASQUERADE

iptables -A INPUT -i br0 -j ACCEPT

iptables -A FORWARD -i br0 --source 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -o br0 --destination 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -i br0 -o br0 -j ACCEPT

Teď už síť víceméně funguje, akorát mi trochu škobrtá DNS v tom
kontejneru. Ještě tam chybí REJECT pravidla, no ale pro začátek mi to stačí.

> Nevim, co je tvym cilem. Pokud chces mit LXC izolovane od zbytku
> site a provozovat je pouze s internimi IP, nemuze byt soucasti
> toho bridge interface enp2s0.

To já taky nevím, ale i cesta může být cíl ;-)

Ale trochu vážněji - já vím že budu chtít používat kontejnery jak
"odříznuté od světa" (tj. jenom prosíťované mezi sebou), tak i s
přístupem k síti.

Teď je mám s přístupem k síti, ale počítám že udělat druhý "privátní"
bridge bez forwardingu ven bude triviální. A pak samozřejmě ten lxc
nakonfigurovat tak aby používal ten správný (nebo oba) už by nemělo být
tak složité.

> Pokud chces mit ty LXC zapojeny primo do LAN, ve ktere je i enp2s0,
> pak musis mit nahozen br0, na nem DHCP klienta a soucasti bridge bude
> i interface enp2s0, ale bez vlastni IP adresy.
> 
> Jakmile naskoci LXC, tak si leasnou IP z centralniho DHCP a dostanou
> se primo do LAN.
> 
> Jak to napsat do konfigurace v gentoo, to uz si musis najit nekde
> na netu.
> 
> Osobne pouzivam Ubuntu server nebo Debian. Pro pokusy s LXC bych
> doporucil predevsim distribuci Ubuntu.
> 
> Urcite to bude chtit trochu samostudia o bridge v Linuxu. ;-)

Toho bohdá nebude, aby programátor četl manuál ...

> Preji uspesne testovani.

Díky za rady. Teď si hlavně tu funkční konfiguraci někam uložit, abych
si ji jako obvykle nesmazal.

T.


Další informace o konferenci Linux