본문 바로가기
server/Cent_os

centos nat lvs구성

centos nat lvs구성

 

리눅스 가상 서버란, 한대의 서버로 증가하는 인터넷 사용자를 처리하기가 힘들어 지면서 고가용성 서버를 구축하기 위해 리눅스 머신을 로드 발랜스 하도록 해주는 운영시스템이다.
만약 하나의 노드에서 처리량이 너무 많아서 서비스가 불가능할 경우 간단히 하나의 노드를 병렬 구성으로 추가 함으로써 부하분산을 하도록 하는 것을 말한다. 공개소스로서 이러한 기능을 담당하고 있는 것이다.
 (참조 http://www.linux.co.kr)


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   


반응형

'server > Cent_os' 카테고리의 다른 글

Telegram_cli를 이용한 centos cil 메신저 이용하기  (0) 2016.03.03
ModSecurity (owasp core rule) setting  (0) 2015.05.27
geo-ip setting  (0) 2015.05.27
glusterfs3.5 설치  (0) 2015.05.27
zlib install(1.2.8)  (0) 2015.05.27