04. [15p] Conectare de containere la rețeaua publică

Până acum conectarea la Internet containerelor red, green și blue se face prin intermediul stației host pe post de ruter/gateway. Stația host preia pachetele sosite pe interfața br0 și le transferă apoi pe interfața eth0 legată la o rețea pe care vom denumi în continuare rețea publică.

Dorim să realizăm conectarea la Internet a containerelor direct la rețeaua publică, renunțânt astfel la rutare și la NAT pe stația host. Pentru aceasta vom adăuga inclusiv interfața eth0 la bridge-ul br0, asigurând astfel o conexiune ,prin bridge, a containerelelor la rețeaua publică.

Pentru început dezactivăm NAT pe stația host:

root@host:~# iptables -t nat -L POSTROUTING -n -v
Chain POSTROUTING (policy ACCEPT 1 packets, 32 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   50  3166 MASQUERADE  all  --  *      eth1    0.0.0.0/0            0.0.0.0/0           
root@host:~# iptables -t nat -F POSTROUTING
root@host:~# iptables -t nat -L POSTROUTING -n -v
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Operațiile următoare le vom efectua direct în consola mașinii virtuale VMware, adică în fereastra VMware, întrucât vor afecta configurația rețelei și vor închide conexiunile SSH curente.

După cum am precizat, adăugăm interfața eth0 în brige-ul br0 (practic creăm o legătură între switch-ul nostru virtual br0 și rețeaua publică):

root@host:~# brctl addif br0 eth0
root@host:~# brctl show br0
bridge name	bridge id		STP enabled	interfaces
br0		8000.080027db5278	no		eth0
							veth-blue
							veth-green
							veth-red

Pentru a reveni la conectare prin SSH de pe sistemul fizic pe stația host, va trebui să configurăm o adresă IP pe bridge-ul br0. Pentru acesta vom șterge vechile adrese de pe interfețele eth0 și br0 și vom obține o adresă nouă pe interfața br0 folosind comenzile:

root@host:~# ip a f dev eth0
root@host:~# ip a f dev br0
root@host:~# dhclient br0
root@host:~# ip a s br0
25: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 08:00:27:db:52:78 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.101/24 brd 192.168.56.255 scope global br0

Sunt șanse ca pe interfața br0 să fie primită, prin DHCP, aceeași adresă IP. În acest caz conexiunea SSH existentă va fi deblocată și veți putea continua lucrul la exerciții. Adică nu va mai fi nevoie să rulați comanda ssh indicată imediat mai jos.

Acum ne putem reconecta de pe sistemul fizic la stația host prin SSH, folosind adresa IP asociată acum interfeței br0:

student@mjolnir:~$ ssh root@ADRESA_IP_BR0

Acum containerele sunt conectate la rețeaua publică. Pentru a obține adrese din acea rețea, ștergem vechea adresă pe interfața eth0, rulăm pe fiecare container comanda dhclient eth0 și observăm ce adrese IP a obținut fiecare container:

root@red:~# ip a f dev eth0
root@red:~# dhclient eth0
root@red:~# ip a s dev eth0
26: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:3e:8e:84:21 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.102/24 brd 192.168.56.255 scope global eth0
 
root@blue:~# ip a f dev eth0
root@blue:~# dhclient eth0
root@blue:~# ip a s eth0
19: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:3e:32:0f:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.103/24 brd 192.168.56.255 scope global eth0
 
root@green:~# ip a f dev eth0
root@green:~# dhclient eth0
root@green:~# ip a s dev eth0
22: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:3e:d1:b2:95 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.104/24 brd 192.168.56.255 scope global eth0

Folosind noile adrese obținute ne putem conecta direct prin SSH de pe sistemul fizic pe containere:

student@mjonir:~$ ssh root@ADRESA_IP_RED
[...]
root@red:~#

student@mjonir:~$ ssh root@ADRESA_IP_GREEN
[...]
root@green:~#

student@mjonir:~$ ssh root@ADRESA_IP_BLUE
[...]
root@blue:~#
rl/labs/virt-lxc/contents/04.txt · Last modified: 2019/12/07 08:54 by octavian.grigorescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0