In mod implicit, un container are doar o interfata de loopback. Daca dorim sa il conectam cu “exteriorul”, trebuie sa ii adaugam o interfata Ethernet.
Vom adauga urmatoarele linii in fisierul de configurare al containerului ct1
:
lxc.network.type = veth # Virtual ethernet - virtualizare la nivel 2 lxc.network.flags = up # Interfata va fi "up" lxc.network.link = br0 # Containerul va fi legat intr-un "bridge" din masina gazda. lxc.network.name = eth0 # Numele interfetei "vazut" in container. lxc.network.veth.pair = veth0-ct1 # Numele interfetei "vazut" pe masina fizica.
Analog, editati fisierul de configurare al containerului ct2
. Pentru atributul lxc.network.veth.pair
specificati valoarea veth0-ct2
.
In prealabil, bridge-ul br0 trebuie creat pe masina gazda, folosind comanda brctl:
root@saisp-vm-1:~# brctl addbr br0 root@saisp-vm-1:~# ifconfig br0 up
Porniti cele doua containere in background, apoi verificati ca intefetele virtuale au fost adaugate in bridge:
root@saisp-vm-1:~# brctl show bridge name bridge id STP enabled interfaces br0 8000.fe6d63702103 no veth0-ct1 veth0-ct2
Alocati adrese IP din spatiul 192.168.1.0/24
pentru:
br0
de pe masina gazdaeth0
de pe containerul ct1
eth0
de pe containerul ct2
Apoi, testati conectivitatea prin ping
de pe masina gazda catre cele 2 containere.
Pentru a avea conectivitate din containere catre Internet, trebuie sa configuram NAT si sa activam rutarea pe masina gazda:
root@saisp-vm-1:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE root@saisp-vm-1:~# echo 1 > /proc/sys/net/ipv4/ip_forward
Apoi, pe cele doua containere adaugati ruta default si testati conectivitatea.