티스토리 뷰
복사한 곳
L2 스위치, L3 스위치, L4 스위치에 대해 알아 보기로 합시다.
이 스위치에 대해서 알고 싶다면 우선 OSI 7 Layer 부터 알고 있어야 합니다.
아래 그림은 전산과 학생들이 학부과정에서 열심히 배우는 네트워크의 7개의 계층적
모델을 나타낸 것입니다.
Layer1 은 Physical Layer이며, 물리적인 접속에 대한 정의가 내려져 있습니다.
그리고 우리가 통상적으로 사용하는 Ethernet이란 기술이 Layer1에 해당하는 기술이라고
생각하시면 됩니다.
Layer2 는 Data link Layer이며, 데이터를 전달하는 방법에 대한 정의가 내려져 있습니다.
그리고 위와 같이 Ethernet이 Layer2에도 해당하는 기술이며, 실제로 우리가 접근할 수
있는 내용은 MAC어드레스라는 것이 있습니다. Ethernet에서 데이터를 전달하기 위해서
사용되는 것인데, Ethernet에서는 데이터 전달을 위해서 Frame이란 단위로 전송하며,
Frame 헤더에 출발지 MAC어드레스와 도착지MAC어드레스가 포합됩니다.
Ethernet은 기본적으로 브로드케스팅 방식으로 데이터를 전송하며,
어느 Host가 Frame을 발생시키면, 그것은 네트워크의 모든 호스트에 전달되며,
자신의 MAC어드레스가 들어있을 경우에만 받습니다.
Layer3 는 Network레이어입니다.
TCP/IP 프로토콜에서는 IP프로토콜에 해당하며,
모든 호스트들이 MAC어드레스와는 별도로 IP어드레스를 가지고, 통신을 할 수 있습니다.
IP에서는 네트워크 구성이 가능하게 됩니다.
(Layer2에서는 네트워크가 아닌 하나의 모임(?)만이 가능하죠..)
Layer4 는 Transport레이어입니다.
TCP/IP 프로토콜에서 TCP프로토콜에 해당합니다.
Transport레이어에서 드디어 정상적인 데이터 전송이 가능하게 됩니다.
그래서 IP레이어에서 전달 받은 데이터를 정확하게 받았는지 검증하고,
응답을 할 수 있게 됩니다.
(IP레이어는 일방적인(?) 전송만 가능하죠..)
Layer5 이후에는 Session, Presentation, Application이 존재하는데.
TCP/IP에서는 우선 뭉쳐서 Application레이어라고 보시면 됩니다.
다시 원점을 돌아가서, 이제 스위치에 대한 설명을 바로 이해 하실 수 있으실 것입니다.
우선 L2 Switch 라고 하면 OSI 7 Layer 의 "Layer 2" 를 이해하고 처리 할 수 있는 녀석
이라고 생각하시면 됩니다. 간단히 말해 L2 Switch 는 MAC 어드레스를 읽고 처리한다는
뜻입니다.
위에서 Ethernet은 기본적으로 Broadcasting을 사용한다고 했는데, 이것을 개선한 것이 L2 Swtich 입니다. 백날 Broadcasting하던 것을 MAC어드레스를 읽어서 해당 호스트에만 전달할 수 있게 해주게 되어 호스트간의 Dedicated 대역폭을 제공하게 됩니다. 물론, Broadcasting을 할 경우 10/100/1000Mbps를 모두 공유하므로, 하나의 허브에 N개의
호스트를 넣으면, 1/N의 속도로 각각 통신을 할 수 있게 됩니다.
다음으로 L3 Swtich 는 위의 OSI 7 Layer 의 "Layer 3" 를 이해하고 처리 할 수 있는 녀석이
라고 생각하시면 됩니다. 간단히 말해 IP(네트워크 주소)를 읽고 처리 한다는 뜻입니다.
IP는 네트워크를 구분하는데 사용되니 L3스위치는 네트워크간의 전송을 할 수 있다는 말이 됩니다. 이것은 실제로 라우터 에서 하던 라우팅에 해당하며, 라우터를 대신하는 기능으로
사용됩니다.
다음으로 잘 알고 계신 L4 Swtich 도 간단히 설명 드리겠습니다.
L4 는 OSI 7 Layer 의 Layer 4 를 이해 하고 처리 한다는걸 말씀 안드려고 아실수 있으시겠
지요.
Layer 4 의 TCP를 읽고 처리한다는 뜻이며 TCP의 정보를 읽고 처리(제어)를 할 수 있다는 뜻입니다. 주로 활용되는 분야는 Load Balancing 과 같은 기능이며, 웹서버의 포트로 많이 사용되는 TCP 80번 포트의 트래픽과 같은 것을 인지할 수 있으며 그 트래픽을 연결된 서버팜의 서버들에게 균등하게 할당할 수 있게 됩니다.
L4 Swtich 다음으로 L5~7 Switch 가 있는데 이는 앞서 설명드린 L4 Switch의 영역을 를 좀더 세분화하여 처리하거나 서버단의 Application 에서 처리 하던것을 Switch 에서 처리해보자~ 라는 개념으로 만들어진 것입니다.
스위치라는 것은 어떤 기준에 의하여 패킷의 흐름을 결정해 주는 장치인데요
L2스위치라는 것은 layer2즉 이더넷부분만 보고 패킷흐름을 결정해주고요
L3는 IP에 따라서 - 즉 라우팅까지 되겠죠?
L4는 그 이상, 세션에 따라서 패킷의 흐름을 결정해주는 장치입니다.
예를 들어 /이런 경우는 사실 말도 안되지만/
ftp서버를 총 4대를 클러스터링을 하고 있는
이떄 L4스위치를 쓰빈다.
1번 서버에서 자료를 받던 넘이 갑자기 2번 서버로 패킷을 요청하면?
없는 세션에서 머가 날라오니 꼬이겠죠?
L4는 한번 자신을 거친 세션을 기억하고 있다가 그 방향으로 패킷을 항상 보내줍니다.
이제 더 나아가 L7은 패킷 내용까지 보고 패킷을 보낼것인지, 보낸다면 어디로 보내는지 볼 수 있습니다.
제가 알기론 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년에 한번 고장발생