OSPF(Open Shortest path first, v2)
- Linked State algorithm 사용
- link 마다 cost 산출(cost는 bandwidth로 산출), 비용이 적게 드는 경로를 선택
- Backbone Area (0)을 기준으로 Regular Area와 2개의 계층 구조를 이루고 있음
- 반드시 Backbone Area와 물리적으로 연결되어 있어야 함
- 다른 area끼리는 직접 통신이 불가능함, 반드시 backbone area를 통해서 통신함
- 경계 라우터가 필수적으로 필요함(backbone area와 regular area를 공유하는 라우터)
- metric은 cost, 10^8 / bandwidth [bit per second] 로 계산한다
설정법
(config)# router ospf <process-id>
- ospf 설정
(config-router)# # router-id <ip address>
- router-id 수동으로 설정
(config-router)# network <ip-address> <wildcard-mask> area <area-id>
- LSA 설정
OSPF 에서의 Flooding
- OSPF 라우터가 LSA(Link State Advertisement)를 전달 받음
- 해당 정보가 자신의 LSD(Link State Database)에 없으면, 이를 자신의 LSD에 등록함
- 수신 링크를 제외한 모든 OSPF 이웃라우터에게 Flooding 방식으로 전달함
- LSA는 sequence number를 가지고 있고 LSA를 발송할 때마다 증가한다
이 sequence number에 따라 업데이트 혹은 자신이 가지고 있는 최신 정보를 발송한다(높을 수록 최신)
ABR(Area Border Router)
- 경계 라우터, backbone area와 regular area를 공유하는 라우터
- 경계 라우터는 LSA를 발송할 때 요약해서 발송
- 따라서 라우터들은 테이블에 자신이 속한 area의 상세정보와 다른 area의 요약 정보를 가질 수 있음
(routing table의 최소화)
ASBR (Automous System Boundary Router)
- OSPF AS 경계점에 위치하는 라우터(자신이 속한 라우팅 도메인과는 다른 라우팅 프로토콜을 사용)
AS(autonomous system)
- 회사가 관리하는 네트워크 영역
-> OSPF AS와는 다른 의미, OSPF AS는 OSPF routing을 운영하고 있는 router 집단을 말함
- LSA Flooding으로 인한 과도한 패킷을 분할 관리하기 위해, OSPF AS를 Area로 나눔
OSPF Router ID
- 고유한 값이어야 하다
- router ID가 높은 router가 먼저 정보 교환을 시작한다
- 수동으로 설정 하는 것이 바람직하다
- 물리적 인터페이스보단 논리적 인터페이스를 사용해야 한다(loopback interface)
-> 항상 활성화 되어 있기 때문에 물리적 인터페이스의 주소를 Router ID로 사용하는 것에 비해
물리적인 결함이 발생하지 않기 때문에 안정적임
(config-router)# router-id </ip address>
DR & BDR(Designated Router and Backup Designated Router)
- Interface Priority 값이 가장 높은 라우터가 DR이 됨
(기본값 1, 0 ~ 255 까지 설정 가능, 0으로 설정할 경우 DR/BDR이 될 수 없음을 의미)
- Interface Priority 값이 동일할 경우 더 높은 Router ID를 가진 라우터가 DR로 선출
- DR 선출 완료 후 BDR을 선출하게 되며 선출과정은 DR과 동일하고, 해당 과정에 DR은 참여하지 않음
- 선출 완료 후 신규장비가 추가 되더라도 DR / BDR 선출과정은 다시 수행되지 않음 (여기까지 40초가 소요 됨)
- Multi access Broadcast Network일 경우 선출
- DR과 BDR router를 선출해서 backbone area 처럼 사용 DROTHER router는 regular area 처럼 사용
(논리적으로 2개의 계층 구조로 만듬, DROTHER router끼리는 직접 통신을 하지 않음)
(config-if)# ip ospf priority
* 연결이 ethernet이냐 serial이냐에 따라 Broadcast Network(Multi access) type인지
Point-to-Point Network type인지를 구분함( DR/BDR 선출 여부의 차이)
각 라우터의 interface에 ip를 토폴로지에 맞게 설정 해주고 router-id로 사용할 loopback interface도 설정 해준다
(loopback interface의 경우 R1은 1.1.1.1/24, R2는 1.1.1.2/24 . . . R8은 1.1.1.8/24)
interface 설정이 끝났다면 OSPF 설정도 해준다
예시)
R1
(config)# router ospf 1
(config-router)# router-id 1.1.1.1
(config-router)# network 10.0.12.12 0.0.0.0 area 12
R2
(config)# router ospf 1
(config-router)# router-id 1.1.1.2
(config-router)# network 10.0.12.21 0.0.0.0 area 12
(config-router)# network 10.0.23.23 0.0.0.0 area 0
(config-router)# network 10.0.23.25 0.0.0.0 area 0
ABR에 OSPF(R2, R3, R5) 설정 시 각 네트워크에 맞는 area로 작성하는 것에 주의하며 같은 방식으로 R3, R4도 설정 한다
Area 5 같은 경우 Multi access Broadcast Network로 구성하였기 때문에 DR과 BDR을 선출해야 한다
ABR은 R5 하나이기 때문에 BDR은 필요없이 DR만 선출 하도록 한다
R5
(config)# router ospf 1
(config-router)# router-id 1.1.1.5
(config-router)# network 10.0.25.52 0.0.0.0 area 0
(config-router)# network 10.0.35.53 0.0.0.0 area 0
(config-router)# int fa 0/0
(config-if)# ip ospf priority 255
마찬가지로 R6, R7, R8도 설정 해주는데 이때 priority 값은 0부터 255까지 가능하며
R5를 DR로 선출 하기위해 최고값 255로, 나머지 R6, R7, R8은 0으로 설정 해준다
R5의 routing table과 neighbor table을 확인 해보면 neighbor 관계를 잘 맺었고
자신이 속하지 않은 Area(IA)의 네트워크 10.0.12.0/24와 10.0.34.0/24 그리고
자신이 속한 Area의 네트워크 10.0.23.0를 잘 학습한 것을 확인할 수 있다
R8 라우터 또한 DR인 R5를 통해서 총 5개의 다른 네트워크를 성공적으로 학습한 것을 확인할 수 있다
R8에서 R1으로 ping 테스트까지 해보면
통신까지 문제 없이 되는 것을 확인할 수 있다
* 가상링크(Virtual Link)
그림과 같이 Backbone Area와 물리적으로 연결되지 못한 Area 49를 추가했을 때
R4의 neighbor table에는 정상적으로 R9 라우터가 등록된 것을 확인할 수 있지만
R9의 routing table을 확인 해보면 정상적으로 학습 해오지 못한 것을 확인할 수 있다
이렇게 물리적으로 Backbone Area에 연결이 불가능한 경우
가상 링크를 통해 마치 Backbone Area에 연결된 것처럼 설정할 수 있다
이 때 Backbone Area의 경계 라우터와 연결하려는 Area의 경계 라우터 사이에
가상 터널을 뚫어줘야 한다는 것을 명심한다
지금 과 같은 경우 R3와 R4 사이에 가상 링크를 생성 해주면 된다
Virtual link
(config-router)# area <area number> virtual-link <neighbor router-ID>
R3
(config-router)# area 34 virtual-link 1.1.1.4
R4
(config-router)# area 34 virtual-link 1.1.1.3
물리적으로 Backbone Area와 떨어져있는 Area 49를 가상 링크를 통해 논리적으로 연결 시켜주면
정상적으로 routing table을 학습 해오는 것을 확인할 수 있다
* cost 변경
R4의 interface se0/1을 확인 해보면 bandwidth 기본값 1544로 10^8/1,544,000 = 64
한 링크당 cost가 64임을 계산할 수 있고
R1에서 R9가 있는 10.0.49.0/24 네트워크까지 가기 위해 4개의 링크, 즉 cost가 총 256인 것을 확인할 수 있다
R4의 10.0.49.0/24 쪽 link의 cost를 64에서 32로 변경 해본다
R4
(config)# int se0/1
(config-if)# ip ospf cost 32
다시 R1에서 확인 해보면 10.0.49.0/24까지 경로의 cost가 224로 변경된 것을 확인할 수 있다
metric 값을 변경하려면 직접 인터페이스에 cost 값을 변경하는 것 외에도 bandwidth 값을 변경하는 방법도 있다
* Redistribute(재분배)와 Default route
지금까지 설정한 OSPF routing router들의 집합을 OSPF AS라고 한다
이 AS의 경계에 있는 router를 ASBR이라고 하며, ASBR에서의 재분배를 통해
다른 routing protocol의 Database와 OSPF routing protocol의 Database의 정보를 교환할 수 있다
그림과 같이 RIPv2를 사용하는 네트워크들을 추가 하고 RIP 설정까지 마쳐준다
설정 이후 R2와 R13의 routing table을 확인 해보면 R13의 경우 RIP, R2의 경우 OSPF routing protocol에 해당하는
네트워크들은 잘 학습했지만 서로 다른 routing protocol을 사용하는 네트워크들은 학습하지 못한 것을 확인할 수 있다
서로 다른 routing protocol끼리 Dateabase를 교환 할 수 있게 재분배를 설정 해준다
(OSPF의 재분배 설정은 ASBR에서 해야 하는 것을 명심한다)
R1
(config)# router rip
(config-router)# redistribute ospf 1 metric 1
(config-router)# exit
(config)# router ospf 1
(config-router)# redistribute rip subnets
재분배 이후 다시 R2, R13을 확인 해보면 성공적으로 상대방의 routing protocol의 database를 가져왔지만
routing table을 많이 차지한 것 또한 확인할 수 있다
만약 더 많은 네트워크들이 있다면 더 많은 routing table의 메모리를 차지할 것이고
이는 router의 성능을 저하 시키는 원인이 된다
그렇다면 그림과 같이 default routing을 사용했을 때는 어떤 차이가 있는지 확인 해본다
(먼저 설정했던 재분배를 해제하고 진행한다)
R14와 R1에 default routing을 설정 해주고 R14에서 RIP이 알 수 있도록 static을 재분배 해준다
R14
(config)# ip route 0.0.0.0 0.0.0.0 10.0.115.2
(config)# router rip
(config-router)# redistribute static
R1
(config)# ip route 0.0.0.0 0.0.0.0 10.0.115.1
RIP에 Static을 재분배 해준 뒤 R13의 routing table을 확인 해보면 default static routing이 잘 올라온 것을 확인할 수 있다
다음으로 OSPF에 default route를 적용 시켜 주는데 OSPF의 default route의 경우 재분배 설정을 통한 것이 아니라
광고를 통해 다른 OSPF 라우터에게 default route를 알려준다
R1
(config)# router ospf 1
(config-router)# dafault-information originate [always]
-> always는 옵션으로 default route가 없을 때 사용한다
default route를 광고 해준 뒤 R2에 가서 확인 해보면 routing table에 잘 올라온 것을 확인할 수 있다
Default routing 적용 전과 후를 비교 해보면 routing table 개수의 확연한 차이를 확인할 수 있다
이처럼 routing table의 요약을 통해 router의 메모리의 성능을 관리 해줄 수 있다
문제 없이 통신이 되는지 확인하는 것으로 마친다