Tech

L4 Switch

onesixx 2008. 9. 1. 15:13
반응형

OSI 7 Layer (네트워크의 7개의 계층적 모델)

Layer1  Physical Layer, 물리적인 접속에 대한 정의. 통상적인 Ethernet기술.

Layer2  Data link Layer이며, 데이터를 전달하는 방법에 대한 정의. 위와 같이 Ethernet이 Layer2에도 해당하는 기술이며, 실제로 우리가 접근할 수 있는 내용은 MAC어드레스라는 것이 있습니다. Ethernet에서 데이터를 전달하기 위해서 사용되는 것인데, Ethernet에서는 데이터 전달을 위해서 Frame이란 단위로 전송하며, Frame 헤더에 출발지 MAC어드레스와 도착지MAC어드레스가 포합됩니다. Ethernet은 기본적으로 브로드케스팅 방식으로 데이터를 전송하며, 어느 Host가 Frame을 발생시키면, 그것은 네트워크의 모든 호스트에 전달되며, 자신의 MAC어드레스가 들어있을 경우에만 받습니다.

Layer3  Network Layer. TCP/IP 프로토콜에서는 IP프로토콜에 해당하며, 모든 호스트들이 MAC어드레스와는 별도로 IP어드레스를 가지고, 통신을 할 수 있습니다. IP에서는 네트워크 구성이 가능하게 됩니다. (Layer2에서는 네트워크가 아닌 하나의 모임(?)만이 가능하죠..)

Layer4 Transport레이어입니다. TCP/IP 프로토콜에서 TCP프로토콜에 해당합니다. Transport레이어에서 드디어 정상적인 데이터 전송이 가능하게 됩니다. 그래서 IP레이어에서 전달 받은 데이터를 정확하게 받았는지 검증하고, 응답을 할 수 있게 됩니다. (IP레이어는 일방적인(?) 전송만 가능하죠..)

Layer5~7 Session, Presentation, Application이 존재하는데. TCP/IP에서는 우선 뭉쳐서 Application레이어라고 보시면 됩니다.

 

L2 , L3 , L4 스위치

Switch
어떤 기준에 의하여 패킷의 흐름을 결정해 주는 장치

L2 Switch 
layer2즉 이더넷부분만 보고 패킷흐름을 결정
간단히 말해 L2 Switch 는 MAC 어드레스를 읽고 처리한다는 뜻입니다. 위 에서 Ethernet은 기본적으로 Broadcasting을 사용한다고 했는데, 이것을 개선한 것이 L2 Swtich 입니다. 백날 Broadcasting하던 것을 MAC어드레스를 읽어서 해당 호스트에만 전달할 수 있게 해주게 되어 호스트간의 Dedicated 대역폭을 제공하게 됩니다. 물론, Broadcasting을 할 경우 10/100/1000Mbps를 모두 공유하므로, 하나의 허브에 N개의
호스트를 넣으면, 1/N의 속도로 각각 통신을 할 수 있게 됩니다.

L3 Swtich
IP에 따라 (즉 라우팅까지) 패킷흐름을 결정

되겠죠는 위의 OSI 7 Layer 의 "Layer 3" 를 이해하고 처리 할 수 있는 녀석이 라고 생각하시면 됩니다. 간단히 말해 IP(네트워크 주소)를 읽고 처리 한다는 뜻입니다. IP는 네트워크를 구분하는데 사용되니 L3스위치는 네트워크간의 전송을 할 수 있다는 말이 됩니다. 이것은 실제로 라우터 에서 하던 라우팅에 해당하며, 라우터를 대신하는 기능으로 사용됩니다.

L4 Swtich
그 이상, (세션에 따라서) 패킷흐름을 결정
L4 는 OSI 7 Layer 의 Layer 4 를 이해 하고 처리 한다는걸 말씀 안드려고 아실수 있으시겠 지요. Layer 4 의 TCP를 읽고 처리한다는 뜻이며 TCP의 정보를 읽고 처리(제어)를 할 수 있다는 뜻입니다. 주로 활용되는 분야는 Load Balancing 과 같은 기능이며, 웹서버의 포트로 많이 사용되는 TCP 80번 포트의 트래픽과 같은 것을 인지할 수 있으며 그 트래픽을 연결된 서버팜의 서버들에게 균등하게 할당할 수 있게 됩니다.

예를 들어 (사실 말도 안되는 예지만) 총 4대를 클러스터링된 ftp서버에 L4스위치를 장착함.
1번 서버에서 자료를 받던 넘이 갑자기 2번 서버로 패킷을 요청하면? 없는 세션에서 머가 날라오니 꼬이겠죠?
L4는 한번 자신을 거친 세션을 기억하고 있다가 그 방향으로 패킷을 항상 보내줍니다.

이제 더 나아가 L7은 패킷 내용까지 보고 패킷을 보낼것인지, 보낸다면 어디로 보내는지 볼 수 있습니다.
L4는 서버 클러스터링 같은 경우에 쓴다

L5~7 Switch 
L패킷 내용까지 보고 패킷흐름을 결정
4 Switch의 영역을 를 좀더 세분화하여 처리하거나 서버단의 Application 에서 처리 하던것을 Switch 에서 처리해보자~ 라는 개념으로 만들어진 것입니다.

예를 들어 (사실 말도 안되는 예지만) 총 4대를 클러스터링된 ftp서버에 L4스위치를 장착함.
1번 서버에서 자료를 받던 넘이 갑자기 2번 서버로 패킷을 요청하면? 없는 세션에서 머가 날라오니 꼬이겠죠?
L4는 한번 자신을 거친 세션을 기억하고 있다가 그 방향으로 패킷을 항상 보내줍니다.

 

방화벽은 말 그대로 원치 않는 네트워크의 접근을 일차적으로 걸러 줍니다. 방화벽도 L3~L7개념???이 있는 것 같습니다.
저위의 개념은 제가 임의로 만든 것이고 일차적으로 NAT로 방화벽 만드는 것은 L3죠.
더 나아가 L4 - Stateful packet inspection 그 이상 deep packet inspectio이라는 기술로 많이 알려졌죠

전혀 다른 개념이죠?

외부망 - L4스위치 - 방화벽 - L4 스위치 - IDS - .....위의 구성도를 보니 아마 방화벽 클러스터링을 하시는 군요!

말씀드렸지만 방화벽은 in 과 out이 단 하나입니다.요넘이 하는 일은 그저 이 데이터가 옳은 녀석인지 옳지 않은 녀석이지
룰에 의해 판단만 하는 것입니다.스위치는 이 데이터가 룰에 의해서 어떻게 가야할지 판단해 주는 것입니다.

위에서 한번 예를 들어봅죠.

우선 stateful packet inspection의 예로 ack공격을 이야기 합니다.
보통 syn패킷을 겁나게 보내는 dos공격은 방화벽에서 아주 수월하게
syn개수를 세서 막을 수 있습니다. 그러나 ack의 경우는 좀 다릅니다.
무조건 ack필드만 on해서 플루딩을 시도하면 멍청한 방화벽의 경우
그저 보냅니다.
그런데 spi의 기능을 가지고 있는 방화벽이라면 이 패킷이 우선
내가 가지고 있는 세션테이블에서 무엇에 해당하는 지 보고
말도 안되는 넘이면 바로 버립니다. 이것이 방화벽이 하는 일이죠

그럼 비싼 L4를 쓰는 이유는?
자 저기서 방화벽이 한 3개쯤 된다고 한다면
멍청한 L3로는 패킷을 어디로 보내야 할지 모릅니다.
1번 방화벽에 syn을 보내 세션을 저장해 두었는데
2번 방화벽에 (스위치가) ack를 보낸다면 2번 방화벽은 당연히
이넘은 잘못된 녀석이라고 보고 막습니다.
그럼 멍청한 L3가 라운드 로빙으로 하나씩 패킷을 골고루 준다면
절대로 tcp는 불가능 하겠죠?

그래서 L4스위치가 나와서
아 이 패킷은 전에 1번으로 간 세션으로갈 패킷이로구나! 저쪽으로 줘야지~
하는 것입니다.

물론 L4스위치도 필터링을 함으로 방화벽의 기능을 약간 포함할 수 있으나
가장 간단한 syn flooding조차 가진 L4스위치를 못 봤습니다 ^^
L4의 필터링과 비싼 방화벽의 필터링 기능을 함부로 비교하면 안되죠
방화벽의 경우 ip, port만을 헤아리는게 아니라 각 서비스별로 특화된 기능들이
많답니다.

 

 

 




서버 로드 발랜싱 기능은 여러 대의 서버를 마치 하나의 서버처럼 동작시킴으로써 성능을 쉽게 확장하게 하고, 서버의 장애 발생시에도 타 서버로 운영이 가능하게 함으로써 신뢰성을 향상시키기 위한 방법입니다. 여러 대의 서버들을 리얼서버(real server)라고 부르고, 리얼서버들의 집합을 클러스터 (cluster) 혹은 가상 서버(virtual server)라고 부릅니다.

위의 구성에서는 웹 서비스 (HTTP, TCP port = 80)와 이메일 서비스 (SMTP, TCP port=25)의 두 가지 종류에 대하여 서버 로드 발랜싱을 제공합니다.
SLB 구성방법은 설치의 관점에 따라 여러 가지로 분류할 수 있습니다.
우선 네트워크 설정을 기준으로 브릿지 (bridge mode)방식과 라우팅(routing mode) 방식으로 나눌 수 있는 반면에,
물리적인 포트 연결 차원에서 외팔 (one-armed) 방식과 양팔(two-armed ) 방식이 있습니다.

기준
세부 방식

네트워크 설정
브릿지 (bridge mode) 방식
라우팅 (routing mode) 방식

포트 연결
외팔 (one-armed) 방식
양팔 (two-armed ) 방식

브릿지 방식은 가상서버와 리얼서버의 네트워크 대역이 동일한 경우를 말하며, 라우팅 방식는 두 네트워크 대역이 다른 경우를 의미합니다. 예를 들어 위의 그림에서 가상서버의 IP (VIP)는 192.168.10.1/24 이고, 각각의 리얼서버는 동일한 192.168.10.x/24 (x=2,3,4) 입니다. 따라서, 위 그림 < SLB의 기본구성 >은 브릿지 방식의 SLB 입니다.
브릿지 방식인 경우에는 외부의 고객이나 관리자가 가상서버 및 리얼서버로 직접적인 접속이 가능합니다. 또한, 리얼서버에서도 인터넷과 같은 외부망으로 접속이 가능합니다. 브릿지 방식은 관리의 편리성이 높인 반면에, 외부의 보안에 취약하다는 것이 단점입니다.
라우팅 방식에서는 가상서버와 리얼서버의 네트워크 대역이 다릅니다. 따라서, L4/L7 스위치는 양변의 네트워크 대역에 대한 게이트웨이 역할을 수행합니다. 라우팅 방식에서는 리얼 서버들의 기본 게이트웨이 주소는 L4/L7 스위치 자신이 됩니다. 이러한 구성에서는 리얼서버로 직접적인 접속을 막기 위하여 사설 IP 대역을 많이 사용하고 있습니다. 외부에서 접속하기 위해서는 각 리얼서버에 NAT를 수행합니다. 라우팅 방식은 관리의 편리성이 낮은 반면에, 외부의 보안에 강하다는 장점이 있습니다.

포트연결을 기준으로 하는 분류에서 외팔방식이란 SLB를 위하여 L4에 연결되는 포트 구성이 한 개의 포트를 사용하는 경우를 말합니다. 위 그림 < SLB의 기본구성 >에서는 두개의 포트를 사용하므로 양팔방식으로 분류됩니다. 반면, 외팔방식의 구성에서는 1개의 포트만 사용하여 SLB를 수행합니다. 일반적으로 외팔방식과 양팔방식의 데이터의 흐름은 차이가 없으며 몇 개의 포트를 사용하느냐가 관건입니다. 한 개의 포트를 사용하더라도 내부적으로 가상적인 두개의 포트를 사용하는 것과 동일합니다.



캐싱 리다이렉션 기능은 내부 망에서 외부 인터넷으로 향하는 웹(WWW) 트래픽을 가로채어 캐싱 서버에게 전달하는 기능을 말합니다. 내부의 호스트 컴퓨터는 캐싱서버를 프락시로 등록할 필요가 없이 투명한(trapsparent) 방식으로 캐싱 서비스를 할 수 있습니다. 또한, 캐싱 리다이렉션을 통하여 웹 트래픽 (TCP=80 port)만을 처리하기 때문에 캐싱 서버에서 불필요한 패킷 처리를 막아주어 응답속도를 빠르게 해 줄 수 있습니다.

투명 케싱 서버의 동작은 아래와 같습니다. 사용자의 웹 트래픽 (Url 페이지) 요구는 L4스위치에 의하여 우선적으로 캐싱 서버에 보내집니다. 해당 트래픽의 URL이 캐싱 서버에 저장되어 있으면(hit), 캐싱 서버가 즉시 응답하여준다. 만약 캐싱 서버에 저장된 내용이 아니라면(missed) 캐싱 서버가 프락시로 동작하여 해당 URL에서 페이지를 요청하여 다시 사용자에게 전달하고, 캐싱 서버 자체에 저장합니다.
경우에 따라, RTSP (Real time streaming protocol:TCP,UDP=554), NNTP (Net news transfer protocol: TCP=119) 트래픽에 대하여 그룹을 등록하여 서비스 할 수 있습니다. 인터넷 트래픽 뿐아니라 임의의 응용프로그램에 대하여 포트(port) 설정을 통하여 리다이렉션 서비스를 구현할 수 있습니다.
L4 스위치는 패킷 재전송 (Packet Redirection) 기술에 기반하고 있습니다. 이 패킷 재전송기술을 이용해 투명한 캐싱 서버동작이 가능하며 또한, 로드 발랜싱 기능을 통하여 캐싱 서버들의 집합(서버군)을 관리하는 것이 가능합니다. 이런 방법으로 하나의 L4 스위치에 캐싱 서버를 여러 대로 확장 할 수 있습니다.


인터넷의 보안을 생각할 때 방화벽은 필수 사항입니다. 그러나, 방화벽 한 대로 서비스를 제공할 경우, single point of failure가 발생할 수 있습니다. 또한, 애플리케이션 수준의 프록시를 이용하여 높은 보안 수준을 제공하기 위해서 많은 부하가 방화벽에 걸리게 되어 응답시간의 지연을 초래합니다. 이러한 문제점들은 최근의 전자상거래 환경에서는 사업을 수행하는데 치명적인 걸림돌이 될 수 있습니다.
FWLB의 목적은 크게 아래의 3가지로 요약할 수 있습니다.
- 하나 이상의 방화벽을 추가하여 가용성 및 성능을 향상시킵니다.
- 동적인 로드 분산을 통해 응답속도를 향상시킵니다.
- 시스템 변경 없이 방화벽 확장 및 관리가 쉽도록 합니다.
FWLB 를 구성하기 위하여, 공인망(Public network)과 사설망(Private network) 사이에 2대의 L4 스위치(상위 L4 스위치, 하위 L4 스위치)를 배치합니다. 상위 L4 스위치는 외부망에서 내부망으로 들어오는 패킷에 대한 부하 분산을 담당하며, 하위 L4 스위치는 내부망에서 외부망으로 나가는 패킷에 대한 부하 분산을 담당합니다.
FWLB의 중요한 특징 중 하나는 동일한 세션에 속하는 패킷들은 모두 동일한 방화벽으로 전송되어야 한다는 점입니다. 각 방화벽은 세션의 상태정보를 통하여 패킷 필터링을 수행하기 때문에, 현재 상태에 맞지않은 패킷이 들어올 경우 부적합한 패킷(illegal packet)으로 간주하여 삭제하게 됩니다. 즉, L4 스위치에 의해 들어오고 나가는 패킷이 서로 다른 방화벽으로 전송되면 세션을 유지할 수 없게 됩니다. 따라서, 상위 L4 스위치와 하위 L4 스위치는 입출력되는 패킷의 경로를 기억하여 경로를 지속적으로 유지할 수 있도록 합니다.
또한 DMZ 구간이 있는 경우에도 경로를 지속적으로 유지하기 위해여 DMZ 구간에 별도의 L4 스위치가 배치됩니다.



VPN 게이트웨이는 네트워크상의 배치와 패킷흐름이 방화벽과 유사한 점이 많지만, 부하분산 입장에서는 매우 다른점이 존재합니다. VPN 게이트웨이는 일반적으로 server/client 개념으로 본점-본점간 혹은 본점-지점간의 배치되는데, 특히 본점-지점간의 구성이 일반적입니다. 본점-지점 구성에서 본점으로의 터널링 접속은 지점단의 VPN게이트웨이에서 접속하는 방법과 원격 엑세스 사용자 (remote access users)에서 접속하는 방법이 있습니다. 어떤 경우이든, 본점에 접속하기 위하여 사용하는 터널링 프로토콜은 IPSEC, L2TP, PP2P 등이 있습니다. 아래의 그림은 본점에 VPN 게이트웨이들에 대하여 VPNLB를 구성한 예입니다.


L4 스위치의 네트워크 부하 분산기능 (NLB)는 다수의 인터넷 접속 라인을 사용하여 네트워크의 속도와 안정성을 개선하기 위한 기능입니다. NLB기능은 기존에 L4 스위치에서 제공하는 기능은 아니었으나, 사용자의 요구에 의하여 점차로 확산되는 추세라고 할 수 있습니다.

하나의 ISP(Internet Service Provider)의 인터넷 접속라인을 사용할 경우, 실제 기업이나 학교의 인터넷 접속 환경에서는 아래와 같은 문제점들이 발생합니다.
- 네트워크의 속도가 느려 업무에 지장이 많습니다.
- 네트워크의 다운으로 인한 인터넷 사용의 곤란 발생합니다.
- 네트워크 속도 업그레이드에 대한 경제적 부담이 가중합니다.
- 불필요한 트래픽으로 업무상 중요한 인터넷 사용에 지장이 발생합니다.

NLB는 L4 스위치를 이용하여 여러 개 ISP들의 전용선들과 ADSL, Cable Modem 등의 초고속 인터넷 회선을 결합시켜 단일한 전용선처럼 사용하게 합니다. 또한 인터넷 트래픽을 효율적으로 관리하여 불필요한 특정 회선에 대한 트래픽 집중현상을 완화하여, 트래픽 처리 효율을 최적화합니다.

위 그림은 내부망에서 인터넷을 사용하기 위해서 ISP1의 전용선 A, ISP2의 전용선 B 및 케이블 라인, ISP3의 ADSL 라인을 사용한 경우입니다.
내부망의 IP 대역은 전용선 A의 IP대역과 전용선 B의 IP 대역을 동시에 사용하거나, 사설 IP대역을
설 정하여 PAT (Port Address Translation) 구성을 설정하여 사용할 수 있습니다. 특히, 케이블 인터넷 라인이나 ADSL/VDSL 라인에서 할당된 IP가 적은 경우에 내부망이 PAT를 사용하여 IP를 공유하도록 처리합니다. NLB에서 사용되는 부하 분산 방식에는 기존의 round-robin, hashing, least connection, maximum response time, maximum bandwidth 방식을 사용할 수 있습니다.
아래의 표는 E1 라인 하나만을 사용하는 회사에서 8Mbps ADSL 3개의 라인을 추가하여 NLB구성을 하였을 때 대역폭의 증가율을 보여주고 있습니다.

또한, NLB의 장점은 인터넷 회선의 고장율을 획기적으로 개선할 수 있다는 것입니다. 위의 예에서
E1 라인과 서로 다른 ISP의 ADSL 라인 3개를 동시에 사용하는 경우에 `전용선은 한 달에 한번 고장이 발생하고, ADSL 초고속 인터넷은 10일에 한번 고장이 발생한다`고 가정할 때 고장율은 다음과 같습니다.

NLB를 이용한 회선 고장율의 개선

구분
고장율
비고

NLB 적용전 (E1 only)
1/30
한달에 한번 고장발생

NLB 적용후 (E1 + 1*ADSL)
1/300
1년에 한번 고장발생

NLB 적용후 (E1 + 3*ADSL)
1/30000
82년에 한번 고장발생

 

참고>
http://blog.naver.com/pkd0427?Redirect=Log&logNo=140054370348

http://suns.tistory.com/entry/L2-L3-L4-%EC%8A%A4%EC%9C%84%EC%B9%98%EB%8A%94-%EB%AC%B4%EC%8A%A8-%EA%B8%B0%EB%8A%A5%EC%9D%84-%ED%95%A0%EA%B9%8C
http://kldp.org/node/35803
http://iksu.egloos.com/391861

http://blog.empas.com/son1942/12821911

 

 

L4/L7 스위치

최경섭 기자 kschoi@dt.co.kr | 입력: 2006-12-28 15:08

L2ㆍL3 등 기존스위치보다 보안 강화
인터넷 트래픽 '해결사'
L4스위치 - 장비 가용ㆍ확장성 향상수단 인기
L7스위치 - 패킷 URL정보 등 차별화 서비스

한정된 IT 자원을 가지고 인터넷 트래픽을 얼마나 효율적으로 관리하는가는 IT 업계에 중요한 이슈입니다.
특히, 과거 `1ㆍ25 인터넷 대란'과 대규모 웜바이러스의 출현 이후, 네트워크 보안에 대한 관심이 늘어나면서 기존 네트워크 장비에 보안기능을 대폭 강화한 제품수요가 크게 늘어나고 있는 실정입니다.
최근 인터넷 트래픽관리 및 보안환경이 강조되고 있는 상황에서, 기존 L2/3/4 스위치에 비해 보안기능을 대폭 강화한 네트워크 장비가 L4/L7(Layer4/7) 스위치입니다.
과거에는 통상적으로 패킷의 MAC 주소나 IP 주소를 이용하여 패킷을 전달하는 역할을 수행하는 L2/L3 제품이 주류를 이뤘습니다. 그 이후 급속히 증가하고 있는 인터넷 트래픽을 효율적으로 처리하기 위하여 몇년전부터 L4 스위치가 등장해, 트래픽 부하를 분산하고 지능적인 트래픽 관리 기능을 제공하고 있습니다.
L4 스위치는 서버 및 네트워크 장비의 가용성과 확장성을 높이기 위한 수단으로 각광을 받고 있습니다. L7 스위치는 기존 L4 스위치가 제공하는 기본 기능 이외에 최근 사회적인 문제가 되고 있는 네트워크 보안문제(웜바이러스, 이메일 바이러스, DoS/DDoS 공격 등)를 어느 정도 해결해 줄 수 있는 차세대 제품입니다.
L7 스위치는 애플리케이션 스위치(Application Switch), 콘텐CM스위치(Content Switch), 다계층스위치(Multi-Layer Switch) 등 다양한 이름으로 불리는데, 이는 L7 정보가 주로 애플리케이션과 직접 연관이 있고 패킷의 내용을 분석하여 이를 바탕으로 패킷에 대한 부하분산, 리디렉션, 필터링 등을 수행하기 때문에 자연스럽게 붙여진 이름입니다.
L7 스위치는 통상적으로 L4 스위치의 연장선상에서 출발했지만 L4 스위치가 처리할 수 없는 일들을 수행합니다. L4 스위치의 경우 통상적으로 TCP/UDP 포트정보와 같은 레이어 4 정보를 이용해 패킷을 관리하는 기능을 수행하는 것을 비롯해 서버 및 네트워크 장비에 대한 부하분산 기능을 주로 제공합니다.
그러나 L4 스위치는 VoIP나 P2P와 같은 중요 애플리케이션과 같이 다양한 형태의 패킷 내용을 살펴보기 어렵고 또한 사용자의 IP가 수시로 바뀌는 경우 해당 사용자에 대한 연속적인 서비스를 제공하기 어렵다는 단점을 가지고 있습니다.
L7 스위치에서는 L4 가 갖고 있는 이러한 문제점들을 해결하기 위해 패킷의 IP/Port 정보뿐만 아니라 패킷의 URL 정보, 쿠키, 플레이로드 정보 등을 종합적으로 검사하여 사용자별로 연속적이고 차별화된 서비스를 제공해줄 수 있습니다.

L7 스위치가 기존의 L4 스위치와 가장 차별화되는 부문은 L4 스위치가 Layer4 정보(TCP/UDP port)를 바탕으로 패킷을 분류하고 원하는 서버나 장비로 전송하는 반면 L7 스위치는 패킷의 내용을 보고 이를 바탕으로 패킷을 전달한다는 것입니다. 패킷의 내용을 살펴보고 이를 바탕으로 적절한 서버를 선택할 수 있습니다.
L7 스위치 기능 중에 최근 큰 주목을 받고 있는 부문이 네트워크 보안분야입니다. L7 스위치는 기존의 L4 스위치가 갖고 있던 기능들을 모두 수용하면서 불필요한 트래픽에 대한 차단이나 네트워크에 대한 공격을 완화시켜줌으로써 서버와 네트워크의 가용성을 한층 향상시켜줍니다. 특히, L7 스위치는 웜이나, E-메일 바이러스와 같이 특정한 패턴을 갖고 있는 패킷으로서 서버나 네트워크에 불필요한 트래픽을 제어합니다.
최근에는 L7 스위치업체와 바이러스 차단업체들이 서로 제휴를 통해 새로운 바이러스 패턴이 나타날 경우 이를 빠르게 업데이트해 네트워크를 보호하고 있습니다.
또한, DoS/DDoS 와 같이 비정상적으로 트래픽이 과도하게 집중되어 서버가 정상적으로 서비스되지 못하게 만드는 부분도 해결해 줍니다.
이를 해결하기 위해서 L7 스위치에서는 트래픽의 유입수준을 일정정도로 제한하여 서버가 항상 정상적인 서비스를 할 수 있게끔 보호해 준다.
물론 L4스위치만이 L7 스위치로 발전할 수 있는 것은 아닙니다. 기존 파이어월, IPS, QoS 등 엔터프라이즈 네트워크에서 각각의 고유기능을 담당하고 있는 장비들도 패킷의 내용을 분석하는 기능을 갖고 있으며, 이를 바탕으로 여러가지 보안정책과 대역폭조절 정책을 수행해왔습니다. 따라서 이들 장비도 각각의 고유기능에 부하분산기능을 결합하고, 대용량의 트래픽을 빠르게 처리할 수 있는 스위치 구조를 도입한다면 얼마든지 L7 스위치 형태로 발전할 수 있습니다.
L7 스위치를 생산하고 있는 업체로는 시스코, 노텔, 라드웨어, 파운드리, F5 등이 있고 국내에서는 파이오링크가 L7 스위치시장에 진입해 대등하게 경쟁하고 있습니다. 한국IDC 자료에 따르면, 전 세계적으로 콘텐츠 네트워킹 시장의 46%를 L7 스위치가 점유하며 총 36억달러 이상의 매출을 보일 것으로 전망했습니다. 국내에서도 2005년도에 1000억원 규모를 훌쩍 뛰어넘는 시장으로 성장할 것으로 보고 있습니다.
최경섭기자@디지털타임스

 

http://www.dt.co.kr/contents.html?article_no=2006122802012031693002

 

 

L4와 Client IP

 

전에 L4를 사용하여 Client IP 변경 문제가 있었던 것에 대한 해답.

어제 HTTP 스터디 준비 중 관련 해답이 있었다며

한차장님이 알려주시려 했던 내용이 무엇이었을지 궁금해져서 오늘 책을 찾아보았다.

(불행히도 한차장님이 진행하시는 HTTP 스터디가 원래하고 있던 디자인패턴 스터디와 겹쳐버려 참석을 할 수가 없었다. 하지만 HTTP 책은 갖고 싶다고 때(?)를 썼더니 이승훈 수석님 것을 울 팀장님의 중개로 얻을 수 있었다. ㅋ)

Redirection의 여러 방법 중에

IP Address Forwarding 방식이 있는데, 이것이 layer 4 방식이다.

L4는 단순히 중개 역할만 해서는 안되는데..

TCP Connection 위에서는 서버로부터의 응답(response)을 반드시 받아야 하기 때문이다.

(그래야 TCP/IP 프로토콜을 준수 하는 거니까.)

이와 같은 상황에서 L4를 구성하는 방법은 두가지다.

- Full NAT : 이 방식은 Client IP (책에서는 source IP)를 L4 자신의 IP(책에서는 switch)로 바꿔치기 하는 것이다. 그러면 실 서버와 switch 사이의 네트워크 구성에 관계 없이 무조건 실 서버의 응답이 switch로 전달 될 수 있다.  요것은 IP Forwading device(Switch 같은)가 가운데서 destination과 source IP를 계속 바꿔 가며 중개 방송을 한다. 그러나 이렇게 하면 실제 운영서버에서는 Client IP는 알 수 없게 된다. 누가 보내든Switch 의 IP로 오게 된다.

- Half NAT : 위와 좀 다른 방식인데.. Source IP를 바꾸지 않고, 원래의 Client IP로 그대로 남겨두는 방식이다. 즉 Switch가 받아서 아무것도 건드리지 않고 곧바로 서버로 Bypassing를 하는 것이다. 이 방법은 실 서버가 Client IP를 얻을 수 있다. 단점은, client와 server간의 네트워크를 좀 컨트롤 해야한다는 것이다.

자, 그럼 내가 겪었던 ACL 문제는 어떤 것이었을까?

문제를 단순하게 보면

실 서버에서 Client IP 주소가 L4의 주소로 변경되어 오는 바람에 ACL에서 Fail 난 것이었다.

그렇다면, L4 방식이 Full NAT이었기 때문이었을까?

안타깝게도 그렇게 단순한 문제가 아니었다. ㅠ.ㅠ (결과적으로 보면 어이없을 정도로 단순하지만.)

문제의 L4는 Half NAT 방식이었다.

그것도 Bypassing을 확실히 지킨다.

왜나하면 동일 조건 하에서 어떤 것은 client IP가 제대로 찍힌다.

그렇담, 그 문제를 좀 더 자세히 들여다 볼 필요가 있다.

현재 L4에 바인딩된 실 서버가 2개이다.

Client는 L4로 직접 TCP 연결을 하거나, L4로 HTTP 요청을 할 수 있다.

문제가 된 것은 HTTP요청이었다.

HTTP는 L4로 바인딩 된 실 서버에 설치가 되어 있었고,

들어온 요청을 내부적으로 다시 L4로 TCP 연결을 하여 서비스를 제공하는 방식이다.

그렇다, 저기 밑줄 쫙~ 끄여진데서 문제가 되었다.

L4에 바인딩된 서버에서 다시 L4로 요청하면 어떤 일이 벌어질까?

서버에서 ifconfig를 해보자.

가장 밑에 lo:0 으로 L4 주소가 설정되어 있는 것이 보인다.

그것도, Loop back으로!

Half NAT에서 Server와 Client간 네트워크를 컨트롤 할 수 있어야 한다는 것이 이런 뜻이었나보다;

즉, L4 바인딩이 되어 있는 서버에서 L4로 요청을 하면 L4로 가지도 않고 자기 자신으로 돌아오는 것이다.

서버가 특정 IP로 통신을 할 때 제일 먼저 가까운 쪽을 체크하는데 lo:0에 자기의 IP가 설정이 되어 있으니까 자기자신으로 L4의 IP를 Client IP로 가져오는 것이다.

이건 간단한 telnet을 이용해서도 확인할 수 있다.

192.168.0.1 이란 서버가 있다고 가정하자.

telnet localhost

로 접속하면 Client의 IP는 127.0.0.1 로 보인다.

telnet 192.168.0.1

로 접속하면 Client의 IP는 192.168.0.1 로 보인다.

따라서, L4가 loopback으로 설정되어 있는 상황에서 L4로 접근을 시도 하면 client IP가 L4로 보일 것이다.

L4로 요청할 수 있도록 강제하는 방법은 서버의 네트워크 인터페이스 중 eth0만 사용하도록 하는 방법이 있다고 한다. 난 그냥 L4의 ACL을 풀어버리는 방법으로 이슈를 종료하였다.

물론 각 서버의 네트워크 환경이 다를 수 있고, 이것은 특수한 상황에 지나지 않을 수도 있지만.

모르고 당한게 하도 억울해서 올려본다. ㅜ.ㅜ

또, 적어두면 나중에 기억나지 않을 때 유용하길 바라는 마음에서. ㅎㅎ

[출처] L4와 Client IP|작성자 걍이

반응형

'Tech' 카테고리의 다른 글

FTP  (0) 2008.09.09
ERWin  (0) 2008.09.08
Google Earth  (0) 2008.09.01
ScribeFire : Firefox Add-ons  (0) 2008.08.27
FixIEDef  (0) 2008.08.26
MKV (Matroska Video)  (0) 2008.08.16