Transcript Routing

Routing
1
라우터를 통한 패킷의 전달
2
Source routing과 Next-Hop routring
3
Fowarding

라우터는 패킷을 받았을 때 목적지로 이 패킷을
보내기 위해서 라우팅 테이블의 정보를 조사하여
이 패킷의 다음 라우터(next hop)를 결정하고 이
패킷을 포워딩한다.
4
R1의
라우팅 테이블
5
라우팅 테이블 예
6
Linux에서의 예
7
앞의 예의 실제 망 구성
8
라우팅 프로토콜

정적 라우팅(static routing)


동적 라우팅(dynamic routing)



라우팅 테이블의 정보는 변하지 않는다.
라우팅 테이블의 정보는 망의 상황에 따라서 변한다.
라우터들은 라우팅 정보를 주고 받으면서 이에 따라
라우팅 테이블을 구성한다.
라우팅 프로토콜

라우터들 간에 라우팅 정보를 주고 받는 방식을
규정한 것
9
라우팅 관점에서 인터넷 망 구성

AS(Autonomous System)




하나의 관리 기관에 소속된
라우터들의 집합
AS는 고유한 주소를
갖는다.
AS내의 라우터 간에는
동일한 라우팅 프로토콜이
동작한다.(IGP)
각 AS는 border router가
존재하면 border router
간에는 각 AS 간의 라우팅
정보를 주고 받는다.(EGP)
10
Autonomous System 1
Autonomous System 2
Subnet
1.2
R3
Subnet
2.1
R2
R6
Subnet
1.1
Subnet
1.3
R5
Subnet
2.2
R7
R1
R4
Subnet
1.4
R8
Subnet
2.4
Subnet
2.3
LEGEND:
Interior Gateway Protocol
Exterior Gateway Protocol
11
라우팅 프로토콜의 분류
Interior Gateway Protocol
(IGP)
Exterior Gateway Protocol
(EGP)
12
IGP
Routing
protocol
Shortest path
algorithm
Routing
algorithm
RIP
IGRP
Bellman-Ford
algorithm
Distance Vector
algorithm
OSPF
IS-IS
Dijstra algorithm
Link State
algorithm
13
Distance Vector Algorithm
(경로 계산을 위한 측정치는 시간이라고 가정)
1단계: 각 라우터는 ECHO 패킷을 이웃하는 라우터에 전송하여 링크의 시간
을 측정한다.
2단계: 각 라우터는 자신의 정보를 이웃하는 라우터에게 주기적으로 전송한다.
이 정보는 모든 라우터에 도달하기 위한 시간을 포함한다.
3단계 : 각 라우터는 이웃 라우터의 정보를 이용하여 모든 라우터에 이르는 시간을 계산
하여 자신의 정보를 갱신한다.
14
각 라우터에 이르는 시간의 계산
B
Echo 패킷
A
J
m sec
(TAB, TAC, TAD, TAE)
TB = m + TAB
TC = m + TAC
TD = m + TAD
TE = m + TAE
Ti sec
C
D
E
15
Distance Vector Algorithm의 예
16
Updating routing table
17
Link state Routing Algorithm


이웃 라우터를 찾는다. (주기적으로 Hello message 를
보낸다.)
각 이웃 라우터와의 링크 비용(link cost)를 계산한다.





Link cost는 여러가지가 될 수 있다.(시간, 대역폭, 트래픽 양 등등)
Link State packet을 구성한다.
Link State packet을 망의 모든 라우터에게 전송한다.
(broadcast)
모든 라우터로부터 받은 Link State Packet을 사용하여 link
state database를 구성한다.
Link state database를 사용하여 모든 라우터에 이르는 최단
경로(shortest paths)를 계산한다.
18
Link State Packet의 구성
19
Link state routing의 예(1)
Step1: 이웃 노드로부터 링크 상태 정보(link state
information)를 모아서 링크 상태 패킷(link state
packet)들을 만든다.
5
B
2
A
2
2
C
3
1
3
D
F
1
1
3
E
Link state packets
A
seq#
age
B 2
C 5
D 2
B
seq#
age
A 2
C 3
D 2
C
seq#
age
A 5
B 3
D 3
E 1
F 1
D
seq#
age
A 2
B 2
C 3
E 1
E
seq#
age
C 1
D 1
F 1
F
seq#
age
C 1
E 1
20
Link state routing의 예(2)
Step 2: 링크 상태 정보를 모든 노드들에 전달한다.


link state packet을 만든다.
모든 노드에 flooding한다.
Step 3: 최단 경로를 계산한다.


전달받은 링크 상태 정보에 기초하여 각 노드는 링크
상태 DB(link state database)를 만든다.
Dijkstra algorithm을 사용하여 최단 경로를 계산한다.
21
Link State Database
5
B
2
A
3
2
2
C
3
D
1
F
1
3
1
E
Link #
Cost
Link #
Cost
Link #
Cost
A-B
A-C
A-D
B-A
B-C
B-D
C-A
2
5
2
2
3
2
5
C-B
C-D
C-E
C-F
D-A
D-B
D-C
3
3
1
1
2
2
3
D-E
E-C
E-D
E-F
E-C
E-E
1
1
1
1
1
1
22
AS 간(inter-AS) 라우팅:
BGP (Border Gateway Protocol)

BGP를 통해서 각 AS는
1.
2.
3.
이웃 AS로부터 서브넷 도달 정보(subnet
reachability information)를 얻는다.
AS내의 모든 라우터에 이 도달
정보(reachability information)를 전달한다.
도달 정보와 정책(policy)에 근거하여 목적지
서브넷에 도달하기 위한 “good” 경로를
결정한다.
BGP 메시지


BGP 메시지는 TCP를 사용.
BGP 메시지:




OPEN: TCP 연결 설정하고 인증
UPDATE: 새로운 경로를 알려줌
KEEPALIVE: UPDATE 메시지를 보내지 않을
경우 상대방의 상태를 확인
NOTIFICATION: 에러를 보고하거나 연결을
종료
BGP 예(1)
AS 1
N1
AS 2
N2
R1
N3
1
R2
1
R51
AS 3
R3
AS 5
R52
R4
AS 4
BGP 예(2)

R1(AS1의 BGP 라우터)




IGP를 통해서 AS1 내의 네트워크 정보를 수집
R1은 BGP UPDATE 메시지를 모든 이웃 BGP 라우터에
보낸다.
The UPDATE message에는 다음의 정보 포함:
 AS_Path: {AS1}
 Next_Hop: {R1’s IP address}
 NLRI: {N1, N2, N3}
R2, R3(AS2와 AS3의 BGP 라우터)

R1으로부터 UPDATE 메시지를 받은 R2과 R3는 R1을
통해서 도달 가능한 AS1 내의 네트워크가 무엇인지
알게 된다.
BGP 예(3)
AS 1
N1
AS 2
N2
R1
N3
R2
2
R51
AS 3
R3
AS 5
2
R52
R4
AS 4
BGP 예(4)

R2은 R51에게 다음의 정보를 포함한
UPDATE message를 보낸다.




AS_Path: {AS1, AS2}
Next_Hop : {R2’s IP address}
NLRI: {N1, N2, N3}
R3는 R4에게 다음의 정보를 포함한
UPDATE message를 보낸다.



AS_Path: {AS1, AS3}
Next_Hop : {R3’s IP address}
NLRI: {N1, N2, N3}
BGP 예(5)
AS 1
N1
AS 2
N2
R1
N3
R2
R51
AS 3
R3
AS 5
3
R4
AS 4
R52
BGP 예(6)

R4는 R52에게 다음의 UPDATE message를
보낸다.



AS_Path: {AS1, AS3, AS4}
Next_Hop : {R3’s IP address}
NLRI: {N1, N2, N3}
BGP 예(7)
AS 1
N1
AS 2
N2
R1
N3
R2
R51
AS 3
R3
AS 5
R52
R4
AS 4
BGP 예(8)

R51와 R52(AS5의 BGP 라우터들)

R2로부터 UPDATE 메시지를 받은 R51은 다음의 사실을 알게 된다.



R4로부터 UPDATE 메시지를 받은 R52은 다음의 사실을 알게 된다.




AS1의 네트워크들은 R2를 통해서 도달 가능하다.
그 경로는 {AS2, AS1}이다.
AS1의 네트워크들은 R4를 통해서 도달 가능하다.
그 경로는 {AS4, AS3, AS1}이다.
R51와 R52는 BGP UPDATE 메시지를 교환한다. 이들은 더 좋은
경로를 선택한다.
경로를 선택할 때 UPDATE 메시지에 있는 AS-path list를 참조하여
다음의 사항을 결정한다.



경로에 순환이 있는가?(Route loop)
최단 경로에 근거한 경로의 선택(shortest path vector)
AS policy에 근거한 경로 선택(policy routing)