This shows you the differences between two versions of the page.
rl:labs:11:contents:06 [2015/01/08 15:12] razvan.deaconescu |
rl:labs:11:contents:06 [2024/01/07 12:46] (current) viorel.mocanu [06. [15p] Cloud NAT] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 06. [15p] Rețele distincte pentru containere ==== | + | ====== 06. [15p] Cloud NAT ====== |
- | Ne propunem să realizăm o configurație în care fiecare container se găsește în fiecare rețea. Vom renunța la bridge-uri și vom face legături unu-la-unu între containere și stația ''host''. | + | Căutăm **Cloud NAT** din secțiunea **Network Services** și selectăm **Get Started** pentru a configura un Cloud NAT gateway. |
- | Pentru început, extrageți (ștergeți) interfețele din bridge-uri și apoi ștergeți bridge-urile (''br0'' și ''br1''). Urmăriți pagina de manual a comenzii ''brctl'' pentru opțiunile utile. | + | <note tip> Căutați **Network Services** în bara de căutare pentru a găsi secțiunea. </note> |
- | <note important> | + | Întâi trebuie ales un nume pentru noul gateway și putem utiliza **student$X$-gw**. (student1-gw) |
- | Rulați comenzile de ștergere a bridge-urilor direct pe mașina virtuală în interfața VMware. Prin SSH veți pierde conexiunea cu stația ''host''. | + | |
- | </note> | + | |
- | <note important> | + | În secțiunea dedicată selecției **Cloud Router**-ului trebuie mai întâi să selectăm VPC-ul definit mai devreme, apoi regiunea (aceeași ca la pașii anteriori). |
- | Pentru a putea șterge un bridge, interfața aferentă acestuia trebuie dezactivată (trebuie să fie ''DOWN''). Folosiți ''ip link'' pentru a realiza acest lucru. | + | Ultimul pas este selectarea instanței de **Cloud Router** definită la pasul precedent. |
- | </note> | + | Tot la acest pas se poate selecta care dintre subrețelele definite sunt mapate către **Cloud NAT Gateway**. Avem opțiunea fie de a include toate subrețelele, fie de a selecta individual fiecare rețea în parte. |
- | Apoi ștergeți vechile configurații (adrese IP, rute implicite) de pe containere. | + | De asemenea, avem fie opțiunea de a selecta o adresă IP publică rezervată sau de a utiliza o adresă în mod automat. |
- | După aceea realizați următoarele: | + | {{ :rl:labs:12:contents:cloud-nat-gw.png?700 |}} |
- | * Obțineți din noua adresa IP a interfeței ''eth0'' a stației ''host'' folosind comanda<code bash> | + | |
- | root@host:~# dhclient eth0 | + | |
- | </code> | + | |
- | * Atribuiți adrese din rețeaua ''10.10.10.0/24'' pe legătura ''host(veth-red)'' <-> ''red(eth0)''. | + | |
- | * Atribuiți adrese din rețeaua ''20.20.20.0/24'' pe legătura ''host(veth-green)'' <-> ''green(eth0)''. | + | |
- | * Atribuiți adrese din rețeaua ''30.30.30.0/24'' pe legătura ''host(veth-blue)'' <-> ''blue(eth0)''. | + | |
- | * Configurați //default gateway// pe fiecare container. | + | |
- | * Activați rutarea pe stația ''host''. | + | |
- | + | ||
- | În cazul unei configurări corecte, veți avea conectivitate între toate containerele, prin intermediul stației ''host'' pe post de ruter. Folosiți ''ping'' pentru testarea conectivității. | + | |
- | + | ||
- | <solution -hidden> | + | |
- | Rulăm comenzile de ștergere ale bridge-urilor direct pe mașina virtuală în interfața VMware:<code bash> | + | |
- | root@host:~# brctl delif br1 veth-red | + | |
- | root@host:~# brctl delif br1 veth-green | + | |
- | root@host:~# ip l s dev br1 down | + | |
- | root@host:~# brctl delbr br1 | + | |
- | + | ||
- | root@host:~# brctl delif br0 veth-blue | + | |
- | root@host:~# brctl delif br0 eth0 | + | |
- | root@host:~# ip l s dev br0 down | + | |
- | root@host:~# brctl delbr br0 | + | |
- | </code> | + | |
- | + | ||
- | Reinițializăm interfața ''eth0'':<code bash> | + | |
- | root@host:~# dhclient eth0 | + | |
- | </code> | + | |
- | + | ||
- | Din acest moment, putem rula comenzile prin intermediul conexiunilor SSH la stația ''host''. Atribuim adrese, configurăm //default gateway// și activăm rutarea:<code bash> | + | |
- | root@host:~# ip a a 10.10.10.1/24 dev veth-red | + | |
- | root@host:~# ip a a 20.20.20.1/24 dev veth-green | + | |
- | root@host:~# ip a a 30.30.30.1/24 dev veth-blue | + | |
- | root@host:~# sysctl -w net.ipv4.ip_forward=1 | + | |
- | net.ipv4.ip_forward = 1 | + | |
- | + | ||
- | root@red:~# ip a f dev eth0 | + | |
- | root@red:~# ip a a 10.10.10.2/24 dev eth0 | + | |
- | root@red:~# ip l s dev eth0 up | + | |
- | root@red:~# ip r a default via 10.10.10.1 | + | |
- | root@red:~# ip r s | + | |
- | default via 10.10.10.1 dev eth0 | + | |
- | 10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.2 | + | |
- | root@red:~# ping -c 1 10.10.10.1 | + | |
- | PING 10.10.10.1 (10.10.10.1) 56(84) bytes of data. | + | |
- | 64 bytes from 10.10.10.1: icmp_req=1 ttl=64 time=0.031 ms | + | |
- | + | ||
- | --- 10.10.10.1 ping statistics --- | + | |
- | 1 packets transmitted, 1 received, 0% packet loss, time 0ms | + | |
- | rtt min/avg/max/mdev = 0.031/0.031/0.031/0.000 ms | + | |
- | + | ||
- | root@green:~# ip a f dev eth0 | + | |
- | root@green:~# ip a a 20.20.20.2/24 dev eth0 | + | |
- | root@green:~# ip l s dev eth0 up | + | |
- | root@green:~# ip r a default via 20.20.20.1 | + | |
- | root@green:~# ip r s | + | |
- | default via 20.20.20.1 dev eth0 | + | |
- | 20.20.20.0/24 dev eth0 proto kernel scope link src 20.20.20.2 | + | |
- | root@green:~# ping -c 1 20.20.20.1 | + | |
- | PING 20.20.20.1 (20.20.20.1) 56(84) bytes of data. | + | |
- | 64 bytes from 20.20.20.1: icmp_req=1 ttl=64 time=0.040 ms | + | |
- | + | ||
- | --- 20.20.20.1 ping statistics --- | + | |
- | 1 packets transmitted, 1 received, 0% packet loss, time 0ms | + | |
- | rtt min/avg/max/mdev = 0.040/0.040/0.040/0.000 ms | + | |
- | + | ||
- | root@blue:~# ip a f dev eth0 | + | |
- | root@blue:~# ip a a 30.30.30.2/24 dev eth0 | + | |
- | root@blue:~# ip l s dev eth0 up | + | |
- | root@blue:~# ip r a default via 30.30.30.1 | + | |
- | root@blue:~# ip r s | + | |
- | default via 30.30.30.1 dev eth0 | + | |
- | 30.30.30.0/24 dev eth0 proto kernel scope link src 30.30.30.2 | + | |
- | root@blue:~# ping -c 1 30.30.30.1 | + | |
- | PING 30.30.30.1 (30.30.30.1) 56(84) bytes of data. | + | |
- | 64 bytes from 30.30.30.1: icmp_req=1 ttl=64 time=0.052 ms | + | |
- | + | ||
- | --- 30.30.30.1 ping statistics --- | + | |
- | 1 packets transmitted, 1 received, 0% packet loss, time 0ms | + | |
- | rtt min/avg/max/mdev = 0.052/0.052/0.052/0.000 ms | + | |
- | </code> | + | |
- | + | ||
- | Testăm conectivitatea între stații trimițând pachete ICMP (''ping'') de la stația ''blue'' către stația ''red'', respectiv ''green'':<code bash> | + | |
- | root@blue:~# ping 10.10.10.2 | + | |
- | PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data. | + | |
- | 64 bytes from 10.10.10.2: icmp_req=2 ttl=63 time=0.028 ms | + | |
- | ^C | + | |
- | --- 10.10.10.2 ping statistics --- | + | |
- | 2 packets transmitted, 2 received, 0% packet loss, time 999ms | + | |
- | rtt min/avg/max/mdev = 0.028/0.031/0.035/0.006 ms | + | |
- | root@blue:~# ping 20.20.20.2 | + | |
- | PING 20.20.20.2 (20.20.20.2) 56(84) bytes of data. | + | |
- | 64 bytes from 20.20.20.2: icmp_req=1 ttl=63 time=0.034 ms | + | |
- | ^C | + | |
- | --- 20.20.20.2 ping statistics --- | + | |
- | 1 packets transmitted, 1 received, 0% packet loss, time 0ms | + | |
- | rtt min/avg/max/mdev = 0.034/0.034/0.034/0.000 ms | + | |
- | </code> | + | |
- | </solution> | + |