Computer Science/Network

[Network] OSI 7 Layer 계층별 장비

LeeJaeJun 2023. 12. 23. 23:44
728x90
반응형

- 1 계층 장비

1. 리피터(Repeater)

  • 전기 신호를 증폭시키는 역할
  • cable 전송으로 약화된 신호(물리적인 저항으로 인해) 를 초기화, 증폭, 재전송하는 역할
  • 상위 계층에서 사용하는 MAC 주소나 IP주소를 이해하지 못하고 단지 전기 신호만을 증폭시키는 역할
  • 대부분의 장비(허브, 스위치, 브리지 등)도 전기적 신호를 증폭시켜주는 기능이 있기에 거의 사용되지 않습니다.

 
2. 허브(Hub)

  • 무조건 모두에게 전달
  • 리피터와 마찬가지로 전기적 신호를 증폭시키는 역할
  • LAN 전송거리를 연장시키고 여러 대의 장비를 LAN에 접속할 수 있게 합니다.(멀티 포트리피터)
  • 2계층의 브리지, 스위치와 다른 점은 특정 장치의 주소(MAC 주소)를 모르기 때문에 연결된 모든 장치에 전달한다는 것입니다.(플러딩, flooding)

리피터와 허브를 이용해서 컴퓨터 여러 대가 데이터를 동시에 보내면 데이터들이 서로 부딪히는 데 이것을 충돌(Collision)이라고 합니다.
(일방통행 도로를 생각하면 됨))
특히 허브는 한 장비에서 전송된 데이터 프레임을 허브에 연결된 모든 장비에 전송(플러딩)하기 때문에 하나의 허브에 많은 장비를 연결하게 되면 충돌이 많이 발생하게 됩니다. 이런 상황을 허브에 연결된 장비들이 하나의 Collision domain 안에 있다고 말합니다.
 

- 2 계층 장비

1. 브리지

  • 같은 네트워크 장비를 연결
  • 허브와 마찬가지로 이더넷 장비를 물리적으로 연결하고 Frame의 전송거리를 연장하는 역할
  • 단순히 전기적 신호만을 증폭시키는 것이 아니라 Frame을 다시 만들어서 전송하는 역할
  • 허브와는 달리 MAC 주소를 보고 Frame 전송포트를 결정하기 때문에 특정 기기에만 전송할 수 있습니다. (layer 2 장비)

2. 스위치

  • 같은 네트워크 장비를 연결
  • 브리지와 마찬가지로 MAC주소와 해당 장비의 포트번호가 기록된 Table을 보고 목적지에게만 Frame을 전송
  • 한 포트에서 전송되는 Frame이 MAC주소 Table에 있는 특정 포트로만 전송하기 때문에 다른 포트가 전송하는 Frame과 충돌이 발생하지 않습니다.
  • 각각의 포트가 하나의 Collision domain에 있다고 표현할 수 있습니다.(각각의 포트가 하나의 차선을 사용)

 

- 3 계층 장비

1. 라우터

  • 다른 네트워크를 연결
  • IP주소 등 Layer 3 header에 있는 주소를 참조하여 목적지와 연결되는 포트로 Packet을 전송합니다.
  • 특정 인터페이스를 통하여 수신한 packet의 목적지 IP 주소를 보고 목적지와 연결된 인터페이스를 통하여 전송할 것을 결정합니다.(Routing)
  • 라우터의 기본 기능은 경로 결정, 경로에 따른 Pakcet 전송 입니다.(그 외에도 네트워크 보안, QoS 등의 기능도 있습니다.)

 
2. L3 스위치

  • 다른 네트워크를 연결
  • IP주소 등 Layer 3 header에 있는 주소를 참조하여 목적지와 연결되는 포트로 Packet을 전송합니다.

다른 네트워크(LAN) 구간의 장비와 통신을 하려면 반드시 Layer 3 장비를 거쳐야 합니다.
2계층의 스위치 같은 경우 멀티캐스트, 브로드캐스트, 목적지를 모르는 유니캐스트를 수신할 경우 수신포트를 제외한 모든 포트로 flooding 합니다. 하지만 L3 장비들은 이런 Frame을 모두 차단합니다.(즉, 브로드캐스트 전송을 막습니다.)
 

- 정적 라우팅과 동적 라우팅

1. 정적 라우팅(Static Routing)

  • 네트워크 관리자가 라우팅 테이블에 직접 경로를 입력하여 패킷의 전달 경로를 결정하는 방식(수동으로 관리)
  • 일반적으로 정적으로 설정되어 네트워크 토폴로지가 변경되지 않는 한 유지
  • 수동으로 정책을 부여하기 때문에 라우터 CPU에 오버헤드가 없어집니다.
  • 간단하고 구성이 쉽습니다.
  • 라우팅 테이블의 크기가 작아 소비가 적습니다.
  • 네트워크 관리자가 라우팅 동작을 모두 제어할 수 있기 때문에 보안상 더 유리합니다.
  • 네트워크 규모가 커질수록 네트워크 관리자의 작업량이 많이 투입되기 때문에 작은 네트워크에서 사용됩니다.
  • 수동으로 관리되기 때문에 네트워크 정보를 잘못 입력하는 등 인재가 발생할 수 있습니다.
  • 네트워크 구성 변경에 따라 end to end 트래픽이 라우팅 되지 않을 때 백업 구성이 되지않아 관리자가 경로를 재구성할 때까지 사용할 수 없습니다.(네트워크 토폴로지의 변경에 대응하기 어렵다.)

2. 동적 라우팅(Dynamic Routing)

  • 네트워크 장비 간에 라우팅 정보를 교환하여 최적의 경로를 자동으로 계산한 뒤, 네트워크 장비들이 네트워크 상태를 감지하고 이를 기반으로 경로를 동적으로 조정합니다.
  • RIP(Routing Information Protocol), OSPF(Open Shortest Path First), BGP(Border Gateway Protocol) 등이 동적 라우팅 프로토콜에 해당됩니다.
  • 네트워크 토포롤지의 변경에 대응할 수 있습니다.
  • 최적의 경로를 계산하여 효율적인 패킷 전달이 가능합니다.
  • 네트워크 확장에 용이하며, 대규모 네트워크에서 효과적입니다.
  • 네트워크 관리자의 라우팅 정책 유지를 위한 작업 리소스가 적습니다.
  • end to end 경로 손실이 발생하더라도 백업 경로가 있기 때문에 내결함성을 가집니다.
  • 다른 많은 장비들과 통신하기 위해 정적 라우팅 방식에 비해 더 많은 대역폭 소비가 발생합니다,
  • 경로 계산에 대한 오버헤드가 발생하여 처리 시간이 필요합니다.

 

- 4 계층 장비

1. L4 스위치

  • End Host 부하분산을 위한 다중화 목적으로 이용(Data center 서버팜)(scale out을 하기 위한 솔루션)(로드밸런싱을 위해 사용)
  • 자신의 Interface로 들어오는 Frame을 받아 L2(Ethernet)헤더를 제거하고, L3(IP)헤더 또한 제거하고, L4헤더를 보고 어디로 어떻게 보낼지를 결정하고, 적합한 L4~L2헤더까지 완성하여 전달합니다.
  • Session table 생성 이후 Session Table lookup을 우선진행합니다.
  • 구성방식(One Armed, Inline), 동작 방식(Proxy방식, DSR), 분산 Method, Healthcheck, 이중화 등의 기능을 제공합니다.
  • Session table관리(TCP/UDP, timeout, update 로직)

로드밸런싱(Load Balancing)

  • 로드(Load) = 서버가 받는 부하
  • 로드밸런서 = 트래픽들을 잘 밸런싱해서 서버들한테 골고루 분산시켜 주는 모듈
  • 서버에 트래픽이 늘어났을 때 할 수 있는 선택지 
    1. Vertical Scale-Up: 서버 자체의 퍼포먼스를 늘리는 방법.(RAM크기를 늘린다던지, CPU를 업그레이드 한다던지) 즉, 단순히 머신 하나의 성능을 늘리는 것이다. 기술에 한계가 있기 때문에 이에도 한계가 있다.
    2. Horizontal Scale-Out: 서버에 분산 시스템을 구축하는 방법.(서버의 개수를 늘린다) 이때, 로드밸런싱이 사용되는 것입니다.
  • Round Robin 방식: 들어오는 리퀘스트를 그 서버들에 순차적으로 하나씩 보내는 방법입니다. 서버 모두가 골고루 분산해서 가져갈 수 있습니다.
  • Random Select 방식: 로드밸런서가 랜덤으로 서버에 리퀘스트를 보내는 방법입니다. 운이 나쁘면 한 서버에 계속 랜덤하게 걸려서 그 서버에 부하가 걸릴 수 있습니다.(하지만 실제로 그런 일이 일어날 확률은 거의 없음. 보통 uniform하게 됨)
  • Least Connection 방식: 로드밸런서에게 서버가 자신이 현재 얼마만큼의 트래픽을 감당하고 있고, 얼마만큼의 커넥션을 맺고 있는지 알려줌으로써 로드밸런서가 가장 이 정보드를 종합하여 가장 여유로운 서버에 리퀘스트를 보내는 방법입니다. 서버와 로드밸런서 사이에 실시간 통신이 이루어져야 하기 때문에 더 복잡합니다. 서버의 스펙에 따라 로드밸런싱할 수도 있습니다.(모든 서버가 같은 스펙을 가지고 있지않을 수도 있기 때문에 이 경우 Round Robin 방식을 사용하면 문제가 생길 수 있음)
  • Load Balancer Type 
    • 소프트웨어적인 방식으로 구현: HAProxy, Reverse Proxy(NginX, Apahce 등)을 통해 구현할 수 있습니다. 하드웨어로 구현하는 것보다 저렴합니다. 또한 로드밸런서 자체를 Scale-out할 때도 configuration만 바꾸면 되기 때문에 쉽다.
    • 하드웨어적인 방식으로 구현: L4/ L7 Switch 등을 이용해서 직접 서버들을 묶는 것입니다. Reliable하고 보안성이 높습니다.
  • 로드밸런서가 죽으면 서비스도 죽게 되기 때문에(SPOF: Single Point of Faliure, 특정 포인트에서 에러가 났을 경우에 전체 시스템이 다운되는 경우) 로드밸런서 자체도 Scale-out을 할 필요성이 있습니다. 예를 들어, Master slave 방식을 이용해서 Master가 항상 일을 하되 로드밸런서를 여러 개 가지게 구축할 수도 있겠습니다.

 

- 7 계층 장비

1. L7 스위치

  • L4 스위치와 마찬가지로 보통 서버들의 로드밸런싱을 위해 사용됩니다.
  • 보안 스위치라고도 불립니다.(UTM 장비)

L4 스위치와 L7 스위치의 차이

  • L4 스위치는 OSI Layer 3,4에 속하는 IP주소 및 TCP/UDP 포트 정보를 확인한 뒤 스위칭합니다. L7 스위치는 OSI Layer 3~7에 속하는 IP주소, TCP/UDP 포트 정보 및 패킹 내용까지 모두 확인한 뒤 스위칭을 해줍니다.
  • L4는 TCP/UDP 포트를 이용하여 트래픽 분산처리(로드밸런싱)를 합니다. L7는 OSI 7 Layerd의 HTTP의 URL, FTP 쿠키 정보 및 바이러스 패턴을 분석하여 보안에 더 유리하고 정교한 로드밸런싱이 가능합니다.
728x90
반응형

'Computer Science > Network' 카테고리의 다른 글

[Network] SMTP, POP3, IMAP  (1) 2023.12.23
[Network] FTP(File Transfer Protocol)  (0) 2023.12.23
[Network] TCP 에러제어  (2) 2023.12.23
[Network] VPN  (2) 2023.12.22
[Network] 부하 분산 시스템(Load Balancing System)  (2) 2023.12.22