라우터

원래벌레·2022년 11월 14일
0
post-custom-banner

🌞 라우터

🌼 라우터의 역할

경로(Path)설정
목적지까지 갈 수 있는 적절한 경로를 설정한다.
외부의 네트워크로 포워딩 하는 역할을 한다.

스위칭
데이터 패킷을 스위칭한다.
패킷 스위칭은 메세지를 패킷 단위로 잘라서 전송하는 방식이다.
목적지를 정해놓는 헤더와 데이터 부분으로 구성된 패킷을 이용하는데,
이게 병원 심장박동기처럼 간헐적으로 증가 및 감소하는 형태를 보인다.
패킷 스위칭은 또 데이터 그램 방식과 회선방식으로 나뉜다.
전자는 비연결형, 후자는 연결형 방식이다.

라우팅
라우터가 라우팅 테이블을 구성하는 것을 말한다.
라우팅 테이블의 구성은 Network 주소와 Interface로 구성이 된다.
라우터의 경우 다수의 Interface를 가지고 있다.
이 Interface로 나가게되면 Network주소로 가게된다.


🌼 라우팅 프로토콜

라우팅 프로토콜
라우터들을 Autonomous System으로 묶는다.
이렇게 묶여진 라우터들은 내부 라우팅 프로토콜인
RIP, IGRP, OSPF, EIGRP에 의해서 서로서로를 연결한다.

그리고 Autonomous System을 대표하는 라우터의 한 interface를
외부 라우티 프로토콜인 EGP, BGP를 통하여
다른 Autonomous System의 연결을 한다.


거리벡터 라우팅의 개념
RIP, IGRP에서 사용을 한다.

주기적으로 자신의 이웃 라우터에게 자신의 라우팅 테이블 전체를 전달한다.

자신의 전체 라우터를 전달하기 때문에 중복 되거나 불필요한 데이터도 보내게 된다. 이에 따라 대역폭 낭비가 일어난다. (단점)

convergence가 느리다. 여기서 convergence란 AS 전체에 라우터 정보를 갱신 하는 것을 말한다. (단점)

RIP의 경우 최대 홉 카운트가 15로 제한이 돼있다. 그래서 RIP의 경우 큰 네트워크에는 동작 할 수 없다. (단점)


링크상태 라우팅의 개념

"링크상태 라우팅이 일어나는 과정"  

거리벡터 라우팅의 비교되는 개념으로 문제점을 해결하기 위해 등장

OSPF에서 사용이 된다.

같은 AS내의 라우터들끼리 자신이 가지고 있는 링크 상태를 공유한다.
이렇게 하는 경우 각 노드와 링크의 정보를 모든 라우터가 공유하게 된다.
이것을 바로 토폴로지라고 한다.

이렇게 생겨난 토폴로지 데이터베이스를 SPF 알고리즘을 돌린다.

Shortest Path First Tree를 만든다. 사이클이 있는 경우 패킷이 전달이 되지 않고 계속 돌기만 하기 때문에 로비 없는 트리를 생성한다.

위의 Tree를 통해서 라우팅테이블을 구성한다.

빠른 convergence (장점)

변화시 교환 정보가 작다. (장점)

모든 토폴로지 관리로 많은 CPU와 메모리를 사용한다. (단점)


RIP에 의한 라우팅 테이블 갱신과정의 예

X, Y, Z 라우터는 E, C, D, B로 향하는 방법을 알고 있다. 그런데 각각이 다른 HOP수를 통해서 해당 E, C, D, B로 갈 수 있는데 이에 대한 최적의 값들을 가져온 것이 A의 라우팅테이블이 된다.


RIP에 의한 라우팅 테이블 갱신 동작상세

맨 왼쪽의 A라우터의 라우팅 테이블을 보게되면, 직접적으로 자신과 연결되어 있는 네트워크에 대한 정보가 기입되어 있다. hops 부분이 1인 값들이 저장되어 있다. next router의 값이 - 로 되어있는 이유는 1, 2, 3번 네트워크 모두 A라우터가 직접 연결되어 있기 떄문에 어떠한 라우터도 거치지 않기 때문에 해당 부분이 비어있다.


A가 B로부터의 RIP 메시지를 수신한 경우의 사진이다. B라우터는 A라우터에게 RIP메시지에 자신의 라우팅 테이블 내용을 보내주게 된다. 이에 따라 A라우터의 라우팅 테이블에는 4번과 5번 네트워크로 가는 방법이 추가됐다. 여기서 2번 네트워크로 가는 부분은 갱신이 되지 않았는데, 그 이유는 갈 때 가장 최적의 방법 즉 홉수가 가장 작은 것으로 갱신이 된다. 2번 네트워크를 가는 경우는 B라우터를 거쳐 가는 것이 아니라 직접 가는 것이 더 빠르기 때문에 갱신이 되지 않았다.


RIP에서의 Good News 전파동작

왼쪽 상단의 사진을 보면 N1의 power가 off된 상태이다. 그에 따라 라우터들의 라우팅테이블을 보면 N1으로 가는 hops가 무한대로 되어 있는 것을 볼 수 있다.

그다음 사진을 보면 N1네트워크의 power가 on이 됐다. 이 경우 Good News를 전파하게 된다. 직접 연결되어 있는 A라우터가 이 Good News를 받아 네트워크 N1으로 가는 라우팅테이블을 갱신한 모습이다.

그 아래 부분도 모두 갱신을 이어가는 모습이다.


RIP에서의 Bad News 전파동작시 문제점

위의 사진은 N1이 Up 상태에서 Down이 됐을 때 발생 할 수 있는 문제에 대한 사진이다.

N1이 다운이 되면서 N1에 직접적으로 연결되어있는 A라우터는 N1에 해당하는 라우팅테이블의 홉수를 무한대로 변경을 하였다. 그리고 이 내용을 갱신하기 위해서 내용을 보내야 하는데, 그 전에 B라우터가 자신에 대한 정보를 갱신하라고 이웃한 라우터에게 자신의 라우팅테이블을 공유를 하였다.

이를 받은 A라우터는 N1네트워크로 향하는 홉수가 무한대이기 때문에 이것보다 B라우터를 통해서 N1 네트워크로 가는 것이 효율적이라고 생각을 하고 B라우터를 통해서 N1으로 가라고 라우팅테이블을 갱신을 한다.

이렇게 되어버린 경우 Infinite Loop의 문제가 발생하게 되는 것이다.


해결방법

최대경유 라우터의 개수제한 방법 : 최대 경유라우터의 개수를 16으로 제한함

분할-수평 (Split horizon) 방법

포이즌 역처리(Poison reverse) 방법

트리거된 업데이트 (Triggered update) 방법


Triggered Update 방식 동작 예

n1이 다운이 되면 업데이트 메시지를 바로 보내는 방법이다.

하지만 이러한 트리거드 업데이트 방법에는 문제점이 있다.
1) 메시지가 분실 된 경우
2) 메시지가 지연 도착한 경우

이러한 Triggered Update 동작을 해결하기 위해 나온 것이
Holddown timer를 이용한 Trigged Update 방식 이다.

holddown 방식은 n1이 down이 되면 바로 n1=무한n1 = 무한 업데이트 메시지를 바로 보낸다. 그리고 holddown이 이 때 켜지는데 holddown이란 n1으로 가는 라우터의 갱신 정보를 갱신하지 않고 버린다.
그리고 A라우터로 부터 일정시간 이후에도 RIP 메시지가 수신 되지 않으면 B라우터는 n1=무한n1 = 무한 을 다른 라우터들에게 보낸다.


분할-수평 방법

A라우터의 경우에는 그 누구보다 N1, N2 네트워크의 정보를 잘 알고 있을 것이다.

그리고 B라우터의 경우에는 N2, N3의 정보를 누구보다 잘 알고 있을 것이다.

이 기본적인 개념을 가지고 라우팅테이블에 있는 모든 내용을 메시지에 보내지 말고 인터페이스에서 더 멀리 있는 정보에 대해서만 보내는 방법이다.

N1이 down 됐을 때 수평 분할 방법을 이용하여 라우팅 테이블을 전파 할 때 위와 같이 N1으로 가는 업데이트 패킷을 A라우터 쪽으로 보내지 않는다.

그리고 일정시간 라우터 A로부터 RIP가 오지 않으면 라우터 B는 n1으로 가는 홉수를 무한대로 설정하여 다른 라우터들에게 전달을 한다.


포이즌 역처리 방법

라우팅테이블에서 자신이 더 잘 모르는 경우.
즉 어떤 네트워크로 가는 길이 더 긴 경우에는 16으로 값을 채워서 보낸다.


거리 벡터 라우팅 방식의 또 다른 문제점

최적 라우팅을 지원할 수 없음

최적의 라우팅의 기준은 여러가지가 있다.

전송속도, 응답시간, 신뢰성등 하지만 거리벡터 라우팅 방식은 오직 홉수를 기준으로 라우팅을 한다.

그결과 위 사진과 같은 결과가 나타나게 된다.

현재 A라우터가 N2네트워크로 향 할 때 홉수로만 따지면 C라우터로 향하는 인터페이스로 가는 것이 빠를 것이다. 하지만 전송속도를 보면 해당 인터페이스의 전송속도는 10Mbps이다. 하지만 B라우터를 거쳐 C라우터로 가는 인터페이스를 보면 100Mbps의 전송속도를 보이고 있다.

결론적으로 전송속도가 100Mbps 쪽으로 가게되면 10배 빠른 속도로 N2에 갈 수 있다. 하지만 홉수만을 따지는 거리벡터이기 때문에 가장 빠른 길로 가지 않고 홉수가 가장 작은 곳으로만 가게된다.


OSPF
링크상태 라우팅 알고리즘

빠른 Convergence Time

Area개념으로 네트워크 효율적 관리

VLSM 지원 (RIPv1지원 못함)

네트워크 크기 제한 없음 (RIP 15홉 제한)

대역폭 활용 좋음 (RIP 30초마다 브로드캐스트 인한 낭비)

다양한 요소(속도 지연)를 경로설정에 사용가능 (RIP 홉만 고려)


OSPF 망구성

AS Boundary router는 EGP, BGP와 같은 외부 라우팅프로토콜을 통하여 AS의 라우팅 테이블을 전달한다.

Backbone Router : Backbone Network에 접속한 모든 라우터

Internal Router :
1) 지명 라우터 (Designated Router, DR)

  • Hello Protocol에 의해 자동적으로 결정됨
  • 다중 접속(Multi-Access)된 다른 라우터와 인접관계 형성
  • 지명 라우터를 통해서만 정보 교환이 이루어 짐

2) 백업 지명 라우터(Backup Designated Router, BDR)

  • Hello Protocol에 의해 자동적으로 결정
  • 지명 라우터가 다운된 경우 지명 라우터 역할 담당

OSPF 동작

"OSPF의 이웃관리"

OSPF는 이웃 관리를 한다. 내 주변에 누가 있는지 정보를 모은다.
224.0.0.5 주소로 송신을 하여, OSPF 동작하는 라우터만 수신
224.0.0.5 주소는 멀티캐스트 주소이다.
주기적으로 Hello 프로토콜 메시지를 보낸다.

"DR/BDR 선정과정"

Hello 메시지를 통하여 Priority 값을 보낸다. 이 Priority 즉 우선순위 값이 높은 경우에 DR로 선정이 된다.

두번째로 보는 것이 ID이다. ID 값이 큰 경우가 DR이 된다.

"링크변화 감지"

새로운 감지정보는 224.0.0.6을 통해 멀티캐스트로 DR, BDR에게 전송을 한다.

DR은 이 정보를 나머지 라우터들에게 알린다.

BDR은 이를 감시하고, 새로운 정보가 일정 시간내에 보내지지 않으면 자신이 DR이 되고 BDR을 선출한다.

profile
학습한 내용을 담은 블로그 입니다.
post-custom-banner

0개의 댓글