ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [네트워크] 최단 경로 우선 프로토콜 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 네이버
    정보를 보여줌


    반응형

    댓글

Designed by Tistory.