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