IT 엔지니어를 위한 네트워크 입문이 읽기 싫을때 - 2

고승원·2023년 11월 26일
0

TIL

목록 보기
24/24

이 글은 IT 엔지니어를 위한 네트워크 입문 스터디를 마치고 정리한 글이다.

5. 라우터

라우터 : 3계층에서 동작하는 여러 네트워크 장비의 대표격으로 경로를 지정해주는 장비

라우터에 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로 정보를 이용해 최적의 경로로 포워딩 한다.

라우터의 동작 방식과 역할

라우터는 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 들어오면 최선의 경로로 패킷을 내보낸다.

반대로 들어온 패킷의 목적지가 라우팅 테이블에 없으면 패킷을 버린다. 라우터는 패킷 포워딩 과정에서 기존 2계층 헤더 정보를 제거한 후 새로운 2계층 헤더를 만든다.

하나씩 자세히 알아보자

경로 지정

라우터의 가장 중요한 역할로 라우팅 테이블에 저장하고, 경로를 지정한다.

라우터는 경로 정보를 얻는 역할과 포워딩 하는 역할로 구분되는데, 자신이 얻은 경로로 포워딩 하기 때문에 정확한 목적지 경로를 얻는 것이 중요하다.

경로 정보 얻는 방법

  1. IP 주소를 입력하면서 인접 네트워크 정보를 얻는 방법
  2. 관리자가 직접 경로를 입력하는법
  3. 라우터끼리 경로 정보를 교환하는 방법

브로드캐스트 컨트롤

스위치의 브로드캐스트 플러딩은 LAN의 크기가 작고, NIC에서 자신의 주소가 아닌 패킷은 버리기 때문에 큰 무리를 주지 않는다.

반면에 라우터에서 명확하지 않은 패킷이 플러딩 된다면 인터넷이 패킷으로 가득차 통신 불능 상태가 될 수 있다.

라우터는 바로 연결되어 있는 네트워크를 제외하고 경로가 없으면 패킷을 포워딩할 수 없다. 라우터는 멀티캐스트 정보를 습득하지 않고, 브로드캐스트 패킷을 전달하지 않는다. 이 기능을 통해 브로드캐스트가 다른 네트워크로 전파되는 것을 방지할 수 있다. 이를 브로드(멀티)캐스트 컨트롤이라고 한다.

네트워크에 브로드캐스트가 많이 발생하는 경우 라우터로 네트워크를 분리하면 브로드캐스트 네트워크를 분할해 네트워크 성능을 높일 수 있다.

프로토콜 변환

라우터의 또 다른 역할은 서로 다른 프로토콜로 구성된 네트워크를 연결하는 것이다. 현대는 이더넷으로 수렴되지만, 과거에는 LAN과 WAN의 프로토콜은 완전히 구분된 공간이었다.

라우터는 3계층 장비이므로 2계층까지의 헤더 정보를 벗겨내고 2계층 헤더 정보를 새로 만들어 외부로 내보낸다.

경로 지정 - 라우팅/스위칭

라우터가 패킷을 처리할 때 크게 두 가지 작업을 수행한다.

  • 경로를 얻어 경로 정보를 정리하는 역할
  • 정리된 경로 정보를 기반으로 패킷을 포워딩하는 역할

경로 정보가 점점 더 다양하고 많아졌기 때문에 라우터는 서브넷 단위로 라우팅 정보를 습득한다.

그리고 이를 최적화 하기 위해 서머리 작업을 통해 여러개의 서브넷 정보를 뭉쳐 전달한다.

그래서 라우터에 들어온 패킷의 목적지 주소와 라우팅 테이블의 정보가 정확히 일치하지 않더라도 가장 근접한 정보를 찾아 패킷을 포워딩한다.

라우팅 동작과 라우팅 테이블

라우터는 목적지까지의 모든 경로를 책임지지 않고, 인접한 라우터(넥스트 홉) 까지만 경로를 지정한다.

넥스트 홉을 지정할 때 일반적으로 세 가지 방법을 사용한다.

  • 다음 라우터의 IP를 지정
  • 라우터의 나가는 인터페이스를 지정
  • 라우터의 나가는 인터페이스와 다음 라우터의 IP를 모두 지정

일반적으로 상대방 라우터의 인터페이스 IP주소를 지정하는 방법을 사용한다.

상대방 넥스트 홉 라우터의 IP를 모르고 MAC 주소를 알 수 있을때는 나가는 인터페이스를 지정하는 방법을 쓴다.

인터페이스와 IP를 모두 지정하는 경우VLAN 인터페이스와 같은 논리적인 인터페이스를 사용할 수 있다.

라우터가 패킷을 포워딩 할때는 출발지를 고려하지 않고 목적지 주소만 보고 포워딩 한다. 따라서 라우팅 테이블에는 다음과 같은 정보만 수집한다.

  • 목적지 주소
  • 넥스트 홉 IP 주소, 나가는 로컬 인터페이스(선택 가능)

물론 출발지 주소를 이용해 라우팅이 가능하지만, 다른 라우터로의 전파가 어려우며 별도의 설정이 필요하고, 관리가 어려워 특별한 상황에서만 사용한다.

  • 3계층 장비는 2계층과 다르게 TTL이 있어 루프 현상이 일어나도 일정 시간이 지나면 자동으로 사라진다.

라우팅

라우터가 경로 정보를 얻는 방법은 크게 3가지가 있다.

다이렉트 커넥티드

IP 주소를 입력할 때 사용된 IP 주소와 서브넷 마스크로 해당 IP 주소가 속한 네트워크 주소를 알 수 있다.

이 정보를 통해 라우팅 테이블을 자동으로 만드는데, 강제로 지울 수 없으며 해당 네트워크가 삭제되거나 비활성화 되어야 사라진다.

스태틱 라우팅

관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직접 지정하는 방법. 매우 직관적이다.

해당 네트워크가 삭제되거나 비활성화 되면 사라지고, 물리 인터페이스가 비활성화 되더라도 논리 인터페이스가 비활성화되지 않으면 삭제되지 않는다.

다이나믹 라우팅

규모가 큰 네트워크에서는 스태틱 라우팅으로는 버겁다. 장애 사항을 파악하고 대체 경로를 찾아야 하기 때문인데, 대응을 적절히 하지 못하면 패킷은 드롭된다.

다이나믹 라우팅은 라우터끼리 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다. 따라서 회선이나 라우터에 장애가 발생해도 이를 인지하고 대체 경로로 포워딩한다.

다이나믹 라우팅에서는 정보 공유를 위해 자신이 광고할 네트워킹을 선언해야 한다.

다이나믹 라우팅의 역할은 경로정보를 얻는 것, 경로 정보를 체계적으로 데이터베이스화 하고 순위를 부여해 최선의 경로만 수집하는 것이 있다.

라우터가 수집한 경로 정보를 원시 데이터라고 하고 토폴로지 테이블에 담고, 최적의 경로를 라우팅 테이블에 담는다.

스위칭

스위칭은 라우팅 테이블을 참조해 최적의 경로를 찾아 외부로 포워딩하는 작업을 뜻한다.

이때 정확히 일치하지 않고 비슷하게 일치하거나 일치하지 않는 상황 때문에 고려해야 하는 사항이 있는데, Longest Prefix Match 기법을 사용해 라우팅 테이블에 있는 가장 가까운 경로를 선택한다.

  • LPM 기법은 라우터에서 부하가 걸리기 때문에 한 번 스위칭 작업을 수행한 정보는 캐싱해 사용한다.
  • 단순히 목적지 IP부터 출발지와 도착지 IP, 포트 번호를 모두 저장하기도 한다. 나아가 넥스트 홉 L2 정보까지 캐싱해 스위칭 시간을 줄이기도 한다.
  • Longest Prefix Match(Maximum Prefix Length Match)

목적지와 더 많이 매칭되는 정보를 최선의 정보로 인식하는 기법

라우팅, 스위칭 우선 순위

우선순위는 경로 정보를 받은 방법과 거리를 기준으로 결정한다.

라우팅 기법에 따른 우선순위는 기본적으로 다이렉트 커넥티브, 스태틱, 다이나믹 순이다. 하지만 관리자가 우선순위를 조정할 수 있다. 이를 AD(Administrative Distance)라고 한다.

라우팅 설정 방법

다이렉트 커넥티드

목적지가 다이렉트 커넥티드라면 L2 통신으로 목적지에 도달한다. 이때 목적지가 외부 네트워크라면 통신이 불가능 하다. (스태틱 라우팅, 다이나믹 라우팅에서 얻은 정보 필요)

이 때 외부 네트워크 라우팅 정보가 있더라도 커넥티드 정보를 잘못 입력하면 외부와 통신할 수 없다. 따라서, IP 주소를 잘못 설정하거나, 서브넷 마스크를 다르게 설정하면 잘못 입력되어 통신이 안될 수 있다.

스태틱 라우팅

네트워크 정보를 쉽게 추가하고 제어할 수 있는 가장 강력한 방법이다. 다이렉트 커넥티드를 제외하고 우선순위가 가장 높다.

사내 네트워크에선 스태틱 라우팅으로 처리할 수 있지만, 네트워크 규모가 커지면 어려움이 있다. 이런 경우 대용량의 인터넷 라우팅 전용 라우터가 필요한데, 보통 통신사같은 인터넷 사업자가 운영한다.

일반적인 회사의 라우터는 인터넷 사업자로부터 회선을 임대해 사용하는 것이기 때문에 모든 인터넷 경로를 받아 처리하는 것은 부적절하다. 이런 경우 디폴트 라우팅을 사용하면 좋다.

  • 디폴트 라우팅 : 서브넷 마스크가 모두 0인 스태틱 라우팅을 뜻한다. 즉 모든 패킷을 목적지로 보내겠다는 뜻.

다이나믹 라우팅

SPoF를 방지하기 위해 여러 경로를 유지하는 경우 스태틱 라우팅만으로는 신속한 대응이 어렵다.

대체 경로를 설정하거나 네트워크가 많아지면, 스태틱 라우팅으로 관리하기 어렵기 때문에 다이나믹 라우팅을 사용해 라우터끼리 정보를 교환하여 최신 경로 정보를 유지한다.

역할

일반적으로 라우팅 프로토콜은 유니캐스트 프로토콜을 말하는데, 인터넷에는 AS 라는 자율 시스템이 존재한다. AS 내부에서 사용하는 프로토콜을 IGP, AS 간 통신에 사용하는 프로토콜을 EGP라고한다.

AS 간 통신에서는 조직 간 정책이 중요하기 때문에 EGP 는 이런 통신을 정책적으로 조정한다.

6. 로드밸런서 / 방화벽 (4계층 장비)

IP 부족으로 NAT 기술, 방화벽, 프록시 같은 장비들이 등장하며 4계층 장비도 네트워크 장비에 포함되었다.

기존 2, 3 계층 장비가 고려하지 않았던, 방향성이나 순서를 관리하는데 이를 세션테이블에 담아 관리한다.

4계층 장비의 특징

4계층 장비는 TCP와 같은 4계층 헤더 정보를 이해하고 동작한다.

4계층 장비가 2, 3계층과 다른점은 세션 테이블세션 정보가 가장 중요하다고 할 수 있다.

세션을 기반으로 동작하는 방화벽, NAT, 로드 밸런서같은 장비가 있으면 시스템 설계, 애플리케이션 개발에도 세션 장비에 대한 고려가 필요하다.

세션 테이블 : 세션 정보를 저장, 확인한다. 이때 세션 정보에는 life time이 존재한다.

대칭 경로 요구 : Inbound와 Outbound 경로가 일치해야한다.

정보 변경 : IP 주소가 변경되며 확장된 L7 로드 밸런서는 애플리케이션 프로토콜 정보도 변경된다.

로드 밸런서

서버나 장비의 부하를 분산하기 위해 사용되는 장비이다. 4계층 7계층에서 동작하며 IP 주소나 4계층 정보, 애플리케이션 정보를 확인/수정 한다.

스케일 업보다 스케일 아웃을 선호하는데, 장비가 여러대여도 하나의 서비스로 보여야 하기 때문에 로드 밸런서가 서비스의 대표 IP를 갖고 각 시스템으로 분산한다.

L4 로드 밸런싱

TCP, UDP 정보를 기반으로 로드 밸런싱 수행

L7 로드 밸런싱

HTTP, FTP, SMTP와 같은 애플리케이션 프로토콜 정보를 기반으로 로드 밸런싱 수행

HTTP 헤더나, URI같은 정보를 기반으로 프로토콜 이해 후 부하 분산. 일반적으로 ADC라고 부르며 프록시 역할 수행한다. 스퀴드나 Nginx에서의 리버스 프록시와 비슷한 기능.

L4 스위치

4계층에서 동작하며 로드 밸런싱 기능이 있다. 여러가지 로드 밸런서중 가장 대중화 되어있으며, 부하 분산, 성능 최적화, 리다이렉션 기능 제공.

L4 스위치가 동작하려면 가상서버, 가상IP, 리얼 서버, 리얼 IP를 설정해야 하는데, 가상 서버는 사용자가 바라보는 실제 서비스를 뜻하고, 가상 IP는 사용자가 접근하는 서비스 주소이다. 리얼 서버는 실제 서비스를 수행하고, 리얼 IP는 실제 서버의 IP이다. L4스위치는 가상IP를 리얼 IP로 변경해주는 역할을 한다.

ADC

애플리케이션 계층에서 동작하는 로드밸런서로 L4와 달리 애플리케이션 프로토콜의 헤더와 내용을 이해하고 동작하여 다양한 부하 분산, 정보 수정/필터링이 가능하다. 프록시로 동작한다.

대부분의 ADC는 L4 스위치의 기능(페일오버, 리다이렉션)을 포함한다. 이 외에도 캐싱, 압축, 콘텐츠 변환/재작성, 인코딩 변환등이 가능하고 애플리케이션 프로토콜을 최적화 하기도 한다.

플러그인 형태로 보안 기능을 추가해 WAF나, HTML, XML 검증과 변환을 수행하기도 한다.

L4 스위치 vs ADC

L4 스위치

TCP, UDP 정보를 기반으로 부하 분산 및 TCP 최적화 및 보안기능 제공.

TCP의 간단한 DoS 공격 방어 및 TCP 세션 재사용 가능.

ADC

애플리케이션 내용 분산, 리다이렉션, 최적화등 L4보다 다양한 기능

이미지나, 정적 콘텐츠 캐싱 가능. → 웹 서버 부하 줄임

SSL 엔드포인트로 동작하기 때문에 SSL 전용 카드 내장.

방화벽

네트워크 중간에 위치해 해당 장비를 통과하는 트래픽을 정책에 따라 허용하거나 차단하는 장비.

일반적으로 3, 4 계층에서 동작하고 세션을 인지하는 SPI 엔진을 기반으로 동작한다.

NAT 방식과 유사하게 세션 정보를 내부에 저장하여, 외부로 나갔던 세션 정보를 저장하고 들어오는 패킷을 가려낸다. 만약 이런 세션 정보를 저장하는 세션 테이블이 없다면 매우 복잡한 정책관리를 해야할 것이다.

4계층 장비를 통과할 때 유의점

세션 장비는 일반적인 2, 3 계층 네트워크 장비와 달리 세션을 이해하고 세션 테이블을 유지한다.

보안 강화 및 애플리케이션 성능 최적화를 위해 패킷을 포워드/드롭할 수 있다. 이 기능을 충분히 활용하기 위해선 세션 장비 간 정보를 동일하게 유지해야 한다. 특히 비대칭 경로를 피하는 것이 좋은데 대부분의 문제는 이 부분을 고려하지 않아서 발생한다.

세션 테이블 유지

세션 테이블은 메모리에 저장되기 때문에 일정 시간만 정보를 저장한다.

악의적인 사용자가 세션 공격을 하는 경우 타임 아웃 값을 더 줄이기도 한다.

타임 아웃 값을 조정할 때 장비의 타임 아웃 값이 애플리케이션의 타임 아웃 값보다 짧아지면 통신 중간에 세션 테이블에 정보가 사라져 패킷을 차단해 문제가 생긴다.

  • 애플리케이션에서 주기적인 패킷 발생 기능 추가 더미 패킷을 보내어 세션 타임아웃이 발생하기 전에 세션을 유지시킨다.

비대칭 경로 문제

인바운드와 아웃바운드 패킷이 다른 장비를 통과하는 경우를 비대칭 경로라고 한다.

세션 테이블을 만들어 관리해야 하는데, 인바운드와 아웃바운드 경로가 다르면 정상적인 서비스가 되지 않는다.

최고의 방법은 예방이다. 비대칭 경로가 생기지 않도록 네트워크와 경로 디자인을 하는 것이다.

  • 세션 테이블 동기화 두 개 경로사의 장비가 하나의 장비처럼 동작하도록 동기화 한다. 이때, 세션 동기화 시간보다 패킷 응답이 빠르면 문제가 발생한다. 비교적 긴 인터넷 게이트웨이로 방화벽이 사용될때 사용해보자.
  • 비대칭 경로 보정 강제로 대칭 경로를 만들어 인바운드와 아웃바운드 패킷이 동일한 장비를 통과하도록 한다. 방화벽 통신 링크가 필요하며 MAC 리라이팅이나 터널링 기법을 사용한다.

7. 통신을 도와주는 네트워크 기술

NAT/ PAT

NAT(Network Address Translation)
네트워크 주소 변환 기능으로서, 1 : 1 또는 주소 고갈 문제로 1 : N 으로 변환하기도 한다. 공유기, 통신사, 회사 네트워크, 라우터, 스위치등에서 사용하는 기능이다.

PAT(Port Address Translation)
NAT와 동일하다. 1 : N 변환을 NAPT 또는 PAT라고 부른다.

NAT/PAT의 용도와 필요성

NAT 환경으로 인해 애플리케이션을 개발할 때 더 많은 고려사항이 생겼고, 네트워크 엔지니어가 변경된 IP에서 장애가 일어나도 찾아내기 어려워 졌다.

  • IPv4 주소 고갈 문제 IPv4 주소가 고갈되어 세가지 해결법이 제시되었다. (서브네팅, NAT + 사설 IP, IPv6)
  • 보안 강화 외부와 통신할 때 내부IP를 숨기고 외부 IP로만 통신할 수 있다. 또한 NAT 과정에서 변환이 안되는 경우 통신이 안된다.
  • 주소 체계가 같은 네트워크 통신 사설 IP는 외부 IP로 변환되어 사용되기 때문에 다른 사설망의 IP와 겹쳐도 된다.
  • 불필요한 설정 변경 감소 IDC를 옮겨 새로운 공인 IP를 할당받는 경우, 외부와 NAT 설정은 변경해야 하지만, 내부 네트워크는 그대로 사용 가능하다.

동작 방식

NAT : 테이블을 거쳐 출발지/목적지 IP를 변환해준다.

PAT : NAT와 동일 하지만, IP와 포트까지 변환해준다.

PAT는 서비스 포트 개수가 제한되어 있어 재사용하는데, 포트가 모두 사용되고 있는 경우 PAT가 정상적으로 작동하지 않아 IP 풀을 구성해야 한다.

PAT IP가 목적지일 때는 어느 IP에 바인딩 되는지 확인할 NAT 테이블이 없기 때문에 DNAT에 적용되지 않는다.

SNAT, DNAT

기준은 NAT가 일어나기 전 시작 지점이다.

SNAT : 출발지 주소 변경 (사설 IP → 공인 IP, IP 숨길 때, 로드밸런서를 스킵할 때)

DNAT : 도착지 주소 변경 (로드밸런서에서 요청을 처리할 때, 대외망과 네트워크 구성할 때)

정적 NAT, 동적 NAT

정적 NAT : 매핑 관계를 사전 정의한다. 1:1 NAT, 테이블 타임아웃 없음.

동적 NAT : NAT 수행하며 매핑관계 저장. 1:N, N:M, 테이블 타임아웃 있음.

  • 동적 NAT는 출발지와 목적지 모두 정의된 것이 아니라 다수의 IP에서 정해지므로 pool이나 range로 설정되어 있다.

DNS(Domain Name System)

외우기 어려운 IP 주소 대신 문자열을 사용하는 방법이다.

도메인 주소를 이용하면 IP주소가 변경되어도 서비스를 유지할 수 있고, 여러개의 IP 주소를 사용할 수 있다.

사용자가 도메인 주소를 입력하면 DNS서버로부터 IP 주소를 받아 요청을 보낸다.

DNS 구조와 명명 규칙

보통 3계층으로 이루어져 있으며, 128 계층까지 가능하고, 한 계층에 최대 63바이트, 전체 길이 255바이트이다. 도메인에는 알파벳, 숫자, -만 넣을 수 있다.

  • 루트 도메인 도메인을 구성하는 최상위 영역. DNS 서버는 사용자가 쿼리한 도메인에 대한 값을 갖고 있거나 캐시를 이용해 응답한다. DNS 서버에 해당하는 정보가 없으면, 루트 DNS로 쿼리한다.

DNS 동작 방식

클라이언트

DNS에 쿼리를 날려 IP 주소로 변환하는데, DNS 서버 없이 로컬에서 변환할 수 있다. 로컬의 hosts 파일에 도메인과 IP 정보를 저장하면 DNS 캐시에 정적 캐시로 저장된다.

성능상 이점 때문에 DNS 서버에 쿼리하기 전에 캐시를 먼저 확인하게 되는데, hosts 파일 외에도 질의 했던 내용들은 동적 캐시로 저장되어 사용된다.

DNS 서버

DNS 서버에서 모든 도메인의 정보를 가지고 있지 않다. 따라서 DNS 서버마다 정보가 분산 저장되어 있다.

  1. 로컬 캐시에 도메인 정보가 없다면 DNS에 쿼리를 보낸다.
  2. DNS 서버에도 해당하는 도메인 정보가 없다면 루트 DNS에 쿼리를 보낸다.
  3. 루트 DNS는 도메인의 TLD값을 확인하여 해당하는 TLD를 관리하는 DNS 정보를 응답한다.
  4. 응답받은 DNS 서버에 도메인 정보 쿼리를 보낸다.
  5. 응답받은 정보를 클라이언트로 반환하고, 캐시에 저장한다.

그림으로 나타내면 다음과 같다.

Master - Slave

DNS는 다른 Master-Slave 처럼 이중화 목적 또는, 읽기 쓰기 목적으로 나눠지지 않았다.

두 서버 모두 쿼리에 응답하고, Master 서버가 다운되고 만료시간까지 복구하지 못하면 Slave 서버도 다운된다.

Slave는 Master로부터 zone파일을 복제하여 동기화 하는데, Master에서 복제 가능한 서버를 지정할 수 있다.

GSLB(Global Server/Service Load Balancing)

DNS에서 동일한 레코드 이름으로 서로 다른 IP 주소를 동시에 설정할 수 있다. 이를 DNS 로드밸런싱이라고 한다.

DNS는 서비스 상태를 확인하지 않기 때문에 특정 서버에 문제가 있을때 문제가 생긴다. GSLB는 DNS의 문제점을 해결해 도메인을 이용한 로드밸런싱 구현을 도와준다.

GSLB는 DNS와 동일하게 도메인 질의에 응답하고 동시에 헬스체크를 하며 로드밸런싱(라운드 로빈)을 한다.

GSLB 동작 방식

  1. 사용자가 요청을 하면 Local DNS부터 확인하고,
  2. DNS 서버로부터 GSLB 정보를 얻는다.
  3. GSLB로부터 정보를 얻는다.

GSLB는 단순히 도메인 주소를 응답하는 것이 아니라 FQDN(풀 도메인)에 대해 헬스체크를 한다.

GSLB 구성 방식

  • 도메인 자체를 GSLB로 사용 해당 도메인에 해당하는 모든 레코드 설정을 GSLB에서 관리하는 방식이다. GSLB가 DNS 역할을 하기 때문에 헬스체크 기능이 불필요하고, GSLB가 모든 부하를 받게 된다.
  • 도메인 내의 특정 레코드만 GSLB로 사용 GSLB 적용이 불필요한 경우가 많아 특정 레코드에 대해서만 GSLB에게 이관하는 방식이다.
    • 별칭 사용(CNAME) 실제 도메인과 다른 도메인 레코드로 GSLB에 등록한다. 일반적으로 외부 CDN을 사용하거나 회사 내부 GSLB를 사용하는 도메인이 많은 경우 한번에 관리하기 위해 사용한다. DNS 서버로부터 새로운 도메인을 받아, NS에 다시 요청해 GSLB에 요청한다.
    • 위임 사용(NS) 실제 도메인과 동일한 도메인 레코드를 사용하며 도메인 전체를 위임하는 것이다. 도메인을 그대로 사용하고, IP 값을 통해 GSLB에 요청한다.

GSLB 분산 방식

  • 서비스 제공 여부를 체크해 트래픽 분산
  • 지리적으로 멀리 떨어진 다른 데이터센터에 분산
  • 지역적으로 가까운 서비스에 접속해 더 빠른 서비스 제공하도록 분산

헬스 체크를 통해 서비스를 안정적으로 제공하는 것 외에 다른 사이트로 서비스를 분산하는 것이 GSLB의 중요한 역할이다.

로드밸런싱 방식에는 라운드 로빈, 최소 접속, 해싱등 다양한 방법이 있다.

GSLB는 헬스 체크 모니터링 요소로 RTT/Latency와 IP 지역 정보를 제공한다.

  • 분산을 처리할때 지역정보를 통해 가까운 사이트로 분산처리 한다.

DHCP(Dynamic Host Configuration Protocol)

IP와 네트워크 정보를 동적할당 하고 테이블에 기록할때 사용되는 프로토콜을 뜻한다.

DHCP는 BOOTP 프로토콜을 기반으로 한다. 클라이언트 포트는 68, 서버 포트는 67이다.

DHCP 동작 방식

  1. 클라이언트는 DHCP 서버를 찾기 위해 브로드캐스트를 날린다. (UDP로 전송)
  2. DHCP 서버가 수신 후 클라이언트에게 할당할 IP, 서브넷, DNS정보등을 브로드캐스트로 전송한다.
  3. 서버로부터 받은 정보를 포함해 DHCP 요청을 브로드캐스트로 전송한다.
  4. 클라이언트로부터 받은 정보를 기록하고 정상적으로 수신했다는 응답을 보냅니다.

DHCP가 할당한 IP는 임대시간이 있어 임대시간이 만료되면 IP를 회수한다.

임대시간의 절반 이상이 지나고 클라이언트가 계속 사용중이라면, 위의 3,4 과정을 통해 갱신을 시도한다.

DHCP 서버 구성

DHCP 서버에 설정하는 값은 다음과 같다.

  • IP 주소 풀(범위)
  • 예외 IP 주소 풀
  • 임대 시간
  • 서브넷 마스크
  • 게이트웨이
  • DNS

DHCP 릴레이

DHCP에서 사용되는 패킷은 모두 브로드캐스트로 전송되기 때문에 네트워크마다 DHCP가 있어야 한다.

네트워크가 여러개인 환경에서 DHCP를 이용하려면 여러개 사항을 고려해야 한다. DHCP 릴레이 Agent를 사용하면 DHCP 서버 한 대로 여러 네트워크 대역에서 IP 풀을 관리할 수 있다.

다음과 같이 구성을 하여 여러개의 네트워크에서 하나의 DHCP를 사용할 수 있다.

이때 어떻게 통신이 이루어지는지 알아보자.

  1. 클라이언트가 브로드캐스트 패킷 전송을 한다.
  2. 릴레이 에이전트가 받아 출발/도착지 IP를 수정하여 DHCP 서버로 요청을 전달한다.
  3. DHCP 서버는 릴레이 에이전트에게 Offer를 유니캐스트로 보낸다.
  4. 3에서 받은 내용을 출발지 IP를 수정하여 릴레이 에이전트가 브로드캐스트로 전송한다.
  5. 클라이언트는 4에서 받은 내용으로 브로드캐스트로 보낸다.
  6. 5를 유니캐스트로 변환해 DHCP 서버로 전송
  7. DHCP 서버는 받은 내용을 기록하고 응답을 유니캐스트로 전송한다.
  8. 7에서 받은 내용을 브로드캐스트로 전환하여 전달한다.

DHCP와 DHCP 릴레이 Agent는 유니캐스트로 동작하기 때문에 같은 L2 네트워크에 존재해야 하모, DHCP 서버에는 유니캐스트로 전달하기 위해 DHCP IP 주소를 등록해놔야 한다.

profile
봄은 영어로 스프링

0개의 댓글