1. Network Basic


ISO OSI Reference Model (OSI 7 Layers)

ISO에서 개방형 네트워크에 대한 기준을 정의한 네트워크 모델이다.

TCP/IP Protocol Suite

OSI 7계층 모델을 간소화한 네트워크 모델이다.

  • Application
    애플리케이션 프로토콜 지원 계층 (OSI L5, 6, 7)
  • Transport
    Host 간 data 전송 계층 (OSI L4)
  • Internet
    Network packet 전송 제어 계층 (OSI L3)
  • Network Access(Network Interface)
    인접 노드 간 데이터 전송 담당 계층 (OSI L2)

2. Switch

Network Topology

  • Bus
    모든 신호가 네트워크 전체에 양방향으로 전파되며, 연결된 모든 장치가 동일한 신호를 수신하게 된다. 신호 반사를 방지하기 위해 Core 회선의 양 종단에 종단장치(Terminator)를 배치해야 하며, 네트워크 확장 시 전체를 중지시켜야 하는 단점이 있지만 구축 비용이 저렴한 특징을 가진다.
  • Ring
    제시된 내용은 장치들이 순환 방식으로 연결되어 Ring 형태를 형성하는 Ring Topology이다. 데이터가 순환 경로를 따라 전달되므로 모든 장치가 동등한 접근 권한을 가지며, 데이터 전송 시간이 한정되어 있어 충돌 가능성이 적고 높은 부하를 처리할 수 있다. 하지만 하나의 장치에 장애가 발생하면 전체 네트워크가 중단되는 취약점이 있다.
  • Star
    중앙 네트워크 장비에 다른 장치들을 연결하는 방식으로 대표적인 예로 ethernet LAN이 있다.
    중앙 장비를 통해서만 다른 장치들과 통신이 가능하고 한 장치에 문제가 생겨도 network 전체에 영향을 주지 않는다.
  • Tree
    star와 bus를 결합한 형태로 중앙 루트와 루트에 연결된 여러 star network로 구성된다.
    확장성이 뛰어나고 관리적인 측면에서 장점이 있지만 root에 문제가 생기면 network 전반에 큰 영향을 미칠 수 있음
  • Mesh
    그물망처럼 여러 장치가 연결되어 있는 형태로 한 노드에 장애가 생겨도 다른 노드에 영향을 미치지 않고, 트래픽을 분산시킬 수 있다는 장점이 있지만, 하나의 노드가 추가 삭제될 때마다 여러 회선에 영향을 받기 때문에, 노드의 추가 삭제가 어렵고, 회선이 비효율적으로 많아 구축 비용이 높다는 단점이 있다.

Switch

MAC 주소 기반으로 동작하는 Layer2 장비이다. Network를 통해 들어온 packet을 MAC 주소를 검사하고 선택적으로 받는다.
주요 기능은 다음과 같다:
1. MAC Address Learning
2. Flooding
3. Forwarding / Filtering
4. Aging

Flooding

수신된 패킷의 목적지 MAC 주소가 자신의 MAC 주소 테이블에 없을 경우, 해당 패킷을 수신 포트를 제외한 모든 포트로 흘려보내는 동작을 하는데, 이를 플러딩(Flooding)이라고 한다.

플러딩은 정보가 없는 상황에서 통신을 가능하게 하지만, 이 동작이 과도해지면 스위치의 성능 저하를 초래한다. 따라서 스위치는 들어오는 패킷의 출발지 MAC 주소를 학습하여 테이블을 생성함으로써 불필요한 플러딩을 줄이고 효율적으로 동작한다.

Address learning

스위치는 수신된 패킷의 출발지(Source) MAC 주소와 해당 패킷이 들어온 포트 번호를 이용하여 MAC 주소 테이블에 기록하고 유지하는 과정을 통해 주소 학습을 한다. 이 학습 과정은 출발지 주소만을 활용하기 때문에 브로드캐스트(Broadcast)멀티캐스트(Multicast) 주소에 대한 학습은 불가능하다.

Forwarding / Filtering

포워딩은 스위치로 수신된 패킷의 목적지(Destination) MAC 주소를 확인하여 MAC 주소 테이블과 비교한 후, 해당 주소에 연결된 특정 포트로 패킷을 전송하는 과정이다.

이와 반대로 필터링은 포워딩 과정에서 다른 포트로 패킷을 보내지 않고 차단하는 것을 의미한다.
스위치는 이러한 동작을 통해 여러 포트에서 동시에 통신이 진행될 때 서로 영향을 주지 않도록 하며, 이 두 과정은 유니캐스트(Unicast) 통신에 대해서만 수행된다.


VLAN

VLAN은 하나의 물리 스위치에서 여러 네트워크를 나눠 사용할 수 있는 기술로, 물리적 배치와 상관없이 LAN을 논리적으로 분할, 구성한다.

  • port 기반 VLAN
    Switch의 port를 이용해 위치를 논리적으로 분할해 사용하는 방식이다.
    그림을 보면 1, 2번 port를 VLAN10으로, 3, 4번 port를 VLAN20으로 분할하여 각 port에 연결한 기기들은 분할 된 네트워크에 위치하게 된다.
    port 기반 VLAN은 Trunk, Access 두 가지 방식으로 나뉜다.

  • Trunk
    여러 개의 VLAN(Virtual Local Area Network) 이 존재할 때, VLAN 간 통신을 위해 VLAN 개수만큼 물리적인 포트를 연결하는 것은 포트 낭비를 초래한다.
    이 문제를 해결하기 위해 도입된 것이 VLAN 태깅 기능이며, 트렁크 포트(Trunk Port) 라고 불리는 하나의 포트를 통해 여러 VLAN의 트래픽을 함께 전송할 수 있게 해준다.
    이 기능은 전송 시 이더넷 프레임 중간에 VLAN ID를 삽입하여 사용하며, 스위치 테이블에도 해당 필드가 추가되어 VLAN을 식별하고 포트 낭비를 줄인다.


STP (Spanning Tree Protocol)

STP는 네트워크 내 루프(Loop)를 확인하고 적절한 포트를 사용하지 못하게 하여 루프를 예방하는 메커니즘이다.
이를 위해 스위치들은 BPDU (Bridge Protocol Data Unit) 라는 제어 메시지를 통해 서로 정보를 공유하며, 이 정보를 바탕으로 전체 네트워크 트리(Network Tree) 를 구성하고 루프를 탐지하고 방지한다.

BPDU에는 스위치의 고유 ID와 같은 정보가 담겨 교환되며, 이를 통해 네트워크 내의 루프 지점이 파악되면 해당 지점을 차단하여 루프를 예방한다.
STP는 루프 방지를 위해 세 단계로 동작하는데, 첫째, BPDU의 Bridge ID를 비교하여 가장 작은 ID를 가진 스위치를 루트 스위치(Root Switch) 로 선정하고, 둘째, 루트가 아닌 스위치 중 루트로 가는 최단 경로 포트(Root Port) 를 선정하며, 셋째, 스위치 간 연결을 위한 포트를 선정한다.

Switch Port State and Modified Process

신규 switch가 동작 중인 switch port에 연결되면 STP는 바로 traffic이 흐르지 않도록 차단한다. 우선 BPDU를 기다려 학습하고 구조를 파악하여 loop가 발생하지 않는걸 확인하면 traffic이 흐르도록 하고, loop가 발생하면 차단한 상태를 유지한다.

차단 상태에서 활성화 상태까지 다음 4가지로 구분 가능하다.

  1. Blocking
    BPDU를 받지 못하거나 후순위 BPDU를 받았을 때 port는 listening 상태가 된다.
  2. Listening
    전송 상태로 변경되는 것을 결정 및 준비하는 단계이다.
  3. Learning
    해당 port를 forwarding하기로 결정하고, 바로 동작 되도록 MAC 주소를 learning하고 있는 상태이다.
  4. Forwarding
    packet forwarding 단계다. 이 네 가지 과정을 모두 거치는데 약 50초 정도 시간이 소요된다고 한다. 이 경우 DHCP에 접속할 때 부팅 단계에서 IP를 요청하지만 switch port가 forwarding 상태가 아니어서 할당받지 못하는 문제가 있다.

cf) Port Fast

시간 지연 문제로 인해 IP할당이 불가능한 상황이 있기 때문에 일반 pc, server에 연결되는 port들은 4개의 단계를 거치지 않고 바로 할당되는 Port Fast를 설정할 수 있다.
하지만 loop가 발생할 수 있기 때문에 해당 port에 BPDU가 들어오면 차단하는 BPDU Guard 같은 기술이 사용 되어야 한다.

Advenced STP (RSTP, MST)

STP는 루프 예방 메커니즘이지만, BPDU 전달 및 수렴 과정에 필요한 30~50초 가량의 긴 시간이 소요되어, TCP 기반 애플리케이션의 통신이 끊어질 수 있는 문제가 있다.
또한, 여러 VLAN 환경에서는 각 VLAN별로 STP를 개별 수행해야 하므로 네트워크 부하가 크다는 단점이 발생한다.

  • RSTP(Rapid Spanning Tree Protocol)
    기존 STP는 말단 switch에서 root까지 변경 보고를 보내고 다시 말단 switch까지 보내는 과정을 거쳤지만 RSTP는 topology 변경이 일어난 switch 자신이 모든 network에 직접 전파할 수 있어 시간을 대폭 줄일 수 있다.

  • MST(Multiple Spanning Tree)
    CST (Common Spanning Tree) 는 VLAN 개수에 상관없이 한 번의 계산만 수행하여 스위치 부하가 적지만, 하나의 포트와 회선만 활성화되어 비효율적이고 VLAN별 최적 경로를 고려하지 못한다.
    이를 보완한 PVST (Per VLAN Spanning Tree) 는 VLAN마다 별도의 STP가 동작하여 로드 쉐어링이 가능하지만, VLAN 수에 비례하여 스위치에 과도한 부하를 준다.
    궁극적으로 MST (Multiple Spanning Tree) 는 여러 VLAN을 하나의 그룹(리전) 으로 묶어 그룹당 하나의 STP를 동작시켜, 더 적은 트리를 사용함으로써 PVST의 높은 부하 문제를 해결하면서도 로드 쉐어링 기능을 활용할 수 있게 되었다.


3. Router

Router 동작 방식과 역할

라우터는 Layer 3(네트워크 계층) 에서 동작하는 장비로, 수신된 패킷의 목적지(Destination) IP 주소를 확인하여 자신의 라우팅 테이블(Routing Table) 을 이용해 패킷을 최적의 경로로 포워딩한다. 만약 목적지 주소가 라우팅 테이블에 없다면 해당 패킷을 드롭(Drop) 한다. 포워딩 시 라우터는 기존의 L2 헤더를 제거하고 새로운 L2 헤더를 생성하며, 이러한 라우터의 핵심 동작 방식은 경로 지정, 브로드캐스트 제어, 프로토콜 변환을 포함한다.

경로 지정

라우터의 핵심 기능은 라우팅과 포워딩 두 가지이다. 라우터는 자신이 속한 네트워크의 경로 정보를 수집하여 라우팅 테이블(Routing Table) 을 만들고(라우팅), 수신된 패킷을 이 테이블을 이용해 최적 경로로 지정하여 전송한다(포워딩).

이때, 라우터는 테이블에 있는 정보만을 사용하므로 정확한 경로 정보를 얻는 것이 중요하며, 경로 정보를 획득하는 방식은 관리자가 직접 설정하는 정적(Static) 방식과 라우팅 프로토콜을 이용하는 동적(Dynamic) 방식의 두 가지로 나눌 수 있다.

Broadcast Control

스위치는 목적지 정보가 없을 때 플러딩(Flooding) 을 통해 모든 포트에 패킷을 전송하지만, 라우터는 원격 네트워크로의 전송을 목표로 개발되어 목적지 정보가 라우팅 테이블에 있을 때만 포워딩하고, 정보가 없으면 패킷을 드롭(Drop) 하여 불필요한 패킷이 네트워크를 차지하는 것을 방지한다.

또한, 라우터는 멀티캐스트 정보를 학습하지 않으며, 결정적으로 브로드캐스트 패킷을 전달하지 않는 브로드캐스트 제어 기능을 수행한다. 이 기능 덕분에 브로드캐스트 트래픽이 많은 네트워크 환경에서 라우터를 사용하여 네트워크를 분리하면 전반적인 성능을 높일 수 있다.

Protocol 변환

Router의 다른 기능은 서로 다른 protocol로 구성된 network를 연결하는 것이다. 현재는 ethernet으로 통일됐지만 과거에는 LAN, WAN 같이 전혀 다른 protocol을 사용하는 network가 많았다.

Router는 packet이 들어오면 L2 header를 벗겨내고 dst IP주소를 확인하고 다시 L2 header를 만들어 외부로 보낸다. 이렇게 되면 서로 다른 protocol을 사용하는 Network 간 통신이 가능해진다.

Routing 동작과 Routing Table

Router가 forwarding 하는 방식을 Hop by Hop routing이라고 부르고 인접한 router를 Next Hop이라고 한다. packet을 전달할 때 next hop을 지정하는 방식은 크게 세 가지로 나뉜다.

  • 다음 router의 IP 지정
  • router의 나가는 interface 지정
  • router의 나가는 interface와 다음 router의 IP를 동시에 지정

일반적으로 라우터는 라우팅 테이블에서 넥스트 홉의 IP 주소를 지정하지만, 특정 프로토콜(예: PPP, HDLC) 을 사용하거나 프록시 ARP(Proxy ARP)가 동작하여 넥스트 홉의 MAC 주소를 알아낼 수 있는 제한적인 상황에서는 IP 대신 출력 인터페이스(Interface) 자체를 지정하는 방식을 사용할 수 있다.
이 방식은 VLAN 인터페이스와 같은 논리적인 인터페이스에도 적용될 수 있다.

Router가 forwarding할지 경로를 선택할 때 출발지는 고려하지 않기 때문에Routing table을 구성할 때 목적지 정보만 수집하고 forwarding한다.

Routing table에 저장되는 정보는 다음과 같다.

  • dst 주소
  • next hop IP, local interface

Routing 경로 수집

  • Direct Connected
    PC에 IP 주소와 서브넷 마스크를 입력하면 동일 네트워크(Directly Connected) 에 대한 라우팅 정보가 자동으로 생성된다. 수신된 패킷의 목적지가 이 다이렉트 커넥트 범위 내에 있다면 ARP Request와 같은 L2 통신을 통해 직접 도달한다.
    하지만, 목적지가 외부 네트워크(원격지 네트워크) 일 경우 다이렉트 커넥트 정보만으로는 통신이 불가능하며, 해당 원격지 네트워크로 향하는 별도의 라우팅 정보가 반드시 필요하다.

  • Static Routing
    Static Routing은 Network 정보를 쉽게 추가, 경로 제어할 수 있는 방법이어서 Directed Connect를 제외하고 우선순위가 가장 높다. 라우팅 설정 문법은 다음과 같다.

ip route NETWORK NETMAST NEXTHOP // Cisco
route add -net NETWORK /Prefix gw NEXTHOP // Linux

쉽게 말해서 "목적지(네트워크/호스트 - 서브넷/서브넷마스크)로 가려면 packet을 next hop으로 보내야 한다"라는 뜻을 갖는다.
그림과 같이 static routing 정보를 입력하면 아래와 같이 routing table이 구성된다.

20.20.20.0/24, ubest/mbst: 1/0
*via 1.1.1.2, [1/0], 1y18w, static            # static routing
1.1.1.0/30, ubest/mbst: 1/0, attached
*via 1.1.1.1, Eth0/0, [0/0], 43w2d, direct    # direct connect
1.1.1.1/32, ubest/mbst: 1/0, attached
*via 1.1.1.1, Eth0/0, [0/0], 43w2d, local     # local interface

정적 라우팅(Static Routing) 은 소규모 네트워크에 적합하지만, 인터넷 연결 등 규모가 커지면 경로 설정이 비현실적이다. 따라서 이 문제를 해결하기 위해, 인터넷 사업자 라우터를 통해 모든 알 수 없는 목적지 트래픽을 단일 경로로 지정하는 기본 라우팅(Default Routing) 을 사용한다.

ip route 0.0.0.0 255.0.0.0 1.1.1.1
ip route 1.0.0.0 255.0.0.0 1.1.1.1
ip route 2.0.0.0 255.0.0.0 1.1.1.1
...
ip route 255.0.0.0 255.0.0.0 1.1.1.1

목적지 주소의 첫 옥텟이 0 ~ 255까지 1.1.1.1로 보내는 명령이다. 여기서 첫 옥텟 단위 명령어를 1bit 단위로 쪼갠다면 아래와 같이 줄일 수 있다.

ip route 0.0.0.0 128.0.0.0 1.1.1.1
ip route 128.0.0.0 128.0.0.0 1.1.1.1

여기서 subnet mask 1을 모두 없애면 다음과 같이 표현 가능하다.

ip route 0.0.0.0 0.0.0.0 1.1.1.1

목적지 주소의 subnet mask가 모두 0인 static routing을 Default Routing이라고 한다. subnet mask 1은 체크, 0은 IP 주소와 상관없이 체크하지 않는다라는 의미를 가진다.
이를 확장하면 "모든 네트워크"라는 의미가 된다. 아래 그림은 Default Routing을 이용한 인터넷 접속 예시이다.

  • Dynamic Routing
    단일 실패 지점(SPoF) 예방을 위해 다중 경로를 유지할 때, 정적 라우팅 방식은 하나의 홉을 넘어선 네트워크 상태 변경에 효과적으로 대응하기 어렵다. 이 문제는 라우터끼리 자신들의 프로토콜로 정보를 교환하는 동적 라우팅(Dynamic Routing) 을 사용함으로써 해결된다. 다양한 동적 라우팅 프로토콜 중 최근에는 주로 OSPF와 BGP가 사용되며, 이들 유니캐스트 라우팅 프로토콜은 역할과 동작 원리에 따라 분류가 가능하다.

역할에 따른 분류

일반적으로 라우팅 프로토콜은 유니캐스트 라우팅 프로토콜을 의미한다.

인터넷은 인터넷 사업자들이 운영하는 AS(Autonomous System, 자율 시스템) 라는 단위로 구성되어 있다. 이때 AS 내부 통신에 사용되는 프로토콜을 IGP(Interior Gateway Protocol) 라고 하며, AS 외부(AS 간) 통신에 사용되는 프로토콜을 EGP(Exterior Gateway Protocol) 라고 한다.

동작 원리에 따른 분류

IGP Routing protocol의 동작 원리는 Distance Vector, Link State로 나뉜다. 두 동작의 장 단점을 적절히 배합한 Advanced Distance Vector도 있다.

  • Distance Vector
    인접한 router에서 경로 정보를 습득하는 protocol로 RIP, BGP가 있다.
    인접 router가 아닌 router의 정보는 간접적으로 하나 건너 받게되고, 이미 계산된 routing table을 전달 받는다. Network 상태를 받기 때문에 모든 router가 동기화 하는데 시간이 많이 소요된다.
  • Link State
    OSPF는 라우터들이 링크 상태(Link State) 정보를 서로 교환하여 각 네트워크의 토폴로지 데이터베이스(Topology DB) 를 만들고, 이를 기반으로 SPF(Shortest Path First) 알고리즘을 이용해 최단 경로 트리를 구축하여 라우팅 테이블에 추가하는 프로토콜이다.
    경로 변화 파악에 유리하지만, 규모가 커지면 CPU와 메모리 자원 소모가 많아지므로, 네트워크를 Area(영역) 단위로 분리하여 관리한다. 모든 Area는 Backbone AREA라고 불리는 Area 0를 통해 연결되며, ABR(Area Border Router) 은 Area 간 연결을, ASBR(Autonomous System Border Router) 은 OSPF 외부 네트워크와의 연결을 담당한다.

4. LoadBalance & Firewall

Load Balancer

로드 밸런서는 4계층 이상에서 동작하며, IP 주소 및 L4 정보를 확인 및 수정한다. 가장 많이 사용되는 기능은 웹 서버의 부하 분산이며, 대표 서비스 IP를 사용하여 요청을 받은 뒤, 내부적으로 여러 대의 실제 서버 IP로 요청을 변경하여 전송함으로써 부하를 분산시킨다.

L4 Switch

L4에서 동작하면서 load balancing 기능이 있는 switch를 말한다. L4 load balancer지만 switch처럼 여러 port를 가지고 있고 부하분산, 성능 최적화, redirection기능을 제공한다.
L4 switch 동작을 위해서 다음과 같은 요소들을 설정 해야한다.

  • Virtual Server
    사용자가 바라보는 실제 서비스
  • Virtual IP
    사용자가 접근하는 실제 서비스 IP
  • Real Server
    서비스를 수행하는 서버
  • Real IP
    실제 서버의 IP

사용자가 Virtual IP로 service를 요청하면 가상 IP를 실제 IP로 변경 해주고 이 과정에서 부하를 어떤 방식으로 분산할지 결정한다.

ADC (Application Delivery Controller)

L7 스위치는 L4 스위치와 달리 Application Protocol 헤더 정보를 이해하고 동작하여, 부하 분산 외에도 정보 수정 및 필터링이 가능하다. 이 때문에 프록시(Proxy) 로 동작하며, Failover(장애 극복) 와 Redirection 기능을 수행한다. 추가적으로 캐싱, 압축, 애플리케이션 프로토콜 최적화와 함께 WAF(Web Application Firewall) 및 HTML/XML 검증 및 변환 기능도 플러그인 형태로 수행할 수 있다.

L4 Switch vs ADC

L4 스위치는 TCP, UDP 정보 기반으로 부하 분산을 수행하며, 간단한 DoS 공격 방어나 TCP 세션 재사용 등 보안 및 성능 향상 기능을 제공한다.

ADC는 애플리케이션 정보를 기반으로 L4 스위치보다 더 많은 기능을 제공하며, 특히 성능 최적화를 위해 부하가 많이 걸리는 작업을 별도로 처리한다. 대표적으로 이미지/정적 콘텐츠 캐싱 기능이 있으며, 암/복호화 프로토콜 처리를 통해 클라이언트-ADC 구간은 암호화하고 ADC-서버 구간은 HTTP 통신을 사용하는 방식으로 동작한다.


Firewall

방화벽은 네트워크 중간에서 사전 정책에 따라 트래픽을 허용 또는 차단하는 장비이다. L3/L4 계층에서 동작하며, SPI(Stateful Packet Inspection) 엔진을 기반으로 세션 정보를 내부에 저장하고 이를 참조하여 패킷을 처리한다.

Session Management

L2/L3 장비와 달리 세션 장비는 세션 정보를 인지하고 세션 테이블을 유지하며, 이를 기반으로 패킷을 포워딩하거나 드롭하여 성능 최적화와 보안 강화를 수행한다. 이 동작의 효율성과 정확성을 위해 애플리케이션의 세션 시간과 서비스 방향성을 고려하여 비대칭 경로(Asymmetric Routing)를 피하는 것이 매우 중요하다.

Session table 유지, Session 정보 동기화

세션 장비는 메모리 리소스 때문에 타임아웃을 설정하여 세션 정보를 관리한다.
만약 세션 장비의 타임아웃이 애플리케이션 타임아웃보다 작으면, 장비가 세션을 먼저 만료시켜 ACK 패킷을 비정상 통신으로 판단하고 차단하는 문제가 발생한다. 이 경우 양쪽 설정을 조정하여 해결할 수 있다.

Session 장비

  1. Session timeout 값 증가
    세션 장비의 세션 유지 시간이 애플리케이션의 세션 시간보다 더 길도록 타임아웃 값을 증가시켜, 통신이 끊기는 문제를 방지한다. 세션 유지 시간이 길어지면 시스템 메모리 사용량이 증가하는 문제가 발생하지만, 대부분의 세션 장비는 포트 및 IP별로 세션 타임아웃 값을 설정할 수 있어 메모리 고갈을 예방하며 효율적으로 관리할 수 있다.

  2. Session timeout 값을 유지하고 Firewall 설정 방법
    방화벽은 세션이 만료되어 테이블에 정보가 없는 ACK 패킷이 수신되었을 때, 해당 패킷을 차단하는 대신 새로운 세션을 생성하여 통과시키는 옵션을 제공할 수 있다. 하지만 이 옵션은 전체적인 보안을 취약하게 만들 수 있으므로 사용을 지양해야 한다.

  3. Session 장비에서 timeout 시 End-Point에 통보
    중간 Session 장비에서 session이 만료되면 session 정보를 삭제하는게 아니라 end-point에 TCP RST packet을 보내는 것이다. Application에서 통신이 필요하면 새로운 session을 맺어 통신한다.

Application

Application에서 session 상태 정보를 체크하는 더미 패킷을 보내는 기능을 추가하는 것이다. 중간 방화벽에서 session timeout이 발생하기 전에 session을 유지할 수 있고, 가장 바람직한 방법이다.

비대칭 경로 문제

비대칭 경로(Asymmetric Routing) 는 In-bound와 Out-bound 패킷 경로가 달라 서비스 장애를 유발하며, 세션 장비의 성능 저하나 보안 취약점을 초래한다.

이를 해결하기 위한 두 가지 방안은 다음과 같다.

  1. 세션 테이블 동기화: 두 장비가 세션 정보를 동기화하여 하나의 장비처럼 동작하지만, 동기화 시간이 패킷 응답보다 느리면 문제가 발생할 수 있다.

  2. 경로 보정: In-bound가 없는 Out-bound 패킷이 들어왔을 때, MAC Rewriting이나 터널링을 이용해 해당 패킷을 다른 세션 장비로 보내 경로를 수정한다.

하나의 통신, 두 개 이상 session

하나의 통신에 두 개 이상의 세션이 사용될 경우, 세션 장비가 이를 하나의 통신으로 인지하지 못하면 통신 장애가 발생한다. 이러한 통신에서 프로토콜은 데이터를 전송하는 데이터 프로토콜과 세션을 제어하는 컨트롤 프로토콜로 구분된다. 주어진 내용은 FTP(File Transfer Protocol) 의 Active Mode 구동 방식과 특징을 설명한다.FTP와 같은 오래된 프로토콜은 데이터와 제어(Control) 세션을 분리하여 사용한다. FTP Active Mode에서는 제어 세션이 클라이언트 \rightarrow 서버(클라이언트 1023+ \rightarrow 서버 21번 포트) 방향으로 설정되지만, 데이터 세션의 방향은 그와 반대인 서버 \rightarrow 클라이언트(서버 20번 포트 \rightarrow 클라이언트 1023+)로 설정된다.동작 순서는 다음과 같다. 클라이언트가 먼저 제어 세션을 맺고(1), 클라이언트는 데이터 수신용 포트(예: 1025번) 를 서버에 알린다(2). 서버는 이 포트로 데이터를 전송하고(3), 클라이언트가 데이터를 수신하며 응답한다(4).

FTP Active Mode 사용 시 방화벽은 데이터 세션의 반대 방향 통신을 허용해야 한다. 특히 NAT 환경에서는 방화벽에 ALG(Application Layer Gateway) 기능을 활성화하여 데이터 세션의 NAT 및 방화벽 처리를 자동으로 인지하도록 해야 한다. Active Mode의 방향성 문제를 보완하기 위해 개발된 Passive Mode에서는 데이터 요청까지 클라이언트 \rightarrow 서버 방향으로 발생한다. 위 그림은 Passive mode 동작 방식으로 Active와 달리 처음에 passive mode를 사용한다고 알리고, FTP 서버에서 data 수신에 사용할 port를 알려 통신한다.


5. DHCP

DHCP

BOOTP(Bootstrap Protocol)을 기반으로 몇 몇 기능이 추가된 확장 protocol이다. DHCP는 server-client 구조로 동작하며 client 서비스 port는 68번, server는 67번을 사용한다.

동작 방식

  1. DHCP Discover
    DHCP server를 찾기위한 broadcast 메세지를 전송한다. 출발지 IP를 0.0.0.0(Zero IP)로 설정하고, 아직 IP 주소를 할당 받지 못해 정상적인 통신이 불가능하므로 UDP로 Client와 Server간 통신한다.

  2. DHCP Offer
    DHCP Discover를 수신한 서버가 Client에 할당할 IP, subnet, gateway, DNS, Lease Time 등 정보를 포함한 DHCP 메시지를 클라이언트로 전송

  3. DHCP Request
    Client가 server로부터 받은 IP, 서버 정보를 포함한 메시지를 broadcast

  4. DHCP ACK
    Client로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 기록하고 정상 수신에 대한 응답을 전송

DHCP 서버로부터 할당받은 IP는 임대 형식이며, 클라이언트는 임대 기간의 절반(50%) 이 지났을 때 갱신을 시도한다. 이미 IP를 할당받았기 때문에 Discover와 Offer 과정은 생략하고, Request와 ACK 메시지만을 유니캐스트로 주고받아 갱신을 완료한다. 만약 50% 시점에서 갱신에 실패하면 75% 시점에 재시도하고, 여기서도 실패하면 임대 기간 만료 후 처음부터 IP 주소를 다시 할당받게 된다.

DHCP 서버 구성

DHCP 서버 구성시 설정 값은 다음과 같다.

  • IP 주소 pool
    Client에 할당할 IP 주소
  • 예외 IP 주소 pool
    IP 주소 pool에서 예외적으로 할당하지 않을 대역
  • 임대 시간
    할당 IP 주소 유지 시간
  • Subnet Mask
    할당 IP 주소의 subnet mask 정보
  • Gateway
    Client에 할당할 gateway 정보
  • DNS
    Client에 할당할 DNS 정보

DHCP 릴레이

DHCP를 통한 IP 동적 할당은 Broadcast로 진행하기 때문에 각 네트워크마다 DHCP 서버가 필요하다. 하지만 여러 네트워크로 구성된 환경에서 DHCP Relay Agent 기능을 사용하면 DHCP 서버 한대로 여러 네트워크 대역에서 IP pool을 관리할 수 있다. DHCP packet을 client와 server 사이에서 중계하기 때문에 서버 한대로 운용이 가능하다.


끝.

0개의 댓글