[22.01.14] 네트워크 CS 정리 10일차(OSPF(Open Shortest Path First Protocol))
참고
http://www.yes24.com/Product/Goods/64994948
http://www.yes24.com/Product/Goods/58259041
https://alsrbdmsco0409.tistory.com/250
목적
네트워크 CS 이론에 대해 머릿속에 다시 상기시키고자 해당 글을 작성한다. OSPF는 실제로 네트워크 현업에서 많이 쓰이므로 원리를 자세히 파고드는게 중요하기 때문에 심도있게 살펴보았다.
OSPF(Open Shortest Path First Protocol)의 개요
OSPF는 링크 스테이트 라우팅 프로토콜이다. 즉 링크의 상태를 기반으로 패킷을 라우팅을 하는 것이라고 볼 수 있다. RIPv2을 비교하여 더 정교하기 때문에 규모가 큰 네트워크에서 많이 쓰인다. 거리 벡터 라우팅 프로토콜이 아니므로 스플릿 호라이즌(split horizon, 거리 벡터 라우팅 프로토콜을 사용할 때 라우팅 루프를 방지하기 위해 사용하는 기술로 임의의 한 인터페이스에서 학습한 경로를 동일한 인터페이스를 통해 전달하지 않게 하는 기술이다. 30초 주기로 자신이 알고있는 대역을 광고를 때리는 단점을 상쇄시킴)과 자동 축약(autoSummarization)이 적용되지 않는다.
OSPF는 IP의 프로토콜 필드 번호 89번을 사용하면 라우팅 정보를 전송한다. OSPF는 표준 프로토콜이기 때문에 대부분의 벤더에서 지원하며 가장 많이 사용되는 IGP(Interior Gateway Routing Protocol, AS 내에서 사용하는 프로토콜)이다. OSPF는 AREA(에어리어) 단위로 라우팅을 동작시킨다. 적절하게 에어리어를 나누어 특정 에어리어에서 발생하는 네트워크 변화가 다른 에어리어로는 전파되지 않게 할 수 있어 큰 규모의 네트워크에서 안정된 운영을 할 수 있다.
OSPF 실습 환경 패킷트레이서로 구성
show ip int brief 각각의 인터페이스 ip 할당 확인
이후 OSPF 에어리어를 0번과 1번으로 나눈 모습
라우터의 기본적인 OSPF 설정
R0(config)# router ospf 1 // ospf db를 만드는데 데몬 프로세스 id를 선언하는 구문 1 ~ 65535 까지 가능
R0(config)# router-id 1.1.1.1 // router-id를 지정하는 구문 지정하지 않는다면 루프백주소, 물리적 주소중 가장 큰 주소가 라우터 id가 된다.
R0(config)# network 1.1.10.0 0.0.0.255 area 0 //타 라우터에 광고 할 network 선언
R0(config)# network 1.1.123.0 0.0.0.255 area 0 // 3행과 같음
특히 마지막 area 0은 백본(backbone) 에어리어 상대적으로 중심이 되는 area이다. 이 말인 즉슨 다른 에어리어들은 항상 백본 에어리어라고 부르는 에어리어 0 또는 0.0.0.0과 물리적으로 직접 연결되어 있어야 된다. (필수 조건)
area 0, 1 모두 소속되어 있는 경계 구간의 Router1의 ospf 설정 \
R1(config)#router ospf 1
R1(config-router)#router
R1(config-router)#router-id 1.1.2.2
R1(config-router)#netwo
R1(config-router)#network 1.1.123.0 0.0.0.255 area 0 // 경계이므로 area 0 등록
R1(config-router)#netwo
R1(config-router)#network 1.1.24.0 0.0.0.255 area 1 // 경계이므로 area 1 등록
R1(config-router)#
R1 같은 경우 에어리어 0과 에어리어 1에 소속되어 있다. 이처럼 두 개 이상의 에어리어에 걸쳐 있는 라우터를 OSPF ABR(Area Border Router 한글로 해석하면 영역 경계 라우터?) 라고 부른다.
OSPF 네이버(Neighbor)
라우터가 OSPF 설정이 완료된다면 OSPF는 헬로 패킷을 이용해서 인접한 라우터와 먼저 네이버를 구성한다. OSPF 헬로 패킷은 네트워크의 종류에 따라 10초 또는 30초마다 전송된다. 연속하여 4개의 헬로 패킷을 수신하지 못한다면 네이버 관계는 해제된다. 즉 40초나 120초 뒤에 해제가 된다는 얘기인데 이 타이머를 데드 인터벌(dead interval) 이라고 한다.
OSPF는 인접 라우터에게서 헬로 패킷을 수신하고 헬로 패킷에 포함된 네이버 리스트 필드에 자신의 라우터 ID가 포함되어 있다면 그 라우터를 네이버라고 인지한다. 헬로 패킷에 기록된 에어리어 ID, 암호, 서브넷 마스크 길이, 헬로/데드 주기, 스텁 에어리어가 서로 일치해야 네이버가 성립된다. (특히 헬로/데드 인터벌이 불일치하여 네이버가 맺지 않는 경우가 많은데 잘 확인해야 한다.)
show ip ospf neighbor로 인접한 라우터의 네이버를 확인할 수 있다.
Neighbor ID : 이웃한 네이버의 라우터 ID를 표시한다.
pri : 각 라우터의 priority를 표시한다. priority가 낮을수록 DR이나 BDR로 선출된다.
State : OSPF 네이버 상태와 역할을 표시한다. 상태가 Full인 것은 네이버와 라우팅 정보 교환이 끝났다는 뜻이다. 이더넷 접속된 모든 OSPF 라우터끼리는 일일이 라우팅 정보를 교환한다면 트래픽이 많이 발생할 수 있다. 그것을 방지하고자 이더넷에서는 OSPF 라우팅 정보를 하나의 대표 라우터에만 보내고 이 라우터가 나머지 라우터에게 중계 전송한다.
라우팅 정보를 중계하는 역할을 DR(Designated Router)
DR을 감시하는 역할이 BDR(Backup Designated Router)
DR도 BDR도 아닌 라우터를 DROTHER 이라고한다.
포인트 투 멀티포인트 상태에서만 DR, BDR을 선출하며, 포인트 투 포인트같은 형태의 네트워크에서는 DR BDR을 선출하지 않는다. (포인트 투 포인트 네트워크는 DR BDR을 뽑으나 마나 어짜피 하나의 링크만 이용하여 헬로 패킷을 전송하기 때문이다...)
포인트 투 멀티포인트 상태에서 DR, BDR은 다음과 같은 절차로 선출된다.
1. priority가 가장 높은 라우터가 DR이 된다. (참고로 priority 0은 DR, BDR이 선출되지 않는다.)
2. priority가 같다면 라우터 ID가 높은 순서대로 DR, BDR이 선출된다.
Dead Time : 남아 있는 데드 주기를 표시한다. 해당 시간 내에 헬로 패킷을 수신하지 못한다면 해당 네이버를 삭제한다.
Address : 네이버의 인터페이스에 설정된 IP 주소를 표시한다.
Interface : 네이버와 연결되는 인터페이스를 표시한다.
OSPF는 라우팅 정보를 교환하는 네이버를 어드제이션트(adjacent) 네이버라고 한다. 이들 간에만 라우팅 정보를 교환한다. 즉! 포인트 투 멀티포인트 구간에서 DROTHER 끼리는 어드제이션트 네이버가 될 수 없다.
OSPF 네이버 상태 7가지
다운 상태 : 네이버에게서 헬로 패킷을 받지 못한 상태이다.
이닛 상태 : 나의 라우터가 네이버에게서 헬로 패킷을 받았으나(어드제이선트 네이버) 상대 라우터는 아직 나의 헬로 패킷을 수신하지 못한 상태이다.
투웨이 상태 : 네이버와 쌍방향 통신이 이루어진 상태이다.
엑스스타트 상태 : 라우팅 정보를 교환하는 어드제이션트 네이버가 되는 첫 단계
익스체인지 상태 : OSPF의 라우팅 정보를 LSA(Link State Advertisement) 라고 한다. 해당 LSA를 저장하는 DB를 LSD라고 하는데 이 LSD 내에는 OSPF 라우터 자신이 알고 있는 모든 상세 네트워크 정보가 저장되어 있다. 익스체인지 상태에서 OSPF 라우팅 정보인 LSA의 헤더만을 DDP 라고 부르는 패킷에 담아 상대방에게 전송한다.
로딩 상태 : 상대가 뿌린 DDP 패킷 수신이 끝난 뒤 자신에게 없는 정보가 있으면 링크 상태 요청 패킷을 보내어 특정 LSA의 상세 정보를 보내줄 것을 요청해서 해당 정보를 수신하는 단계다.
풀 상태 : 어드제이션트 라우터들의 링크 상태 데이터베이스의 내용이 일치하는 단계이다.
'네트워크' 카테고리의 다른 글
[22.01.12] 네트워크 CS 정리 9일차(RIPv2) (0) | 2022.01.12 |
---|---|
[22.01.10] 네트워크 CS 정리 8일차(스패닝 트리 프로토콜(STP))-3 포트패스트(portPast) (0) | 2022.01.10 |
[22.01.09] 네트워크 CS 정리 7일차(스패닝 트리 프로토콜(STP))-2 (0) | 2022.01.09 |
[22.01.07] 네트워크 CS 정리 6일차(스패닝 트리 프로토콜(STP))-1 (0) | 2022.01.07 |
[22.01.03] 네트워크 CS 정리 5일차(ARP, 트랜스페어런트 브리징 기능) (0) | 2022.01.03 |
댓글
이 글 공유하기
다른 글
-
[22.01.12] 네트워크 CS 정리 9일차(RIPv2)
[22.01.12] 네트워크 CS 정리 9일차(RIPv2)
2022.01.12 -
[22.01.10] 네트워크 CS 정리 8일차(스패닝 트리 프로토콜(STP))-3 포트패스트(portPast)
[22.01.10] 네트워크 CS 정리 8일차(스패닝 트리 프로토콜(STP))-3 포트패스트(portPast)
2022.01.10 -
[22.01.09] 네트워크 CS 정리 7일차(스패닝 트리 프로토콜(STP))-2
[22.01.09] 네트워크 CS 정리 7일차(스패닝 트리 프로토콜(STP))-2
2022.01.09 -
[22.01.07] 네트워크 CS 정리 6일차(스패닝 트리 프로토콜(STP))-1
[22.01.07] 네트워크 CS 정리 6일차(스패닝 트리 프로토콜(STP))-1
2022.01.07