본문으로 바로가기

TIL 2021-12-02 RIPv2, OSPF

category TIL 2021. 12. 2. 18:06

RIP 장점

대역폭, 설정, 관리시간의 측면에서 overhead가 작다.

실행하기 쉬움

 

RIP는 벨만포드나 DV 알고리즘 기반의 routing protocol이다.

 

Route Selection에 hop count 사용함

hop count가 15 넘으면 discard함

 

default로 routing update는 30초마다 broadcast하는 것

 

이 프로토콜은 가장 긴 path가 15 hop으로 제한함

 

대체 라우트와 비교할떄 fixed metrics(hop count)를 사용함

 

이것은 RIP의 약점이지 DV의 약점은 아님. (Delay, bandwith 등 고려 안하고 hop만 봄)

 

많은 DV 알고리즘은 이런 문제가 없음

 

RIPv2

 

시스템의 모든 가능한 경로에 entry가 포함된 테이블을 유지한다

 

entry에는 Destination에 대한 거리 d와 거기로 가기 위한 첫 라우터 G가 있음

 

기간마다 routing update를 모든 neighbor에게 보냄

 

만약 neighbor G로부터 routing update가 도착하면 G와 공유하는 네트워크의 코스트를 더함

 

현 routing entry와 결과 거리 D'를 비교함

만약 현재 거리보다 새 거리가 더 작다면 새 라우트를 적용함

 

G=G'면 이전꺼보다 커도 새 metric를 사용함

 

 

Next hop field

 

0.0.0.0

만약 자신이 준 RIP update를 가지고 자기의 Routing table을 업데이트할꺼면 내 라우팅 hop에 새로 계산되는 next hop 주소는 RIP를 보낸 originator가 됨

 

Appendix A에 나온 상황에서 

 

Counting to Infinity

 

Routing Update 전에 해당 라우터를 거쳐야하는데 그 라우터 경로가 맛이 간 경우에 발생함

 

B가 맛이 갔는데 C가 B를 통해서 D로 보내려했다면 B는 B->D를 무한대로 바꾼 값과 C-D의 값을 다시 계산하여 C로 다시 보낸다.

 

<TN:X metric a>가 원하는 목적지에 가고 싶으면 TN로 가면 된다, 그리고 그 값을 a라고 표현한다라고 하자.

 

C:<TN:B metric 3>이라고 보내면 B<TN, _, unreachable>인 상태이므로

 

B는 C->D의 비용이 3이라고 알고 있기에 C->D로 가는게 더 빠르다고 생각한다.

<TN:C, metric(3+1)>을 다시 C에게 보낸다.

 

하지만 C의 metric에서 C->D는 10이기 떄문에 <TN:B, metric(4+1)>을 다시 B에게 보낸다....

 

Route update가 30초에 한번 벌어지게 되어서 이런 반복적으로 패킷 이동만 하는 현상이 발생함

 

Split Horizon

 

라우터가 metric을 학습한 곳으로 update를 보내지 않아서 문제를 피하는 방법

 

routing loop를 피하기 위한 DV 라우팅 프로토콜에 사용되는 방법중 하나다.

 

문제

 

라우터 1,2,3와 Destination이 순서대로 있다고 하자

2가 2->3의 연결이 끊어졌다고 1에게 보내려고 하는데 그전에 이미 2은 1에게서 metric을 학습한 상황을 가정하자.

그러면 Split horizon에 의해 2->3이 끊어졌다는 것을 1에게 보내지 않기 때문에, 2는 계속 1에게 다른 경로가 있을 것이라고 생각하고 패킷을 보낸다.

1은 2->3이 끊어졌다는 것을 학습하지 않았기 떄문에 계속 2로 패킷을 보낸다.

이러면 루프가 생김

 

Route Posioning , Posion Reverse

 

Router B가 C에게 routing table을 forward해도 Route posioning아래서 routing 정보를 안받아드림

Holddown time이 작동하고 있기 떄문

그리고 ICMP로 10.4.0.0이 도달할 수 없다고 notify함

 

posion reverse는 무한대로 세팅해서 보냄

 

Split horizon, route posion은 2개의 라우터 상에서는 루프 방지할 수 있으나 3개가 상호작용하는 순간부터는 루프 발생 가능성이 있다.

 

primary purpose는 network convergence 속도를 향상 시켜서 loop을 방지하는 것

 

Triggered Update goal

 

-Convergence speed improvement

 

만약 라우터가 metric을 바꿨다면 거의 바로 즉시 update message를 보냄(정기 update 시간이 아니어도)

 

똑같은 G에서 왔다면 크던 작던 업데이트함

결과적으로 바뀌었다면 직접적으로 연결된 router들에게 trigger함

그리고 cascade하며 다 업데이트됨

 

Protocol Specification

 

RIP는  IPv4 기반 네트워크를 통해 라우트 계산에 필요한 정보들을 교환하게 해줌

그 정보중 제일 중요한 것은 metric이고 1~15의 값을 가짐

RIP를 구현한 라우터는 Routing table을 가진다고 여겨짐

 

각 Entry는

  • 서브넷 마스크와 DST에 대한 IP 주소
  • metric(라우터에서 목적지까지의 총 비용)
  • DST에 가기 위해 가야하는 다음 라우터 IP 주소
  • route가 최근에 바뀌었는지 표시할 flag
  • outgoing 인터페이스 숫자

 

directed connected networks의 entries는 RIP에 지정되지 않은 방법으로 수집된 정보를 통해서 설정됨

 

directly connected network의 metric은 그 네트워크까지의 비용으로 설정됨

 

1이 평범한 값이다

더 복잡한 metric이 특정 네트워크의 선호를 표시하기 위해 설정될 수 도 있음

 

RIP Format

 

최대 504octets 4 +  20*25 (RIP Entry size(20octet)) + IP(20) +UDP (8) =504

 

 

OSPF

 

Link state routing protocol

 

각 OSPF 라우터는 동일한 DB를 유지함

DB로부터 가장 짧은 Path가 건설되어 routing table이 계산됨

하나의 Autonomous System에 의해 내부적으로 작동하도록 디자인됨

 

 

장점

 

topologies 변화에 빠르게 계산됨(Convergence time 적음)

추가적인 routing protection과 routing protocol traffic의 감소를 가능케 하면서 area routing capablity가 제공된다.

 

 

 

Hierarchial Routing Protocol

2-tier:

backbone area(Area 0)

Non-backbone Area

 

inter-area routing을 위한 Link state Protocol

Inter-area간의 link-state routing이 아님

 

 

Classfication of routers

 

Internel Router(normal routers)

같은 네트워크 안에 속해있는 모든 directly connected 네트워크가 있는 router

 

Area border router(ABR)

여러 area에 붙어있는 router(대체로 backbone area의 인터페이스를 가짐)

 

Backbone router

backbone에 연결되어있는 라우터

 

AS Boundary routers

다른 AS(Autonomous Systems)에 속해있는 라우터들과 정보를 교환하는 라우터

 

Network의 종류

 

Transit Network: 2개 이상 OSPF router가 연결된 네트워크

Stub network : OSPF 라우터가 딱 하나 연결된 네트워크

 

//// 혹은 이렇게도 나눌 수 있음

 

Point to point networks

 

Broadcast networks(DR/BDR 필요)

 

Non-broadcast Networks

많은 라우터가 붙어있는 네트워크지만 broadcast 능력이 없음.

두개의 모드

non-broadcast multi-access(NBMA)(DR 선출 필요)

broadcast네트워크의 OSPF 작동을 시뮬레이션함

Point to MultiPoint

point to point 링크의 모음

 

Termininology

Neighbor router

공통된 네트워크가 있는 라우터

 

Adjaceny

routing 정보 교환하기 위해 선택된 neighboring router간에 형성된 관계

 

DR이 선출되면 DR하고면 LSA를 주고받을수 있음

 

BDR은 DR하고만 연결할 수있음

 

Topology는 directed graph로 나타남

 

graph의 verticle은 Router와 network를 가지고 있다.

 

transit network는 incoming, outgoing edge를 가지는 것으로 나타난다.

stub network는 incoming edge만 있음

 

graph edge는 두 라우터가 point to point network로 연결되어 있을떄 연결됨

 

네트워크 나가는 cost는 없고 들어가는 cost는 있ㅇ므

 

OSPFv2는 2-tier hierarchial routing protocol이다

 

inter-area routing의 경우에는 topology db를 사용하고 다익스트라 같은 알고리즘을 사용하여 db로부터 SPF tree를 만듦

 

inter area와 exterior AS routing의 경우에는 topology 정보를 더함

 

<Area border GW, destination, aggregated cost>

 

 

LSA TYPE

 

1. Route LSA(TYPE1)

모든 라우터가 자신과 연결된 link 정보를 담아 만든 LSA

 

2.Network LSA(TYPE2)

DR로 선출된 라우터가 자신과 연결된 모든 link 정보를 담아 만든 LSA

 

3.Network summary LSA(TYPE3)

ABR이 Area간에 정보를 교환하면서 생성하는 LSA(다른 Area Network 정보)

->다른 Network의 topology를 구성할 필요는 없으니 Network정보만

 

4. ASBR Summary LSA(TYPE4)

ABR이 LSA TYPE5 정보를 전달하면서 생성하는 LSA(ASBR 라우터 정보)

->ASBR이 어디 있는지를 알려줌

 

5. Externel LSA(TYPE5)

ASBR이 타 라우팅 프로토콜의 Network 정보를가져오면서 생성하는 LSA(외부 네트워크 정보)

->다른 Network의 topology를 구성할 필요는 없으니 Network정보만

 

 

3은 다른 Area, 5는 외부에 정보를 주는거, 4는 외부로 나가기 위해 ASBR이 어디 있는지 알려주는거

 

Inter-area Topology

Router-LSA1.) router information

Network-LSA2).transit network information(TYPE2는 DR이 함)

 

Inter-area Reachablity Information

Summary-LSA

3,4

 

Exterior-AS Reachablity Information

AS-Externel-LSA(5)

 

 

 

1. R1가 다른 OSPF 라우터들에게 link 정보를 보냄

2.각 OSPF 라우터들은 R1에서부터 온 Router LSA를 받고 LSDB를 만듬

3.R2가 다른 OSPF 라우터들에게 link 정보를 보냄

4.각 OSPF 라우터들은 R2에서부터 온 Router LSA를 받고 LSDB를 만듬

5. R5까지 반복

6. 5번 Router LSA를 교환하면 모두 같은 LSDB를 가지고 있음

7. LSDB로 모두 같은 OSPF Topology map를 구성함

8. 만들어진 map으로 최단거리 계싼

9. 마지막으로 계산된 최단거리를 routing table에 설치함

 

Header Format

 

IP에 올림

 

IP Header 안에 OSPF Packet Header가 있음

 

Version: OSPF version number(v2니까 2)

Type: OSPF Packet TYPE( LSA TYPE 아님)

Router ID: 패킷 소스의 Router ID

Area ID: 패킷이 속해있는 area의 32bit 식별 주소

checksum

 

TYPE

 

Hello(1)

각 인터페이스마다 neighbor찾음

 

Database Description(DD) (2)

DB의 요약이 있는 Database Description

 

Link state Request(3)

LSA 헤더 보내서 LSA 요청함

 

Link State Update(4)

데이터베이스에 full LSA들 옮김

LSA 요구되거나 기간마다 flood됨

 

Link State Ack(5)

Link State Update에 의해 옮겨지는 LSA들 ACK함

 

 

Identifier : <LS TYPE, Link State ID, Advertising Router>

Age: <LS Sequence Number, LS Checksum, LS Age>

new: sequence number 크면 checksum 큼

 

Link State advertisement(LSA)

Router-LSAs(TYPE=1)

모든 라우터가 생성함

area에 수집된 router들의 인터페이스들을 말함

single area에서만 flooded함

 

Network-LSAs(TYPE=2)

DR에 의해 broadcast, NBMA에서 생성됨

네트워크에 연결된 라우터들의 목록을 가지고 있음

single area에서만 flooded함

 

Summary-LSA(3,4)

3: area border router에서 생성됨

4: ASBR boundary router에서 생성됨

 

AS-externel-LSA(5)

AS boundary router에서 생성됨

AS에서 flooded됨

'TIL' 카테고리의 다른 글

TIL 2021-12-05 Kernel Machines  (0) 2021.12.06
TIL 2021-12-03 OSPFv2,  (0) 2021.12.03
TIL 2021-11-30 NAT3, RIP(벨만포드)  (0) 2021.11.30
TIL 2021-11-29 NAT2  (0) 2021.11.29
TIL 2021-11-27 Deep Learning, Local Model  (0) 2021.11.27