[우아한테크코스] 7월 11일 TIL

4 minute read

[Network] 네트워크 계층

라우팅 프로토콜

  • Routing
    패킷을 목적지에 전달하기 위해 경로 정보를 각 노드가 판단할 수 있게 하고 경로 정보에 따라 패킷을 전달하는 것
  • Routing Progtocol
    라우터가 패킷을 목적지까지 전달하기 위해 인접한 라우터 사이에서 경로정보를 작성하고 제어하는 프로토콜

  • AS(Autonumous System)
    라우팅을 위해 자율적으로 관리할 수 있는 네트워크 그룹과 게이트웨이

IGP(Internal Gateway Protocol)

AS 사이에서의 라우팅 프로토콜
ex) RIP, OSPF, IGRP

RIP(Routing Information Protocol)

DVRP(Distance Vector Routing Protocol) 방식을 사용하는 LAN 구간에서의 대표적인 프로토콜
현재까지 가장 많이 사용되는 프로토콜
스크린샷 2021-07-12 오전 1 48 17

  1. A의 경우 N1, N3, N4에 대한 정보만을 갖는 라우팅 테이블 구성
  2. 인접한 네트워크는 1로, 그 외 네트워크는 무한대로 설정
  3. A는 B, D, E와 라우팅 테이블 교환
  4. 첫번째 라우팅 정보 교환하면 A는 몰랐던 N2, N5, N6에 대한 정보 얻어서 반복해서 정보 알아감

이렇게 라우팅 테이블을 얻으면 요청이 들어왔을 때 패킷에 담긴 명령, 버전, 네트워크 패밀리(사용된 프로토콜 계열), 네트워크 주소, 메트릭(홉 수) 에서 올바른 라우터 찾아 전달

  • 성능 개선
    triggered udpate: 홉 수 변경 시 즉시 통보해 복구 시간 줄임
    holddown: 메트릭이 무한인 경로는 경로 갱신하지 않고 전체 갱신될 때까지 기다림
    split horizon: a -> b -> c 시에 b->c 사이에 장애 발생해서 a->b 무한 루프돌 때 b가 a에 보낸 정보를 다시 안보내게 하는 것
    poisoning: 회선이 고장나면 메트릭을 16으로 지정해 전체 네트워크에 알려 도달 불가능 알림

  • Distance Vector //?? 각각의 라우터는 인접한 라우터에 주기적으로 라우팅 정보 전달해 경로 선택
    30초마다 라우터의 각 int로 라우팅 정보 전달
    메시지 송수신에 UDP 포트 사용: v1, v2는 520번 ng는 521번

  • Hop Count
    Metric으로 도달할 목적지까지의 거치는 게이트웨이의 수로 15개로 제한한다. //왜?

  • version1
    브로드캐스팅 사용
    네트워크 클래스별로 규격화된 IP 주소 구분에 따라 나눠진 네트워크 주소 정보를 토대로 라우팅
    서브넷 정보를 보내주지 않아 라우팅 정보의 크기가 커짐

  • version2
    CIDR(Class InterDomain Routing)과 VLSM(Variable Length Subnet Masking) 지원
    브로드캐스팅과 멀티캐스팅 지원, 메시지마다 인증, v1 모든 필드 인식 가능
    서브넷 마스크 정보와 리우팅 정보를 함께 전달해 라우팅 업데이트 시에 네트워크 주소와 서브넷 마스크 정보 같이 보냄

    • VLSM
      서브넷의 서브넷으로 서브넷에서 필요한 길이로 prefix를 통해 다시 서브넷을 나누는 것

VRRP(Virtual Router Rebundancy Protocol)

정적으로 구성된 라우터 사용 시 하나의 라우터를 LAN 상의 호스트 그룹에서 패킷을 전달하기 위한 라우터로 사용하도록 하여 하나 이상의 백업 라우터를 가질 수 있도록 하는 프로토콜
가상 IP 주소를 수동으로 지정하거나 DHCP를 기본값으로 지정할 수 있다.
가상 IP 주소는 라우터 간 공유되어 하나는 마스터 라우터, 나머지는 백업으로 지정되어 마스터에 장애가 발생하면 백업 IP 주소가 매핑된다.

OSPF(Open Shortest Path Fast)

모든 라우터가 동일한 네트워크 topology database를 사용해 경로 계산하는 프로토콜
라우팅 루프가 발생하지 않고 플러딩(갱신 정보를 인접에, 인접이 또 인접에 전달)을 통해 갱신 속도 향상
AS 안에서 Area들을 갖는 계층적인 구성을 통해 라우팅 테이블의 수를 줄여 트래픽 감소
라우팅 경로 선택에 있어 효율적으로 짧은 경로를 선택 가능

  • Area
    인접한 OSPF 네트워크와 호스트의 집합, OSPF AS에 의해 논리적으로 구분됨
  • AS
    OSPF Inter Network에서 가장 큰 개체로 같은 라우팅 방법을 가진 네트워크들의 집합

  • Link State
    인접한 라우터로 각 라우터의 고유 접속 정보만 전달
    각 라우터는 각 인터페이스의 정보를 포함한 접속 정보를 생성하고 유지해 한 AS 내에 있는 모든 라우터에게 접속 정보 전달
    라우터들은 각각 DB를 작성하고 갖고 최단 경로 알고리즘을 통해 최단 경로를 설정

스크린샷 2021-07-12 오전 2 09 44

  1. 모든 노드 집합 M
  2. N에 출발 노드 삽입
  3. M에 있는 노드가 출발 노드와 비슷하다면 비용 기록, 아니면 무한대
  4. 비용 기록 값 최소 노드 찾아 N에 삽입
  5. 최소 노드에 인접하고 N에 없는 노드가 최소 노드 통하는 경우와 아닌 경우 비용 계산해 최소값을 ㅗ갱신
  6. 모든 노드가 N에 포함될 때까지 과정 반복
  • LSA(링크 상태 광고)
    인접 라우터 간의 동기화 과정이 끝나고 링크 상태에 변화가 있을 때만 메트릭 값과 링크 속성에 대한 정보 전송
    라우터 링크, 네트워크 링크, 요약 링크, AS 링크로 나눠져 광고

IGRP(Interior Gateway Routing Protocol)

주기적으로 인접 라우터와 라우팅 정보 교환하는 프로토콜
RIP와 달리 다중 경로에 대한 라우팅 수행
라우팅 테이블에 다음 홉만을 기록해 라우터는 메트릭 값을 토대로 트래픽 분배
하나의 메트릭(hop count)을 사용하며 다양한 네트워크 파라미터를 이용해 거리 벡터 계산
목적지에 대해 최대 4개까지의 경로를 관리해 라우팅을 지원
네트워크 구성 변화에 빠르게 반응하고 라우팅 테이블 갱신을 위해 꼭 필요한 정보만 전송해 회선에 대한 오버헤드 감소

메트릭 요소

  • 대역폭: 회선 속도
  • 지연: 회선을 사용해 전송에 걸리는 시간
  • 신뢰도: 라우터가 동적 측정
  • 부하: 부하 정도를 나타내는 단위
  • MTU: 회선이 처리할 수 있는 최대 프레임 크기

메트릭 = K1대역폭 + K2대역폭/(256-부하) + K3지연

EGP(External Gateway Protocol)

AS(Autonomous System)끼리의 라우팅 프로토콜
ex) BGP

BGP(Border Gateway Protocol)

도메인 간의 라우팅 정보 전달
홉 수 대신 AS 번호를 메트릭으로 사용하는 Path Vector 사용
AS 내부에 여러 BGP 라우터가 존재할 수 있어 AS 연결을 제공하는 transmit AS 제공
동일 AS 간: IBGP, 다른 AS 간: EBGP
스크린샷 2021-07-12 오전 2 22 00

  1. AS4는 자신과 직접 연결되어있는 네트워크를 백본 네트워크에 알림
  2. 백본 네트워크는 AS4가 준 네트워크 접근 경로를 BGP를 통해 공지하고 그 반대로 AS1, AS3을 통해 또 접근할 수 있다고 알리며 서로 알게 된다.

캐스트

네트워크가 통신하는 방법

브로드캐스트

같은 네트워크에 있는 모든 장비에 보내는 통신
상대 IP는 알지만 MAC 모를 때 사용
송신 노드 하나가 네트워크에 연결된 수신 가능한 모든 노드에 데이터 전송
IPv4가 사용

유니캐스트

MAC 주소 기반, 출발지 == 목적지여야 하는 일대일 통신
송신 노드 하나가 수신 노드 하나에 전송하는 일대일 방식

멀티캐스트

유니캐스트가 모든 MAC 확인해야 해서 성능이 떨어지고, 브로드캐스트가 모든 네트워크에 보내게 되니 관련 없는 애들이 받을 것을 개선하고자 특정 그룹을 지정해 그 그룹에만 보내는 것
송신 노드 하나가 네트워크에 연결된 하나 이상의 수신 노드에 전송

애니캐스트

가장 가까운 노드와 통신
트래픽 분산, 네트워크 이중화, response time 최소화를 위해 사용
송신 노드가 네트워크에 연결된 가장 가까운 하나의 노드에 전송
IPv6가 사용