2024. április 23., kedd

Gyorskeresés

LVS SNAT

Írta: | Kulcsszavak: LVS . NAT . SNAT . ipvsadm . xt_ipvs

[ ÚJ BEJEGYZÉS ]

Gyors feljegyzés LVS SNAT-ról. Sok doksi van DR-ről és sima NAT is akad a man-ban. De mi van, ha valami tűzfalas dolog miatt a source-ot is át kell írni? Lehet már egy ideje, de a doksi nem igazán bőbeszédű.

Kell egy VIP (192.168.1.219) és hozzá legalább egy RIP (192.168.1.198) és persze a service portja. Minimális beállítás masqueradinggal (-m), ami a cél IP-t át írja.

ipvsadm -A -t 192.168.1.219:80
ipvsadm -a -t 192.168.1.219:80 -r 192.168.1.198:80 -m

IP forward és conntrack kell a továbbiakhoz, illetve az xt_ipvs modul:

modprobe xt_ipvs

echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/vs/conntrack

Utolsó lépésként a VIP:port-ra érkező kéréseknél a real server felé menő csomagogk forrás IP-jét átírjuk a VIP-re. Így elég egy IP is. Lehetne két interface is (pl eth1-en érjük el a backendeket) amikor az eth1 címét adjuk meg a --to-source után.

iptables -t nat -A POSTROUTING -m ipvs --vaddr 192.168.1.219 --vport 80 -j SNAT --to-source 192.168.1.219

Ha van tűzfal is, akkor azt is ki kell nyitni.

iptables -A INPUT -d 192.168.1.219 -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT

Az eredmény. Csomag útja, ahol már az LB-Real server közötti kommunikációban a forrás és a cél IP-t is NATolja a gép:

kliens (192.168.1.206) -> VIP (192.168.1.219)
LB (192.168.1.219) -> Real server (192.168.1.198)
Real server (192.168.1.198) -> LB (192.168.1.219)
VIP (192.168.1.219) -> kliens (192.168.1.206)

tcpdumpon még jobban követhető:

[root@lvs ~]# tcpdump -i any port 80 -nnn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
18:35:50.283682 IP 192.168.1.206.64488 > 192.168.1.219.80: Flags [S], seq 2208642510, win 65535, options [mss 1360,nop,wscale 5,nop,nop,TS val 128531414 ecr 0,sackOK,eol], length 0
18:35:50.283735 IP 192.168.1.219.64488 > 192.168.1.198.80: Flags [S], seq 2208642510, win 65535, options [mss 1360,nop,wscale 5,nop,nop,TS val 128531414 ecr 0,sackOK,eol], length 0
18:35:50.283921 IP 192.168.1.198.80 > 192.168.1.219.64488: Flags [S.], seq 3663095089, ack 2208642511, win 28960, options [mss 1460,sackOK,TS val 7277084 ecr 128531414,nop,wscale 7], length 0
18:35:50.283939 IP 192.168.1.219.80 > 192.168.1.206.64488: Flags [S.], seq 3663095089, ack 2208642511, win 28960, options [mss 1460,sackOK,TS val 7277084 ecr 128531414,nop,wscale 7], length 0
18:35:50.284839 IP 192.168.1.206.64488 > 192.168.1.219.80: Flags [.], ack 1, win 4128, options [nop,nop,TS val 128531415 ecr 7277084], length 0
18:35:50.284852 IP 192.168.1.219.64488 > 192.168.1.198.80: Flags [.], ack 1, win 4128, options [nop,nop,TS val 128531415 ecr 7277084], length 0
18:35:50.285363 IP 192.168.1.206.64488 > 192.168.1.219.80: Flags [P.], seq 1:78, ack 1, win 4128, options [nop,nop,TS val 128531415 ecr 7277084], length 77
18:35:50.285376 IP 192.168.1.219.64488 > 192.168.1.198.80: Flags [P.], seq 1:78, ack 1, win 4128, options [nop,nop,TS val 128531415 ecr 7277084], length 77

Hozzászólások

(#1) MineFox54


MineFox54
őstag

Végre egy értelmesnek látszó téma, a sok roncs után ;] ;]

[ Szerkesztve ]

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.