■ OSPF
● 구성방법
1. router ospf[프로세스 ID]
- 프로세스 ID는 라우터 안에서만 구분
- EIGRP의 AS 번호와는 달리 각각의 라우터의 번호가 달라도 상관없음.
2. 라우터 ID 지정
3. 네트워크 및 에이어리 지정
R1(config)#router ospf ?
<1-65535> Process ID
R1(config)#router ospf 100
R1(config-router)#net 192.168.10.0 0.0.0.255 area 0
R1(config-router)#network 10.10.10.0 0.0.0.3 area 0
(config-router)#network 100.100.100.0 0.0.0.255 area 0
※ OSPF는 루프백 인터페이스는 호스트로 인식
R1(config)#int lo 0
R1(config-if)ip ospf network point-to-point
※ 2-1 라우터 ID
- 라우터끼리 주고받은 정보를 바탕으로 에어리어의 구성도를 만들고
다른 에어리어나 외부 네트워크가 어느 라우터와 연결되는지 파악함.
- 이 때 라우터를 구분하는 것이 라우터 ID
1. 관리자가 직접 입력
2. Loopback interface 중 가장 높은 IP
3. 실제 interface에 설정된 IP 중 가장 높은 IP
※ AREA
- OSPF를 관리하는 영역
- 0번을 BACKBONE AREA라고 함.
- 모든 AREA는 0을 통과해서 연결됨.
※ 정보 확인
R1#show ip route
R1#show ip protocols
R1#show ip ospf neighbor
R1#show ip ospf database
■ OSPF 패킷
1) Hello
- OSPF 네이버 관계를 형성하고 유지하는데 사용
- Hello 패킷을 교환하여 안의 정보를 확인 후 네이버 관계를 맺으며
일정 시간동안 Hello 패킷을 수신하지 못하면 네이버 관계를 해제
- 패킷 내의 정보
a. AREA ID
b. Stub
c. Authentication
d. Hello / Dead interval
e. SubnetMask
f. MTu
g. DR / BDR
h. OSPF Priority(우선순위)
i. Router-ID
a ~ e 까지의 정보가 일치해야 네이버 형성이 가능
2) DBD (Database Description , DDP)
- 링크 상태 데이터베이스에 있는 LSA들을 요약한 정보
- LSA들을 교환하기 전에 자신의 링크 상태 데이터베이스에 있는
LSA 목록을 상대 라우터에게 알려주기 위해서 사용
3) LSR (Link State Request)
- 상대 라우터가 보낸 DBD를 보고 자신에게 없는 네트워크 정보가 있으면
상세한 내용을 보내라고 요청할 때 사용
4) LSU (Link State Update)
- 상대 라우터에게 LSR을 받거나 네트워크 상태가 변했을 경우
해당 정보를 전송할 때 사용
5) LSA (Link State Acknowledge)
- DBD/LSR/LSU 패킷을 정상적으로 수신했음을 알려줄 때 사용
※ LSU패킷을 전송했는데 LSA패킷을 수신하지 못하면, 16번 재전송
16번 전송시 LSA패킷을 못 받으면 네이버 관계 해제
■ OSPF 상태
1. Down State
- OSPF라우터가 네이버 라우터와 어떤 정보도 교환하지 않은 상태.
- OSPF가 설정되고, 헬로 패킷을 전송하지만 다른 라우터에게서는 못받은 상태
- Full State에서 데드주기 동안 OSPF 패킷을 받지 못한 상태
2. Init state
- 자신은 Hello 패킷을 수신했지만 Hello를 송신하지 않은 상태
- Hello를 수신했지만 수신받은 내역에서 자신의 Router-ID가 없는 상태
3. Two(2)-way State
- 네이버와 쌍방향 통신이 이루어진 상태
- Hello 패킷의 송/수신이 완료된 상태
- DR/BDR/이 선출
4. Exstart State
- 두 네이버 라우터 간 마스터/슬레이브 관계를 수립
- DBD를 먼저 주는 쪽이 Master Router
- DBD를 나중에 주는 쪽이 Slave Router
- Router-ID가 큰 라우터가 Master
5. Exchange State
- DBD 패킷을 교환하는 단계
- DBD 교환 후 , 업데이트를 받은 내용이 없다면 바로 Full State
- 업데이트를 받아야 한다면 자신에게 업슨 정보를 LSR에 보관 후
Loading state 로 전환
6. Loading State
- LSR 패킷을 사용해 자신에게 없는 링크 정보에 대한 세부 정보 요청
7. Full State ( Full Adjacency State)
- 라우팅 정보 교환이 끝난 상태
- 어드제이션트 라우터들의 링크 상태 데이터베이스 내용이 모두 일치
- OSPF에 장애가 생기거나 비정상적인 라우팅 상태가 되면 Down State
■ OSPF 동작 절차 (요약)
1. 네이버 탐색 (Hello Packet)
2. DR / BDR 선출 (필요시)
3. 경로 정보 수집
- OSPF는 경로 정보를 수집하기 위해 LSA를 교환
4. 최적 경로 결정
- LSA 교환 후 SPF 알고리즘을 이용하여 최적 경로를 계산하고 라우팅 테이블을 생성, 갱신
5. 최적 경로 정보 유지 및 관리
- 주기적으로 Hello 패킷을 전송하여 각 라우터가 정상적으로 동작하는지 감시
- 변동 상황 발생 시 다른 라우터에게 변경 정보를 알림
■ DR / BDR
● BMA (Broadcast Multi Access Network)
● DR (Designated Router)
- BMA 토플로지에서는 하나의 라우터가 DR로 선정
- DR은 모든 라우터와 인접하고 네트워크에서 대표 역할을 함.
- 모든 지역 라우터의 정보를 가진 LSU 패킷을 보냄
● BDR (Backup Designated Router)
- DR에 장애가 생겼을 때를 대비해 선정되는 두번째 라우터
- DR과 같은 특성을 가지고 있지만 LSU 패킷을 보내지 않음
- DR이 일정시간 동작을 하지 않는다면 BDR이 DR이 되고 BDR은 새로 선출
● 선출 절차
1. 우선 순위가 가장 높은 라우터가 DR, 그 다음 순위가 BDR
(Priority)
2. 모든 우선 순위가 동일하면 Router-ID가 가장 큰 라우터가 DR, 그 다음 라우터가 BDR
나머지는 DROther
3. DR/BDR이 선출되면 더 높은 우선 순위의 라우터가 추가되더라도 재선출 하지는 않음.
4. DR이 다운되면 BDR이 DR이 되고, DBR이 새로 선출됨.
● 우선 순위(Priority) 값 변경
- DR / BDR 선출을 위한 Priority 값 변경
- Hello 패킷을 보내는 인터페이스에서 설정
R1(config)#int f0/0
R1(config-if)#ip ospf priority ?
<0-255> Priority
● OSPF 프로세스 재시동
- OSPF 프로세스 실행을 멈추고 다시 시작
- 각 라우터의 우선순위, 라우터 ID에서 변경사항을 반영해서
DR / BDR을 다시 선출
R1#clear ip ospf process
■ OSPF 재분배
● E1 (metric-type 1)
- 패킷이 지나가는 각 링크의 비용에 외부 비용을 더해 최종 비용을 선출
- 재분배가 되는 시점에 20, OSPF를 통과할 때 마다 메트릭 값을 더함.
- 멀티 경로 (또는 ASBR이 다수)일 경우 E1으로 해줘야 최적경로를 선택
● E2 (metric-type 2)
- 모든 라우터가 외부의 정보에 대해 메트릭 값이 20으로 고정
R3(config)#router ospf 100
R3(config-router)#redistribute rip metric-type 2 subnets
sh ip ro 하면 메트릭값이 20으로 고정됨