Praktiline juhtum I: kihi 4 NAT ja DNAT koormuse tasakaalustamise mõistmine

POSTITATUD 20. septembril 2017

Need praktilised juhtumid on koolitusjuhend, et paremini mõista, kuidas võrgustikud, turvalisus ja kõrge kättesaadavusega tehnoloogiad toimivad.

Esiteks proovige järgmist harjutust:

Step 1. Install Zevenet CE from GIT, SF or Docker
            https://www.zevenet.com/community

Step 2. Create L4xNAT farm with 2 backends and NAT or DNAT mode
            https://www.zevenet.com/knowledge-base/

Step 3. Execute in a console of Zevenet CE and try to understand the result of:
            root# iptables -t mangle -n -L
            root# iptables -t nat -n -L

Kahtlused ja kommentaarid ametnikul meililistis!

Vastus

Koormuse tasakaalustaja on võrguseade, mis vastutab kliendi ja taustaprogrammide või reaalsete serverite vahelise liiklusvoo eest, nii et 4i samme hooldatakse, et tagada kihi 4 ühenduste pakettide arv:

Load_Balancer_l4_packet_flows

1. Kliendi pakett saadetakse kliendilt koormuse tasakaalustajale
2. Pakett saadetakse koormuse tasakaalustajast ühele valitud reaalsele serverile või taustaprogrammile
3. Pakett vastab serverilt koormuse tasakaalustajale
4. Pakett saadetakse kliendile vastusena tagasi

Zevenet 4. kiht (LSLB - L4xNAT profiilid) käsitsevad kõiki neid pakette kasutades netfilter allsüsteemi kaudu iptables ja võrgu marsruutimissüsteem.

Sel põhjusel, kui seadistate a DNAT režiimi talu ja teostage iptables'i käsud, leiame tabelites loodud reeglid mangle ja nat netfilter. Lisateave Netfilter tabelid siin .

aasta PREROUTING ahel mangle tabelis on näidatud vastavad reeglid:

- Kõik sissetulevad paketid kõigist allikatest või klientidest, mille sihtkohaks on teenuse virtuaalne aadress ja port (näites on 192.168.101.250:443)
- Seejärel märkige paketid kindla algoritmi järgi, antud juhul on tõenäosusmeetodil põhinev kaal.

root@zevenet:~# iptables -L -t mangle -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
CONNMARK   all  --  0.0.0.0/0            0.0.0.0/0            CONNMARK restore
MARK       tcp  --  0.0.0.0/0            192.168.101.250      statistic mode random probability 1.00000000000 multiport dports 443 /*  FARM_app_1_  */ MARK set 0x20d
MARK       tcp  --  0.0.0.0/0            192.168.101.250      statistic mode random probability 0.50000000000 multiport dports 443 /*  FARM_app_0_  */ MARK set 0x20c
CONNMARK   all  --  0.0.0.0/0            0.0.0.0/0            state NEW CONNMARK save

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Nüüd, kui sissetulevad paketid on tähistatud, PREROUTING ahel nat tabelis kasutame pakettmärki, et muuta paketi sihtkoha aadressi ühte taustaprogrammi või teise. Selle näite puhul IP-aadressid 192.168.1.10 ja 192.168.1.11 on reaalsed serverid.

root@zevenet:~# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20c /*  FARM_app_0_  */ to:192.168.1.10:443
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20d /*  FARM_app_1_  */ to:192.168.1.11:443

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

. conntrack tabel haldab sihtkoha aadressi tõlget ja DNAT režiimis haldab tagasiside pakett marsruutide kaudu, kuna koormuse tasakaalustaja on taustaprogrammide vaikevärav.

Juhul kui NATvõi SNAT nagu see on üldtuntud, haldab conntrack lisaks sihtkoha aadressi tõlkele ka lähte-aadressi tõlget. Sel juhul on ainus erinevus DNAT on see, et vastatud paketti ei halda marsruutimissüsteem, vaid conntracki tabel. Nii leiame rakendusest vaid 2 uut reeglit POSTROUTING nati tabeli ahel, et täita MASQUERADING põllumajandusettevõtte virtuaalse IP-aadressiga.

root@zevenet:~# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20c /*  FARM_app_0_  */ to:192.168.1.10:443
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20d /*  FARM_app_1_  */ to:192.168.1.11:443

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20c /*  FARM_app_0_  */ to:192.168.101.250
SNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x20d /*  FARM_app_1_  */ to:192.168.101.250

Edasised kahtlused? Küsi meililistis!

Jaga:

Dokumentatsioon GNU Vaba Dokumentatsiooni Litsentsi tingimustel.

Kas see artikkel oli kasulik?

seotud artiklid