본문 바로가기
TIL (Today I Learned)/컴퓨터 시스템(CS)

[CS] 네트워크 기초, 네트워크 망 #2

by 둥굴프 2022. 12. 10.
이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다.

 

#1 라우팅? 포워딩? 라우팅 알고리즘

 

네트워크에서 패킷을 전달하는 두 가지 기능은 Forwading과 Routing이다.

포워딩Forwading : Input패킷을 output으로 내보낸다 (H/W)

라우팅Routing : 경로 선택 (S/W)

 

라우팅이랑 라우팅 알고리즘을 이용하여 포워딩 테이블을 만드는 작업

포워딩은 포워딩 테이블에 적힌 목적지 주소에 대응된 출력 포트로 패킷을 이동시키는 작업

 

1. Tradition routing algorithm

- 각각의 라우터가 독립적으로 포워딩 테이블을 만들고, 경로를 결정하는 방식

각각의 라우터가 다른 라우터와 연결되어 포워딩 테이블을 구성한다.

- 링크 상태 알고리즘 :  각각의 라우터들이 네트워크에 존재하는 모든 링크의 상태 정보를 모두 가지고 있고, 이를 통해 최단 경로를 찾는 알고리즘 > 다익스트라 알고리즘

- 거리 벡터 알고리즘 : 경로 결정을 거리와 방향 정보에 의존 > 벨만-포드 알고리즘

 

 

2. Autonomous System(AS), BGP

 

자율 시스템Autonomous System, AS : 동일한 프로토콜을 사용하는 네트워크 그룹

AS는 전 세계적으로 고유한 번호인 ASN(AS Number)을 부여받아야 한다.

 

 

Gateway를 통해 AS 간 연결

Gateway : 다른 AS와 연결된 라우터

 

만약 공유기를 사용한다면, 인터넷과 내 노트북을 위해 가장 먼저 거치는 게이트웨이는 공유기가 될 것이다.

( 터미널에서 ipconpig를 입력했을 때의 '기본 게이트웨이'가 이것이다. )

 

 

AS간 라우팅을 위해 각 라우터는 이에 대한 프로토콜이 존재해야 한다.

Intra-AS : AS내에서의 라우팅

Inter-AS : AS와 AS간의 라우팅

 

Inter-AS 라우팅을 위한 프로토콜

 

1) Interior Gateway Protocols (IGP)내부 라우팅 프로토콜 :

- RIP (Routing Information Protocol)

- OSPF (Open Shortest Path First)

- IGRP (Interior Gateway Routing Protocol)

 

2) BGP (Border Gateway Protocol)AS간 라우팅 프로토콜 :

 

- eBGP : 서로 인접한 게이트웨이들의 경로에 대한 정보 교환에 대한 프로토콜

- iBGP : AS안에서 어떤 라우터로 가면 원하는 AS로 전달될 수 있는지에 대한 프로토콜

3d 라우터의 도달 가능성을 모든 라우터에게 전파하려면 우선 3d와 3a 라우터간의 iBGP 연결을 사용해야 하고, 3a 라우터와 2c 라우터는 eBGP 연결을 사용하여 서로 다른 AS 간의 연결을 이루어야 한다.

🤔 그렇다면 그 데이터를 2c에서 2b에게 알릴때는 위에서 말한 IGP인 OSPF를 사용해야 하는거 아닌가?

왜 iBGP를 사용해야하는가? 🤔

결론은 OSPF는 AS 내부에서 한 라우터의 정보를 동일한 AS 내부에 있는 다른 라우터에게 전달할 때 사용하는 것이고, 위 상황은 AS2내부에서 일어나고 있지만 정보는 다른 AS의 정보이다. 따라서 iBGP를 사용해야한다.

 

- 인접한 BGP들은 서로 메세지를 보내 정보를 교환

(1) OPEN: 인접 BGP와의 연결을 시작할 때 사용

(2) UPDATE: 새로운 경로에 대한 정보를 인접 BGP에게 전달

(3) KEEPALIVE: 인접 BGP와의 연결이 아직 유효한지 확인할 때 사용

(4) NOTIFICATION: 이전에 보낸 경로 정보가 틀렸다는 것을 알려줄 때 사용

 

3. Software Defined Network(SDN)

- 중앙에 라우팅 서버가 존재해서 서버의 판단 하에 경로를 설정하는 방식

 

- 중앙 컨트롤 타워 하나에서 여러 라우터들의 관리와 제어가 가능하기 때문에, 라우터 하나하나마다 컨트롤 평면을 위한 네트워크 관리자가 필요하지 않습니다. 따라서 그만큼 관리의 효율성을 증대시킬 수 있다.

 

일반적으로 SDN은 2가지 방법으로 네트워크 복잡성을 줄인다. 첫째, 루트를 결정적으로 제어할 수 있다. 기존의 적응형 네트워크에서 관리자는 컨버전스가 끝나기 전까지 무엇이 공유되는지 실제로 알 수가 없었다. 반면 SDN에서는 한 발신자가 일종의 스퀘어 댄스, 즉 SDN 컨트롤러를 호출하는 방법으로 관리를 구현한다. 둘째, 계층적 구조는 그 자체로 복잡성을 줄인다. 기존 인터넷이 수십만 대의 라우터가 포함된 라우터의 간의 외침으로 연결된 평면적인 네트워크라면, SDN에서는 이를 세그먼트(autonomous systems, AS), 즉 세그먼트 간의 첫 루트와 그 내부의 두번째 루트로 쪼갠다. 후자가 라우터 외침을 기반으로 한 프로세스다.

원문보기:
https://www.ciokorea.com/news/224414#csidxbe5a81a65f379c998830bcd5501089a 

 

칼럼 | \'단점 있어도\' SDN을 도입해야 하는 이유와 방법

최근 필자는 엔터프라이즈 네트워크 운영 관리자 5명을 만났다. 이들은 공통으로 클라우드 장애에 대해 매우 우려하고 있었다. 모든 장애가 네트워크

www.ciokorea.com

 

위 칼럼은 한번 읽어보길 권장한다.

SND을 이해하는 데 도움이 된다.

 

 

#2 라우터 내부 알고리즘

라우터가 위의 라우팅 알고리즘을 통해 패킷을 받았다고 생각해보자

라우터는 패킷의 IP 헤터를 보고 어디로 보낼지 결정할 것이다.

IP 헤더에는 목적지 IP주소에 해당하는 정보가 있다.

이를 forwading table을 비교해서 Longest Prefix Match를 통해서 인터페이스를 선택한다.

(목적지 기반 전달)

 

경로를 결정하면 메모리 교환이 이뤄질 것이다.

 

1. 라우터의 4가지 요소 : 입력포트, 스위칭 구조, 출력포트, 라우팅 프로세서

 

라우터 구조

 

1. 라우터로 패킷이 들어오면 우선 입력 포트로 들어오게 된다.

2. 입력포트에서는 라우팅 프로세서에서 계산한 포워딩 테이블을 참조한다.

3. 해당 패킷이 어떠한 출력 포트로 나가는지 결정한다.

4. 스위칭 구조를 통해 실질적인 출력포트로의 이동한다.

5. 최종적으로 출력포트에서 패킷이 빠져나간다. 

 

 

#3. Router의 내부 구조와 Inline

 

라우터도 컴퓨터.

Cisco 운영체제 IOS

NIC 2개 (내부, 외부)

데이터가 NIC에서 Kernel mode, User mode로 계층을 옮길때마다 많은 연산비용이 발생한다.

그렇기에 낮은 수준에서 처리가 될 수록 연산비용이 줄어들고 '가속'된다.

 

Frame 단위의 데이터가 내부NIC에서 들어오면 Kernel mode에서 Packet으로 분해하여 인터페이스를 결정한다.

이후 다시 Frame단위로 캡슐화되어 해당 외부NIC를 통해 전송(Bypass)시킨다.

이 과정에서 인터페이스를 결정하지 않는다면 해당 데이터는 Drop된다.

(외부 NIC에서 데이터가 들어올 경우 Inbound 됐다고 표현한다)

이 '처리'를 라우터에 관련된 것만 한다면 '라우터'이다.

보안적인 이유로 데이터를 필터링하면 '방화벽'이다. (패킷 필터링 방화벽)

 

 

 

#4. Inline 구조와 Out of path 구조

 

네트워크 디바이스는 주로 Inline구조

게이트웨이를 기준으로 내부망과 외부망이 구분된다.

네트워크를 고속도로로 생각한다면, 라우터나 인라인 장치들을 톨게이트라고 생각하면 된다. 자동차가 패킷이라고 생각하면 된다.

통과해서 지나가는거죠, 그러면 인라인 구조인 거에요

인라인 구조에서 할 수 있는 것 두 가지 : Bypass 혹은 Drop

 

 

Out of path

포트 미러링 ~ L2 Distribution에서 지원

하나의 인터페이선 선을 따서 어떤 장치에 꼽아서 패킷을 Copy시킨다.

Read only, 정보를 읽기만 한다.

원본가 사본이 똑같으면 '미러링', 특정 포트를 복사하기 때문에 'Port Mirroring'이라고 한다.

포트 미러링을 하게되면 Distribution의 CPU사용량이 증가하여 과부하가 걸린다.

이 때 어떤 장치가 Out of path다. Sensor(탐지)일 가능성이 높다.

네트워크 장애가 나는지 검사 > 장애 대응 센서

DPI 실시 > 네트워크 침입,디텍션 시스템 : NIDS

 

Distribution의 과부하를 피하기 위해 탭 스위치가 존재한다.

탭 스위치는 모든 패킷을 Bypass 시킨다. 그리고 Copy한다.

탭 스위치는 연결된 인터페이스 수만큼 copy하기 때문에, CPU과부하가 발생하기 쉽다.

만약 탭 스위치에 n개의 센서가 연결되어 있다면, 탭 스위치는 하나의 패킷을 n번 복사하는 프로세스를 실행한다.

 

과속 감시 카메라 : 과속은 못막는다. 하지만 과속을 인지할 수 있다.

 

 

 

 

 

 

 

참고 블로그 :

https://god-gil.tistory.com/50

https://jooona.tistory.com/53

https://wogh8732.tistory.com/33?category=670138 

 

 

 

 

긴 글 읽어주셔서 감사드립니다.

22.12.10

댓글