-
[네트워크] 최단 경로 우선 프로토콜 OSPF (Open Shortest Path First)프로그래밍/컴퓨터 공학 2017. 11. 29. 13:55반응형
# OSPF
- Open Shortest Path First
- Link State 알고리즘을 사용하는 대표적인 라우팅 프로토콜임
- 개방형 표준이고, 클래스리스 라우팅 프로토콜임
- RIP을 보완하기 위하여 개발됨
# OSPF의 동작 과정
- Link : Rounter Interfaes
- State : 인터페이스에 대한 설명과 이웃 라우터들과의 관계 (description of an interface and its relationship to neighboring
routers)
- IP주소, 서브넷 마스크, 연결된 네트워크 종류 및 라우터 등
# OSPF의 동작 단계
- 1단계 네이버(Neighbor) 관계 형성 : OSPF 라우터는 먼저 헬로 패킷을 교환하여 네이버(Neighbor) 관계를 형성함
- 2단계 LSDB(Link-State Advertisement) 패킷을 교환하여 토폴로지 데이터베이스를 구성함
- 3단계 SPF(Shortest Path First) 알고리즘 : SPF(SHortest Path First) 알고리즘을 사용하여 각 목적지에 대한 초디ㅏㄴ 경로를 계산하여 라우팅 테이블을 작성함
# OSPF의 동작 과정
- 초기 상태에서는 네트워크 내의 모든 라우터들에게 LSA를 플러딩(Flooding) 함
- 이후에는 변화가 있을때에만 LSA를 전송함
- 30분마다 LSA를 플러딩함 : Link State Refresh
- OSPF의 영역(Area) : 라우팅 테이블의 최소화, 네트워크 변화의 지역적 처리 => AS를 여러 개의 작은 영역으로 분할함
# OSPF의 계위(Hierarchy)
- Backbone Area : 모든 영역을 연결하는 Area
- Backbone Router
- ABR (Area Border Router)
- NonBackbone, Internal routers
- ASBR (Autonomous System Boundary Router)
# OSPF의 3가지 테이블
- Neighbor Table : show ip ospf neighbor
- Topology Database (LSDB) : show ip ospf database
- Routing Table : show ip route
# OSPF 네이버 관계 수립
- 인접한 두 라우터는 헬로(Hello) 패킷을 교환하여, 네이버 관계를 수립하고 유지
- 헬로 패킷은 멀티캐스트 주소인 224.0.0.5를 사용하여 전송함
- 헬로 패킷 내의 해당 정보가 일치하면 네이버 관게를 형성함
- 네이버 관계가 형성된 상태를 양방향 (Two-Way) 상태라고 함
# OSPF 헬로 패킷
- IP 패킷으로 캡슐화
- 프로토콜 유형의 필드값이 89로 설정됨
# 헬로 패킷의 구성 요소
- * 표시 항목은 아웃된 라우터와 일치해야 함
Router ID
Hello and Dead intervals *
Neighbors
Area ID *
Router priority
DR IP address
BDR IP address
Authentication password *
Stub area flag *
- RID(Router ID) : OSPF에서 각 라우터를 구별하기 위한 고유의 식별자
- 32비트, 점-10진 표기법으로 표기함
- 활성화된 인터페이스와 IP 주소 중에서 가장 높은 값을 기본 RID값으로 사용함
- Hello Interval and Dead Interval : Hello 주기는 10초, Dead 주기는 40초
- Neighbor : 수신된 헬로 패킷 내의 네이버 필드에 자신의 RID가 있으면 그 네이버와 양방향 상태(Two-way State)가 형성된 것으로 판단함
- Area ID : 같은 영역에 있어야 네이버 관계를 수립함
- Router Priority(라우터 우선순위) : DR(Designated Router), BDR(Backup DR)을 선출함
- Authentication Password(인증 암호) : 인증이 필수는 아니지만, 활성화되면 암호가 일치해야 함
- Sub area Flag : 라우팅 업데이트를 줄이기 위한 방법
# 양방향 상태가 되기 위하여 일치해야 하는 항목
- 서브넷 주소와 서브넷 마스크
- 헬로 주기 (Hello Interval)
- 데드 주기 (Dead Interval)
- 영역 ID (Area ID)
- 인증 암호 (Authentication Password)
- 스텁 영역 플래그 (Sub area Flag)
# 네이버(Neighbor 상태)
- 다운 상태(Down State) : 아무런 정보를 교환하지 않는 상태
- 초기 상태(Initial State) : 정해진 주기마다 헬로 패킷을 교환
- 양방향 상태(Two-Way State) : 헬로 패킷 내의 해당 항목이 일치
- 완전 상태(Full State) : 모든 LSA를 교환하여 동일한 LSDB를 가진 상태
- 양방향(Two-way) 상태에서 모든 LSA를 교환하여 두 라우터가 동일한 LSDB를 가지면 Full 상태가 됨
# 네이버(Neighbor) 관계 형성의 예
- 헬로 패킷의 '보임' 목록에 자신의 RID가 기록된 헬로 패킷을 받으면 그 라우터와 양 방향 상태가 된 것임
# LSDB 교환 과정
- 1단계 : 가지고 있는 데이터베이스의 LSA목록을 교환함
- 2단계 : 가지고 있지 않은 LSA만을 요청하여 받음
# LSDB 교환 이후의 과정
- LSDB 교환 과정이 모두 끝나면 두 라우터는 모두 동일한 LSDB를 가지게 되어 완전 상태가 됨
- 완전 상태가 되면 SPF 알고리즘을 실행함
- 라우팅 테이블 작성함
# OSPF 토폴로지 데이터베이스 교환
- DR(Designated Router)과 DBR(Backup DR)의 설출
- 다중접속 (Multi-Access) 네트워크에서 OSPF 트래픽을 줄이기 위한 방법
- DR을 선출하여 다른 라우터는 DR하고만 네이버 관계를 형성
- 다른 라우터는 DR과만 라우팅 정보를 교환하고 DR이 다른 모든 라우터에게 LSA를 전달함
- DR에 장애가 발생하는 경우를 대비해서 BDR을 선출함
- DR이 필요 없는 점대점 링크와 DR이 필요한 LAN
- DR이 필요 없는 경우 : LSA를 교환함
- DR이 필요한 경우 : 라우터들끼리 협상하여 선출함, DR이 선출되면 LSA는 DR에게 보내지고 DR은 그것을 다른 라우터에게 전달
# DR과 BDR의 선출 과정
- OSPF 우선순위 값이 가장 크게 설정된 헬로 패킷을 전송하는 라우터가 DR이 됨
- 가장 높은 우선순위 값을 가진 라우터가 2개 이상 존재하면 가장 높은 RID값이 기록된 헬로 패킷을 전송하는 라우터가 DR로 선출됨
- 일반적으로 두 번째 높은 우선순위 값을 갖는 라우터가 BDR이 됨
- 우선순위 값이 0인 라우터는 DR이나 BDR이 될 수 없음
- 라우터에서 설정할 수 있는 우선 순위 값의 범위는 1~255임
- OSPF에서 완전 상태가 된 네이버들이 수행하는 관리 작업
- 헬로 간격마다 헬로 패킷을 전송
- 데드 간격 안에 헬로 패킷이 수신되지 않으면 장애가 발생하는것으로 간주
- 토폴로지가 변경되면 LSA를 업데이트하여 다시 SPF 알고리즘을 실행
- 각 LSA는 생성된 시간을 기준으로 30분마다 개별적으로 다시 플러딩
# SPF 알고리즘
- SPF(Sortest Path First) : 1959년에 네덜란드의 컴퓨터 과학자인 다익스트라(Dijkstra)가 개발
- 각 라우터를 트리의 루트에 두고 각 노드에 대한 최단 경로 계산
- 목적지까지 누적 비용을 계산하여 최소가 되는 경로를 선택
- OSPF Metrics (Cost) : 특정 인터페이스를 거쳐서 패킷을 전송하는 데 필요한 비용
- 대역폭에 반비례함, 대역폭이 크면 비용은 낮아짐
- 인터페이스의 비용은 기본적으로 10^8/Bandwidth로 계산함
- Fast Ethernet : 10^8/10^8(=100Mbps)=1
- 10M Ethernet : 10^8/10^7(10Mbps)=10
- T1 Serial : 10^8/1.522Mps=64
- Gigabit Ethernet의 출현으로 10^9/Bandwidth로 변경함
- 라우터 하위 명령어 auto-cost reference-bandwidth 1000을 사용함
- GE가 1, FE가 10, T1은 647이 됨
# OSPF 설정 과정
1. 라우팅 프로토콜로 OSPF를 설정함 : Process-id는 자체 식별용임
- RouterB(config)# router ospf process-id
2. 인터페이스를 선택함
- RouterB(config-router)# network ip-address wildcard-mask area area-id
- Wildcard Mask : 다수의 주소를 하나로 표기하기 위한 방법
- 0이면 일치하여야하고 1이면 상관없음
# 라우터 ID 지정 방법
- 1순위 : OSPF 라우터 하위 명령어인 router-id ip-address 명령을 통해 설정된 IP 주소를 RID로 사용함
- 2순위 : 하나 이상의 루프백 인터페이스(loopback interface)가 설정되어 있고 해당 루프백 인터페이스의 라인 상태와 프로토콜 상태가 업/업일경우 그 중에서 가장 큰 수의 IP주소를 RID로 사용함
- 3순위 : 업/업 상태의 물리적 인터페이스 중에서 가장 큰 수의 IP 주소를 RID로 사용함
# 루프백(loopback) 인터페이스
- 가상의 인터페이스 : 설정과 동시에 자동으로 구동 상태가 됨
- 물리적 인터페이스들과는 달리 인터페이스가 불능상태가 되지 않음
- 실제 케이블이나 연결된 장비가 없어도 구동 상태가 됨
- 루프백 인터페이스를 RID로 사용하면 OSPF의 처리 과정에 안정성을 부여할 수 있음
- 루프백 인터페이스 설정
RouterX(config)# interface lookback number
RouterX(config-if)# ip address ip-address subnet-mask
RouterX(config)# interface lookback 0
RouterX(config-if)# ip address 10.1.1.1 255.255.255.255
# OSPF 설정 검증
- show ip protocols 특권 명령어 : 라우트 전체에 대한 타이머, 필터, 메트릭, 네트워크에 관한 매개변수 등의 정보를 보여줌
- show ip route 특권 명령어 : 라우팅 테이블의 내용을 보여줌
# show ip route 명령어의 실행 결과
RouterX# show ip route
Codes: I - IGRP derived, R - RIP derived, O - OSPF derived,
C - connected, S - static, E - EGP derived, B - BGP derived,
E2 - OSPF external type 2 route, N1 - OSPF NSSA external type 1 route,
N2 - OSPF NSSA external type 2 route
Gateway of last resort is 10.119.254.240 to network 10.140.0.0
O 10.110.0.0 [110/5] via 10.119.254.6, 0:01:00, Ethernet2
O IA 10.67.10.0 [110/10] via 10.119.254.244, 0:02:22, Ethernet2
O 10.68.132.0 [110/5] via 10.119.254.6, 0:00:59, Ethernet2
O 10.130.0.0 [110/5] via 10.119.254.6, 0:00:59, Ethernet2
O E2 10.128.0.0 [170/10] via 10.119.254.244, 0:02:22, Ethernet2
O OSPF로 학습한 경로
[110/5] 관리거리/메트릭
0:01:00 경로가 업데이트된
이후 경과 시간
10.110.0.0 목적지 주소
via 10.119.254.224 다음 홉
라우터 주소
Ethernet2 출력 인터페이스
# show ip ospf 특권 명령어
- OSPF 라우터 ID, OSPF 타이머 설정값, SPF 알고리즘이 실행된 시간과 같은 기타 통계 정보 등을 보여줌
RouterX# show ip ospf
Routing Process "ospf 50" with ID 10.64.0.2
<output omitted>
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Number of areas transit capable is 0
External flood list length 0
Area BACKBONE(0)
Area BACKBONE(0)
Area has no authentication
SPF algorithm last executed 00:01:25.028 ago
SPF algorithm executed 7 times
<output omitted>
# show ip ospf interface 특권 명령어
- 해당 영역에서 OSPF가 설정되어 있는 인터페이스를 확인할 수 있음
- Hello Interval 등과 같은 타이머 간격과 네이버 인접관계도 보여줌
RouterX# show ip ospf interface ethernet 0
Ethernet 0 is up, line protocol is up
Internet Address 192.168.254.202, Mask 255.255.255.0, Area 0.0.0.0
AS 201, Router ID 192.168.99.1, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State OTHER, Priority 1
Designated Router id 192.168.254.10, Interface address 192.168.254.10
Backup Designated router id 192.168.254.28, Interface addr 192.168.254.28
Timer intervals configured, Hello 10, Dead 60, Wait 40, Retransmit 5
Hello due in 0:00:05
Neighbor Count is 8, Adjacent neighbor count is 2
Adjacent with neighbor 192.168.254.28 (Backup Designated Router)
Adjacent with neighbor 192.168.254.10 (Designated Router)
- 각각의 인터페이스 별로 네이버 정보를 보여줌
RouterX# show ip ospf neighbor
ID Pri State Dead Time Address Interface
10.199.199.137 1 FULL/DR 0:00:31 192.168.80.37 FastEthernet0/0
172.16.48.1 1 FULL/DROTHER 0:00:33 172.16.48.1 FastEthernet0/1
172.16.48.200 1 FULL/DROTHER 0:00:33 172.16.48.200 FastEthernet0/1
10.199.199.137 5 FULL/DR 0:00:33 172.16.48.189 FastEthernet0/1
- 특정 네이버에 대한 자세한 정보는 주소를 지정함
RouterX# show ip ospf neighbor 10.199.199.137
Neighbor 10.199.199.137, interface address 192.168.80.37
In the area 0.0.0.0 via interface Ethernet0
Neighbor priority is 1, State is FULL
Options 2
Dead timer due in 0:00:32
Link State retransmission due in 0:00:04
Neighbor 10.199.199.137, interface address 172.16.48.189
In the area 0.0.0.0 via interface Fddi0
Neighbor priority is 5, State is FULL
Options 2
Dead timer due in 0:00:32
Link State retransmission due in 0:00:03
# 학습요약# OSPF의 개요- OSPF는 클래스리스 링크 상태 라우팅 프로토콜로서, 고속 수렴을위해서 영역으로 분리한 계층을 사용함- OSPF 라우팅 알고리즘은 토폴로지 정보를 가지고 있는 LSDB를관리하며, 라우터는 이를 이용하여 다른 라우터에 대한 정보를 파악함- OSPF는 라우터들 사이의 네이버 인접관계를 수립하기 위하여헬로 패킷을 교환함- OSPF 네이버 상태 다운(down), 초기(initial), 양방향(two-way), 완전(full) 등- OSPF 라우터는 처리 과정을 나타내기 위하여 각 네이버를 OSPF 네이버상태(neighbor state) 중 하나로 정의함- OSPF는 트래픽을 줄이기 위해서, 이더넷과 같은 멀티액세스네트워크에서는 DR과 BDR을 선출함- SPF 알고리즘은 최상의 경로를 결정하기 위하여 링크의 대역폭에반비례하는 메트릭을 사용함# OSPF의 설정과 검증- router ospf process-id 명령어를 사용하여 OSPF를 활성화 할 수 있음- network 명령어를 사용하여 라우팅 업데이트 정보의 송신 및 수신에참여하는 인터페이스를 결정함- show ip ospf neighbor 명령어는 인터페이스별로 OSPF 네이버정보를 보여줌반응형'프로그래밍 > 컴퓨터 공학' 카테고리의 다른 글
소프트웨어 공학의 발전적 추세 Evolution of Software Engineering (0) 2017.11.27 소프트웨어 프로젝트 계획 Software Project Planning (0) 2017.11.25 소프트웨어 개발 생명주기 모델 Software Development Life Cycle Model (0) 2017.11.25 소프트웨어 개발 방법론 Software Development Methodology (0) 2017.11.25 소프트웨어 공학의 개요 Overview of Software Engineering (0) 2017.11.24