3. OS이야기/ 01. Administration

L4 mode 비교 (Proxy vs. DSR) 및 Linux에서 L4모드 변경(Proxy -> DSR) 방법

OSSW(Open Source System SoftWare 2014. 7. 29. 16:01

1. Proxy Mode

§ 개념

ü Server에서 Client로 응답시 L4를 경유하여 응답하는 구조

§ 동작구조

ü Client → L4 → Server → L4 → Client

ü L4에서 Server로 패킷 전달 시, Client IP L4장비의 IP로 변경되어 전달됨

§ 장점

ü 같은 서브넷이 아닌 다른 IP대역이더라도 L4수용이 가능함

ü 하나의 포트에 여러가지 리얼 포트로 전달해 줄 수 있는 멀티 포트 기능 지원 가능함

§ 단점

ü 모든 트래픽이 L4를 경유하기 때문에 인터페이스 병목현상 및 장비에 부하를 줄 수 있음

ü Client IP를 전달하기 위해서는 L4에서 HTTP헤더 값을 추가하고 관련 가이드에 따른 AP 수정으로 지원 가능함(HTTP/SSL프로토콜만 지원 가능함)

2. DSR Mode

§ 개념

ü 서버에서 클라이언트로 응답시, L4를 경유하지 않고 Direct로 응답하는 구조

§ 동작구조

ü Client → L4 → Server → Client

ü L4에서 서버로 패킷 전달 시, Client IP가 그대로 Server로 전달됨

§ 장점

ü L4를 경유하지 않고 Client로 바로 응답하여 L4장비 부하를 줄여 줌, 응답속도가 더 빠름

ü Client IP를 그대로 전달하여 서버에 로그를 남기거나 접근 제어를 할 수 있음

§ 단점

ü 같은 서브넷 안에 있는 서버(IP) 대역이 아닐 경우 L4수용이 어려움

ü 하나의 포트에서 여러가지의 리얼 포트로 전달해 줄 수 있는 멀티포트 기능지원이 어려움

 

 

v Linux에서 L4모드 변경(Proxy -> DSR)방법

1. Loopback IP L4 VIP추가

# vi /etc/sysconfig/network-scripts/ifcfg-lo:0

TYPE=Ehternet

DEVICE=lo:0

BOOTPROTO=none

ONBOOT=yes

NETMASK=255.255.255.255

IPADDR=192.168.10.13

# ifup lo:0

 

2. ARP 커널 파라미터 변경

# vi /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all_art_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

# sysctl -p

 

 

3. MultiNIC(eth1) 설정

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=dhcp

ONBOOT=yes

GATEWAY=192.168.10.1

# ifup eth1

 

4. Default Gateway 변경

# route del default gw 172.27.0.1 dev eth0

# route add default gw 192.168.10.1 dev eth1

# service network restart

 

5. Client IP logging 확인

[변경전]

# tail -f access_20140728.log     //L4 VIP Logging

 192.168.20.1 - - [29/Jul/2014:08:53:00 +0900] "GET /pdf/img/pdf_bg_top.gif HTTP/1.1" 200 353

192.168.20.1- - [29/Jul/2014:08:53:54 +0900] "-" 408 -

192.168.20.1- - [29/Jul/2014:08:53:54 +0900] "-" 408 -

192.168.20.1- - [29/Jul/2014:08:54:12 +0900] "GET /favicon.ico HTTP/1.1" 404 10

 

[변경후]

# tail -f access_20140729.log     //실제 Client IP Logging

  14.47.***.* - - [29/Jul/2014:08:53:00 +0900] "GET /pdf/img/pdf_bg_top.gif HTTP/1.1" 200 353

  110.70.**.** - - [29/Jul/2014:08:53:54 +0900] "-" 408 -

  110.70.**.***- - [29/Jul/2014:08:53:54 +0900] "-" 408 -

  183.98.**.** - - [29/Jul/2014:08:54:12 +0900] "GET /favicon.ico HTTP/1.1" 404 10

 

Posted by 김소령