centos nat lvs구성 Linux


centos nat lvs구성

real server eth0 222.239.255.41 eth1 192.168.0.2

DEVICE=eth0
BOOTPROTO=static
BROADCAST=222.239.255.127
HWADDR=00:0C:29:E1:0D:86
IPADDR=222.239.255.41
NETMASK=255.255.255.128
NETWORK=222.239.255.0
ONBOOT=yes

DEVICE=eth1
NETMASK=255.255.255.0
GATEWAY=222.239.255.41
IPADDR=192.168.0.2

vip1 eth0 192.168.0.3

DEVICE=eth0
NETMASK=255.255.255.0
GATEWAY=192.168.0.2
IPADDR=192.168.0.3

vip1 eth0 192.168.0.4

DEVICE=eth0
NETMASK=255.255.255.0
GATEWAY=192.168.0.2
IPADDR=192.168.0.4


real server nat 구성

[root@cy ~]$ echo 1 > /proc/sys/net/ipv4/ip_forward

[root@cy ~]$iptables -A FORWARD -o eth0 -j ACCEPT
[root@cy ~]$iptables -A FORWARD -o eth1 -j ACCEPT

 

 
[root@cy ~]$iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

 
혹은 위에 방법 말고 아래 같이 직접 설정이 가능하다.e
[root@cy ~]$iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
[root@cy ~]$iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.2-254


lvs for nat 구성


yum 을 이용하여, lvs 유틸인 ipvsadm 을 설치 한다.

 
[root@cy ~]$yum -y install ipvsadm*

 
초기 lsv서버 구성을 다음과 같이 한다. (rr 방식)
(-s 옵션은 스케줄링 방식을 의미한다.
rr  - 라운드로빈
lc   -  LIFO
wlc- 가중치 기반 LIFO
wrr- 가중치 기반 라운드 로빈)

 
아래 옵션은 라운드 로빈 기반으로 작동 하게 설정 하였다.

 
[root@cy ~]$ipvsadm -A -t 222.239.255.41:80 -s rr
[root@cy ~]$ipvsadm -a -t 222.239.255.41:80 -r 192.168.0.3:80 -m
[root@cy ~]$ipvsadm -a -t 222.239.255.41:80 -r 192.168.0.4:80 -m

 
-L옵션을 이용하여, 구성 내용을 확인 할 수 있다.

 
[root@cy ~]$ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  222.239.255.41:http lc
  -> 192.168.0.4:http             Masq    1      0          0         
  -> 192.168.0.3:http             Masq    1      0          0       

 
222.239.255.41을 80 포트로 접속 하게 되면 다음과 같이 라운드 로빈 방식으로 
분배되어 connection 이 이루어 진다.

 
[root@cy ~]$ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  222.239.255.41:http lc
  -> 192.168.0.4:http             Masq    1      0          50        
  -> 192.168.0.3:http             Masq    1      0          50    

 
-C 옵션으로 Clear가 가능하다.

 
[root@cy ~]$ipvsadm -C  

 
이번에는 -w 옵션으로 weight 값을 변경이 가능하다.

 
[root@cy ~]$ipvsadm -A -t 222.239.255.41:80 -s wrr
[root@cy ~]$ipvsadm -a -w 2 -t 222.239.255.41:80 -r 192.168.0.3:80 -m                 
[root@cy ~]$ipvsadm -a -t  222.239.255.41:80 -r 192.168.0.4:80 -m  

 
[root@cy ~]$ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  222.239.255.41:http lc
  -> 192.168.0.4:http             Masq    1      0          0         
  -> 192.168.0.3:http             Masq    1000   0          0 

 
[root@cy ~]$ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  222.239.255.41:http lc
  -> 192.168.0.4:http             Masq    1      1          46        
  -> 192.168.0.3:http             Masq    1000   1          105   




Leave Comments