ํ ์๋ฒ์ ์ฑ๋ฅ์ด ๋ชจ๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ์ ์ถฉ๋ถํ์ง ์๊ณ ์ํํธ์จ์ด ์ ์กฐ์ ์ฒด๊ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ ๊ณตํ์ง ์๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ๋ก๋ ๋ฐธ๋ฐ์ ๊ตฌ๋งค๋ถํฐ ์์ฒญ ์ ์ ํ๊น์ง ๋ค์ํ ์ต์ ์ด ์์ต๋๋ค. ์ด๋ ๊ฒ์ด ์ณ์์ง๋ ๊ธฐ์กด ์กฐ๊ฑด์ ๊ณ ๋ คํ์ฌ ์ํฉ์ ๋ฐ๋ผ ๊ฒฐ์ ๋์ด์ผ ํฉ๋๋ค. ์ด ๊ธ์์๋ ์์ฐ์ด ์ ํ๋์ด ์๊ณ ๋ฌด๋ฃ ์๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฌด์์ ํ ์ ์๋์ง ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
์๋ฒ ์ค ํ๋์ ๋ถํ๋ฅผ ์ค์ฌ์ผ ํ๋ ์์คํ ์ผ๋ก InfoWatch์ DLP(์ ๋ณด ์ ์ถ ๋ฐฉ์ง ์์คํ )๋ฅผ ์ ํํ์ต๋๋ค. ๊ตฌํ์ ํน์ง์ "์ ํฌ"์๋ฒ ์ค ํ๋์ ๋ฐธ๋ฐ์ ๊ธฐ๋ฅ์ ๋ฐฐ์นํ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ง๋ฉดํ ๋ฌธ์ ์ค ํ๋๋ ์์ค NAT(SNAT)๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ํ์ํ ์ด์ ์ ๋ฌธ์ ๊ฐ ์ด๋ป๊ฒ ํด๊ฒฐ๋์๋์ง ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ฐ๋ผ์ ์ด๊ธฐ์ ๊ธฐ์กด ์์คํ ์ ๋ ผ๋ฆฌ ๋ค์ด์ด๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉ์ ์ปดํจํฐ์ ICAP ํธ๋ํฝ, SMTP, ์ด๋ฒคํธ๋ Traffic Monitor(TM) ์๋ฒ์์ ์ฒ๋ฆฌ๋์์ต๋๋ค. ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ TM์์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ํ ๋ถํ๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ์ง๋ง TM ์์ฒด์ ๋ถํ๊ฐ ์ปธ๋ค. ์ด๋ DM(Device Monitor) ์๋ฒ์ ๋ฉ์์ง ๋๊ธฐ์ด ๋ชจ์๊ณผ TM์ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ก๋๋ฅผ ํตํด ๋ถ๋ช ํด์ก์ต๋๋ค.
์ผํ ๋ณด๋ฉด ์ด ๋ฐฉ์์ ๋ค๋ฅธ TM ์๋ฒ๋ฅผ ์ถ๊ฐํ๋ฉด ICAP๋ DM ์ค ํ๋๋ก ์ ํํ ์ ์์ง๋ง ๋ด๊ฒฐํจ์ฑ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์๋ฃจ์ ์ค๋ช
์ ํฉํ ์๋ฃจ์
์ ์ฐพ๋ ๊ณผ์ ์์ ์ฐ๋ฆฌ๋ ๋ฌด๋ฃ๋ก ๋ฐฐํฌ๋๋ ์ํํธ์จ์ด๋ฅผ ์ ํํ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ฌ์ฑํ๊ณ ์ ํ๋ ๊ฒ(TM์ ๋ถํ๋ฅผ ์ค์ด๊ณ ํ์ฌ ์์ค์ ๋ด๊ฒฐํจ์ฑ ์ ์ง)์ ๋ค์ ๊ตฌ์ฑํ์ ๋ฐ๋ผ ์๋ํ์ด์ผ ํฉ๋๋ค.
๊ธฐ๋ฅ์ ํ์ธํ ๊ฒฐ๊ณผ ์๋ฒ์ ์ค์น๋ ์ฌ์ฉ์ ์ ์ RedHat ์ด์ ๋ธ๋ฆฌ๊ฐ SNAT๋ฅผ ์ง์ํ์ง ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ SNAT๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ด์ค๋ ํจํท๊ณผ ์ด์ ๋ํ ์๋ต์ด ๋์ผํ IP ์ฃผ์์์ ์ ์ก๋๋์ง ํ์ธํ๋ ค๊ณ ๊ณํํ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค์ ๊ทธ๋ฆผ์ด ํ์๋ฉ๋๋ค.
์ด๊ฒ์ ์ฉ๋ฉ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด VIP(๊ฐ์ IP) ์ฃผ์๋ก ํจํท์ ๋ณด๋ธ ํ๋ก์ ์๋ฒ๋ VIP๋ก๋ถํฐ ์๋ต์ ๊ธฐ๋ํ์ง๋ง ์ด ๊ฒฝ์ฐ ๋ฐฑ์ ์ผ๋ก ๋ณด๋ธ ์ธ์ ์ ๋ํ ์๋ต์ IP2์์ ์ต๋๋ค. ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๋ค. ์๋์ ๊ฐ์ด ๋ฐฑ์ ์ ๋ ๋ค๋ฅธ ๋ผ์ฐํ ํ ์ด๋ธ์ ๋ง๋ค๊ณ ๋ ๊ฐ์ TM ์๋ฒ๋ฅผ ๋ณ๋์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํด์ผ ํ์ต๋๋ค.
์ค์
์ฐ๋ฆฌ๋ ICAP, SMTP, TCP 9100 ์๋น์ค๋ฅผ ๊ฐ์ถ ๋ ๋์ ์๋ฒ์ ๊ทธ ์ค ํ๋์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ค์นํ๋ ๋ฐฉ์์ ๊ตฌํํ ๊ฒ์ ๋๋ค.
ํ์ค ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ผ๋ถ ํจํค์ง๊ฐ ์ ๊ฑฐ๋ ๋ ๊ฐ์ RHEL6 ์๋ฒ๊ฐ ์์ต๋๋ค.
๊ท ํ์ ๋ง์ถฐ์ผ ํ๋ ์๋น์ค:
โข ICAP โ TCP 1344;
โข SMTP โ TCP 25.
DM์ ํธ๋ํฝ ์ ์ก ์๋น์ค โ tcp 9100.
๋จผ์ ๋คํธ์ํฌ๋ฅผ ๊ณํํด์ผ ํฉ๋๋ค.
๊ฐ์ IP ์ฃผ์(VIP):
โข IP: 10.20.20.105.
์๋ฒ TM6_1:
โข ์ธ๋ถ IP: 10.20.20.101;
โข ๋ด๋ถ IP: 192.168.1.101.
์๋ฒ TM6_2:
โข ์ธ๋ถ IP: 10.20.20.102;
โข ๋ด๋ถ IP: 192.168.1.102.
๊ทธ๋ฐ ๋ค์ ๋ ๊ฐ์ TM ์๋ฒ์์ IP ์ ๋ฌ์ ํ์ฑํํฉ๋๋ค. ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ RedHat์ ์ค๋ช
๋์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ค ์๋ฒ๋ฅผ ๋ฉ์ธ ์๋ฒ๋ก, ์ด๋ค ์๋ฒ๋ฅผ ๋ฐฑ์ ์๋ฒ๋ก ์ฌ์ฉํ ๊ฒ์ธ์ง ๊ฒฐ์ ํฉ๋๋ค. ๋ง์คํฐ๋ TM6_1, ๋ฐฑ์ ์ TM6_2๋ก ์ค์ ํฉ๋๋ค.
๋ฐฑ์ ์ ์๋ก์ด ๋ฐธ๋ฐ์ ๋ผ์ฐํ ํ ์ด๋ธ๊ณผ ๋ผ์ฐํ ๊ท์น์ ์์ฑํฉ๋๋ค.
[root@tm6_2 ~]echo 101 balancer >> /etc/iproute2/rt_tables
[root@tm6_2 ~]ip rule add from 192.168.1.102 table balancer
[root@tm6_2 ~]ip route add default via 192.168.1.101 table balancer
์ ๋ช ๋ น์ ์์คํ ์ด ์ฌ๋ถํ ๋ ๋๊น์ง ์๋ํฉ๋๋ค. ์ฌ๋ถํ ํ์๋ ๊ฒฝ๋ก๊ฐ ์ ์ง๋๋๋ก ํ๋ ค๋ฉด ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค. /etc/rc.d/rc.local., ๊ทธ๋ฌ๋ ์ค์ ํ์ผ์ ํตํด ๋ ์ข์ต๋๋ค /etc/sysconfig/network-scripts/route-eth1 (์ฐธ๊ณ : ์ฌ๊ธฐ์๋ ๋ค๋ฅธ ๊ตฌ๋ฌธ์ด ์ฌ์ฉ๋์์ต๋๋ค).
๋ TM ์๋ฒ ๋ชจ๋์ keepalived๋ฅผ ์ค์นํ์ญ์์ค. ๋ฐฐํฌ ์์ค๋ก rpmfind.net์ ์ฌ์ฉํ์ต๋๋ค.
[root@tm6_1 ~]#yum install https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/keepalived-1.2.13-5.el6_6.x86_64.rpm
Keepalived ์ค์ ์์๋ ์๋ฒ ์ค ํ๋๋ฅผ ๋ง์คํฐ๋ก ํ ๋นํ๊ณ ๋ค๋ฅธ ํ๋๋ฅผ ๋ฐฑ์ ์ผ๋ก ํ ๋นํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ํด VIP์ ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค. ์ค์ ํ์ผ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ์์น์ ์์ต๋๋ค. /etc/keepalived/keepalived.conf.
TM1 Server ์ค์
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 151
advert_int 1
authentication {
auth_type PASS
auth_pass example
}
virtual_ipaddress {
10.20.20.105
}
}
virtual_server 10.20.20.105 1344 {
delay_loop 6
lb_algo wrr
lb_kind NAT
protocol TCP
real_server 192.168.1.101 1344 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 1344
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.102 1344 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 1344
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.20.20.105 25 {
delay_loop 6
lb_algo wrr
lb_kind NAT
protocol TCP
real_server 192.168.1.101 25 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 25
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.102 25 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 25
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.20.20.105 9100 {
delay_loop 6
lb_algo wrr
lb_kind NAT
protocol TCP
real_server 192.168.1.101 9100 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 9100
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.102 9100 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 9100
nb_get_retry 3
delay_before_retry 3
}
}
}
TM2 Server ์ค์
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass example
}
virtual_ipaddress {
10.20.20.105
}
}
ํธ๋ํฝ ๊ท ํ์ ๋ง์ถ๋ LVS๋ฅผ ๋ง์คํฐ์ ์ค์นํฉ๋๋ค. ๊ตฌ์ฑ์ ์๋ฒ๊ฐ ๋ ๊ฐ๋ฟ์ด๋ฏ๋ก ๋ ๋ฒ์งธ ์๋ฒ์ ๋ฐธ๋ฐ์๋ฅผ ์ค์นํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
[root@tm6_1 ~]##yum install https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/ipvsadm-1.26-4.el6.x86_64.rpm
๋ฐธ๋ฐ์๋ ์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ ๊ตฌ์ฑํ keepalived์ ์ํด ๊ด๋ฆฌ๋ฉ๋๋ค.
๊ทธ๋ฆผ์ ์์ฑํ๊ธฐ ์ํด ๋ ์๋ฒ ๋ชจ๋์์ ์๋ ์์์ ์ํด keepalived๋ฅผ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
[root@tm6_1 ~]#chkconfig keepalived on
๊ฒฐ๋ก
๊ฒฐ๊ณผ ํ์ธ
๋ ์๋ฒ ๋ชจ๋์์ keepalived๋ฅผ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
service keepalived start
VRRP ๊ฐ์ ์ฃผ์์ ๊ฐ์ฉ์ฑ ํ์ธ
VIP๊ฐ ๋ง์คํฐ์ ์๋์ง ํ์ธํฉ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฑ์ ์๋ VIP๊ฐ ์์ต๋๋ค.
ping ๋ช ๋ น์ ์ฌ์ฉํ์ฌ VIP์ ๊ฐ์ฉ์ฑ์ ํ์ธํฉ๋๋ค.
์ด์ ๋ง์คํฐ๋ฅผ ์ข
๋ฃํ๊ณ ๋ช
๋ น์ ๋ค์ ์คํํ ์ ์์ต๋๋ค ping
.
๊ฒฐ๊ณผ๋ ๋์ผํ๊ฒ ์ ์ง๋์ด์ผ ํ๋ฉฐ ๋ฐฑ์ ์ VIP๊ฐ ํ์๋ฉ๋๋ค.
์๋น์ค ๋ฐธ๋ฐ์ฑ ํ์ธ ์ค
์๋ฅผ ๋ค์ด SMTP๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. 10.20.20.105์ ๋ํ ๋ ๊ฐ์ ์ฐ๊ฒฐ์ ๋์์ ์์ํ๊ฒ ์ต๋๋ค.
telnet 10.20.20.105 25
๋ง์คํฐ์์๋ ๋ ์ฐ๊ฒฐ์ด ๋ชจ๋ ํ์ฑํ๋์ด ์๊ณ ๋ค๋ฅธ ์๋ฒ์ ์ฐ๊ฒฐ๋์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
[root@tm6_1 ~]#watch ipvsadm โLn
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ TM ์๋ฒ ์ค ํ๋์ ๋ฐธ๋ฐ์๋ฅผ ์ค์นํ์ฌ TM ์๋น์ค์ ๋ด๊ฒฐํจ์ฑ ๊ตฌ์ฑ์ ๊ตฌํํ์ต๋๋ค. ์ฐ๋ฆฌ ์์คํ ์ ๊ฒฝ์ฐ ์ด๋ฅผ ํตํด TM์ ๋ํ ๋ถํ๊ฐ ์ ๋ฐ์ผ๋ก ์ค์ด๋ค์๊ณ , ์ด๋ฅผ ํตํด ์์คํ ์ ์ฌ์ฉํ์ฌ ์ํ ํ์ฅ์ด ๋ถ์กฑํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด ์๋ฃจ์ ์ ์ถ๊ฐ ๋น์ฉ ์์ด ์ ์ํ๊ฒ ๊ตฌํ๋์ง๋ง UDP ํธ๋ํฝ ๊ท ํ์ ์กฐ์ ํ ๋์ ๊ฐ์ด ๊ตฌ์ฑ์ ๋ง์ ์ ํ๊ณผ ์ด๋ ค์์ด ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ถ์ฒ : habr.com