OSPF
Open Shortest Path First · OSPFv2 · OSPFv3
는 라우터끼리 네트워크 연결 정보를 공유하여 패킷이 지나갈 경로를 계산하는 내부 프로토콜이다. 같은 영역의 링크 상태 데이터베이스를 동기화한 뒤 각 라우터가 자신을 출발점으로 계산을 수행하며, 와 의 패킷 형식과 지원 방식에는 차이가 있다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 이웃과 를 동기화하여 영역의 연결 정보를 일관되게 유지한다.
- 링크 를 합산하는 로 목적지의 다음 홉과 동등 비용 후보를 계산한다.
- 영역· 종류·요약으로 큰 도메인의 정보 범위와 외부 경로를 관리한다.
02어떤 순서로 동작하나
- →
를 수신하지만 상대 의 이웃 목록에서 자신을 아직 찾지 못하면 이다.
- →
상대의 이웃 목록에서 자신을 확인하면 양방향 통신을 확인한다. 네트워크 유형· 관계에 따라 여기서 머무는 정상 이웃도 있다.
인접 관계를 만들 상대와 교환의 주도 관계 및 초기 순서를 정한다. 에서는 가 큰 쪽이 master가 되며, 이 역할은 · 선출과 별개다.
로 요약을 교환하며 자신에게 없거나 오래된 를 식별한다.
요청할 가 남으면 에서 ·로 부족한 본문을 채우고 필요한 확인을 수행한다. 교환 종료 시 Request List가 이미 비어 있으면 없이 바로 로 전환한다.
필요한 동기화가 완료된다. 이라는 이웃 상태와 실제 목적지 경로·전달 성공은 따로 확인한다.
- 와 경로 후보 계산
동기화된 영역의 로 자신을 루트로 하는 최단 경로 트리를 계산하고, 영역 간·외부 경로는 해당 유형의 규칙에 따라 후보로 만든다. 이웃 은 계산의 입력이 준비됐다는 상태이며 최종 전달 경로 그 자체는 아니다.
- 와 전달 정보 반영
가 계산한 후보는 다른 경로 출처와의 로컬 선택을 거쳐 에 반영된다. 선택된 경로의 다음 홉 해석과 ··ND 정보가 준비되어야 실제 사용자 패킷을 전달할 수 있다.
- 변경과 재수렴
링크·이웃 상태가 바뀌면 관련 를 새로 생성해 유효 범위에 전파한다. 각 라우터가 변경 정보와 타이머 조건에 맞춰 필요한 재계산을 수행하고 ·를 갱신하며, 이 과정의 완료 시점은 장비마다 다를 수 있다.
03먼저 알아둘 용어와 구성요소
- 링크·네트워크·외부 경로 등의 상태를 광고하는 정보 단위다.
- 자신의 영역·역할에 따라 수집한 의 데이터베이스다.
- 의 그래프에서 자신을 루트로 최단 경로 트리를 계산하는 과정이다.
- Designated Router다. 다중 접속 링크의 인접 관계와 교환을 조정하는 역할이며 사용자 패킷의 필수 중계점은 아니다.
- 이웃을 발견하고 양방향 통신과 유지 조건을 확인하는 메시지다.
- Database Description의 약어다. 에 있는 의 헤더 요약을 교환하여 어떤 본문이 필요한지 비교한다.
- Link State Request의 약어다. 자신에게 없거나 더 최신인 의 본문을 이웃에게 요청한다.
- Link State Update의 약어다. 하나 이상의 본문을 이웃에게 전달한다.
- Link State Acknowledgment의 약어다. 수신한 의 헤더로 수신 사실을 확인한다.
- 라우터를 식별하는 32비트 값이다. IP 주소처럼 표기하지만 전달 경로가 되는 인터페이스 주소일 필요는 없다.
- 링크 상태 정보의 공유와 계산 범위를 나누는 이다. 영역 0은 영역 간 연결의 중심인 백본이다.
- 최근 유효한 를 받지 못한 이웃 상태다.
- 상대 는 받았지만 그 의 이웃 목록에 자신의 가 아직 없는 상태다.
- 상대 의 이웃 목록에서 자신을 확인한 상태다. 브로드캐스트 망의 끼리는 이 상태가 정상일 수 있다.
- 교환의 주도 관계와 초기 시퀀스 번호를 협상하는 이웃 상태다.
- 로 헤더 요약을 교환하는 이웃 상태다.
- 요약 비교로 확인한 부족한 본문을 ·로 채우는 이웃 상태다.
- 인접 라우터와 필요한 동기화를 완료한 상태다. 목적지까지 사용자 패킷의 전달 성공을 보장하는 표시는 아니다.
- Backup Designated Router다. 다중 접속 망에서 의 장애에 대비하며 다른 라우터들과 인접 관계를 만든다.
- 해당 다중 접속 망에서 도 도 아닌 라우터다.
- 가 링크에 부여하는 비용이다. 경로의 비용은 방향별 링크 비용을 합산해 계산한다.
- Border Router다. 여러 을 연결하며 영역별 와 영역 간 경로를 다룬다.
- Autonomous System Boundary Router다. 다른 출처의 경로를 외부 경로로 광고하는 라우터다.
- 유효한 가 오지 않을 때 이웃을 으로 판단하기까지 기다리는 시간이다.
- 내부 도달 비용과 광고된 외부 비용을 더해 평가하는 외부 경로 유형이다.
- 외부 비용을 우선 비교하는 외부 경로 유형이다. 같은 외부 비용 후보에서는 다음 비교 조건에 따라 내부 도달 비용도 사용한다.
- 외부 가 지정하는 전달 주소다. 0이면 광고 로, 0이 아니면 해당 주소로 도달하는 내부 경로를 이용한다.
DBD에서 LSA 요청과 동기화까지 패킷 순서 추적하기
인접 형성 캡처에서 , , , , 의 역할을 실제 교환 순서와 연결한다.
실습 구성과 전제
- 를 실행하는 라우터 링크를 캡처한 실습이다. 캡처 표에는 세 라우터 주소가 섞여 있으므로 상대 주소별 대화를 나누어 읽는다.
- 아래 조회 명령은 이 캡처를 재현할 때의 관찰 예시다. 살아 있는 인접 관계를 일부러 초기화하는 명령은 포함하지 않는다.
Hello와 DBD가 다른 역할임을 분리한다
- 표 상단의 는 224.0.0.5로 전송되고 뒤의 DB Description은 특정 상대와 교환된다. 로 이웃 조건을 확인한 다음 인접 대상과 동기화를 진행한다.
- 캡처 화면만으로 모든 이웃이 이었는지는 알 수 없다. 장비의 neighbor 출력과 해당 링크의 네트워크 유형을 함께 기록한다.
textshow ip ospf interface show ip ospf neighbor show ip ospf database실습 흐름을 재구성한 명령 예시. 장치·인터페이스 이름은 구성에 맞춰 사용한다.
원본 크기로 보기 ↗- 142·143번에 Hello Packet, 이후 여러 DB Description 행이 보인다.
- 153번 이후 LS Request와 LS Update가 있고 159번에 LS Acknowledge가 보인다.
확인 기준상대 , , /Dead 값과 네트워크 유형이 맞는지 확인한 다음 동기화 단계로 넘어간다.
초기 DBD의 비트와 번호를 해독한다
- 확대 화면의 0x07은 I·M·MS 비트가 모두 1이라는 뜻이다. 는 교환 초기화, More는 뒤에 요약 정보가 더 있음을, MS는 Master 쪽 주장을 나타낸다.
- DD Sequence 1728은 이 교환 순서를 맞추는 번호다. 개별 헤더의 sequence와는 다른 공간이며 선출 우선순위도 아니다.
원본 크기로 보기 ↗- DB Description에 0x07과 Init·More·Master가 표시된다.
- DD Sequence가 1728로 보이며 세 플래그가 각각 별도 비트로 펼쳐져 있다.
확인 기준초기 협상에서 Master/Slave가 결정되기 전의 일 수 있다. MS=1인 한 패킷만으로 최종 Master나 을 확정하지 않는다.
요약 비교가 실제 LSA 전달로 이어지는지 본다
- 는 헤더 목록으로 보유 정보를 비교한다. 자신에게 없는 정보나 더 최신인 정보를 발견하면 의 식별자로 요청하고 에서 실제 를 받는다.
- 는 수신 확인이며 ACK가 아니다. 는 IP 프로토콜 89를 쓰고 자체 확인·재전송 절차로 flooding 신뢰성을 유지한다.
textospf표시 필터. 패킷 목록에서 한 상대 주소쌍을 고른 뒤 ··의 식별자를 대조한다.
확인 기준패킷 목록의 순서만 보지 말고 요청한 의 type·Link State ID·Advertising Router가 응답에 있는지 펼쳐 확인한다.
Full 이후 실제 경로 설치를 검증한다
- 동기화가 완료되면 해당 인접 관계가 이 되고, 를 바탕으로 와 경로 유형별 계산을 수행한다. 이후 선택에서 채택된 경로가 전달에 쓰인다.
- 에 가 있는 것과 해당 접두사가 에 O 경로로 설치되는 것은 별도 사실이다. 더 우선하는 연결·정적 경로나 필터·다음 홉 문제가 개입할 수 있다.
textshow ip ospf neighbor show ip ospf database show ip route ospf실습 흐름을 재구성한 명령 예시. 장치·인터페이스 이름은 구성에 맞춰 사용한다.
확인 기준정상 판정은 인접 상태, 필요한 존재, 목적지 경로 및 반환 경로를 함께 확인한 범위로 제한한다.
실습에서 확인한 동작 원리
- 의 교환 번호·의 버전 번호· 역할은 서로 다른 개념이다.
- 동기화에서 끝내지 않고 결과와 설치까지 연결해야 의 목적을 확인할 수 있다.
동작·명령 참고 문서
04예제로 따라가기
- 다음은 가상 토폴로지의 경로 계산 예다. R1→R2 10, R1→R3 5, R3→R2 2, R2→R4 1, R3→R4 20이며 모든 값은 해당 방향의 링크 비용이다. 자신 R1의 거리는 0이다. 이웃을 조사하면 후보 R2=10, R3=5이므로 가장 작은 R3를 먼저 최단 경로 트리에 확정한다.
- R3를 거치면 R2는 5+2=7로 기존 10보다 작아 갱신된다. R4는 5+20=25로 후보에 추가하며 두 후보의 첫 홉은 모두 R3다. 다음 최소 후보 R2=7을 확정한다. R2를 거친 R4의 값은 7+1=8로 기존 25보다 작으므로 R4의 부모·거리 정보를 갱신한다.
- R4까지 총 는 8이고 R1의 첫 홉은 R3다. 라우터는 이 결과로 목적지 경로를 만들지만 실제 전송에는 첫 홉의 링크 계층 해석이 추가로 필요하다.
05혼동하기 쉬운 점과 확인 기준
- 의 master/slave·DD Sequence 합의나 조건이 맞지 않으면 를 끝내지 못할 수 있다. 가 보여 이웃을 발견한 상태와 DB 동기화 성공은 구분한다.
- Request List가 비지 않으면 어떤 키를 반복 요청하는지 본다. 미수신·비정상 요청·반복 재설정 중 어느 단계가 막혔는지 이웃 상태와 패킷을 연결한다.
- 특정 이웃에 대한 미확인 가 계속 남으면 · 전달과 손실· 조건이 후보다. 전체 숫자가 같은 것만으로 reliable flooding이 정상이라고 단정하지 않는다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
함께 보는 학습 자료
아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.
RFC 2328 §10.10·Figure 14: 인접 관계 생성
·· 요청을 양쪽 상태 변화에 연결하고 과 master를 따로 추적한다.
- 와 master/slave
- I·M·MS 비트와 DD Sequence
- §10.3의 Request List가 비면 바로 인 분기
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.