OSPF Protocol 대한 이해하는 시간을 가져보자.
OSPF (Open Shortest Path First) 의 약어
- Link-State 프로토콜 (Classless 라우팅에 VLSM, CIDR을 지원한다)
- Metric은 Cost 사용되며, 현 사용되는 버전은 OSPF Ver2이다.
- Convergence(수렴) 시간이 빠르다.
- IP패킷에서 프로토콜 89번 포트를 사용한다.
- 멀티캐스트 (Multicast)를 사용하여 정보를 전달한다.
( 224.0.0.5 => DROTHER 사용, 224.0.0.6 => DR & BDR 사용 즉, DROTHER는 목적지 주소를 224.0.0.6으로 해서 DR, BDR에게 라우티 정보를 전송하고 DR은 목적지 주소를 224.0.0.5로 해서 DROTHER에게 라우팅 정보를 전송한다.
즉 DROTHER는 목적지 주소가 224.0.0.5인 것만 수신하고 DR, BDR은 224.0.0.5, 224.0.0.6 모두를 수신한다.)
- AD 값은 110
- SPF(Shortest Path First)또는 Dijkstra(디지크스트라)라는 알고리즘을 이용해서
- 각 목적지까지의 최적 경로를 계산한다.
장점
- 대규모의 네트워크를 안정되게 운영할 수 있다.
- OSPF는 area 단위로 구성한다. 특정 에어리어에서 발생하는 상세한 라우팅 정보가 다른 에어리어로 전송되지 않아 큰 규모에서도 안정되게 운영할 수 있다.
- stub이라는 강력한 축약 기능이 있다.
- 기존 라우팅 프로토콜들은 연속되는 IP 주소를 사용하는 네트워크를 축약했지만
- stub area는 연속되지 않아도 라우팅 테이블의 크기를 획기적으로 줄일 수 있다.
- EIGRP는 시스코 전용이지만 OSPF는 표준 라우팅 프로토콜이기 때문에 시스코 라우터에서만 사용이 가능하지만 OSPF는 대부분 라우터에서 사용이 가능하다.
단점
- 브로드캐스트 멀티액세스
- 포인트 투 포인트
- 포인트 투 멀티포인트
- 논브로드캐스트 멀티액세스 (NBMA)
- 라우팅 정보 계산 및 유지를 위해 CPU, DRAM과 같은 자원을 비교적 많이 사용한다.
패킷의 종류
Hello Packet
- 인접한 라우터 간에 hello를 전송하여 응답 확인하는 방식.(Eigrp의 네이버 관계를 맺는 방식과 비슷하다.)
- OSPF가 설정된 인접한 라우터 간 네이버 관계를 형성하고 네이버 관계를 유지하는 데 사용.
- OSPF가 설정된 인터페이스로 서로 hello packet을 교환하여 네이버를 맺는다.
- 네이버를 맺은 후에도 일정 주기(hello 주기)로 hello 패킷을 전송하고 정해진 주기 안에 dead 주기 상대방에게 hello 패킷을 수신받지 못하면 해당 네이버에 문제가 생긴 걸로 간주하고 네이버 관계를 끊는다.
- 라우터 ID, area ID, 인증 암호, 서브넷 마스크, hello 주기, dead 주기, stub area flag, 라우터 Priority, DR, BDR, 네이버 리스트의 정보를 담고 있다.
DBD Packet
- OSPF의 네트워크 정보를 LSA(Link state advertisement)라고 부르는데 OSPF는 자신이 만든 LSA와 네이버에게서 받은 LSA를 link state 데이터 베이스에 저장한다.
- DBD는 OSPF 라우터의 link state 데이터 베이스에 있는 LSA들의 요약된 정보를 알려주는 패킷이다.
- 즉, 네이버 간 LSA를 교환하기 전에 자신의 link state 데이터베이스에 있는 요약된 LSA목록을 상대방에게 알려주기 위해서 사용한다.
LSR (Link State Request)
- 네이버에게 전송받은 DBD에 자신의 link state 데이터베이스에 정보가 없는 네트워크가 있다면 그 네트워크에 대한 상세정보(LSA)를요청할 때 사용되는 패킷이다.
LSU (Link State Update)
- 네이버에게 LSA를 요청받는 LSR을 받거나 자신이 알고 있는 네트워크의 상태가 변했을 경우 해당 라우팅 정보를 전송할 때 사용하는 패킷. 즉, LSA를 실어 나를 때 사용하는 패킷이다.
LS ACK (Link State Acknowledgment)
- OSPF 패킷을 정상적으로 수신했음을 알려줄 때 사용.
- DBD, LSR, LSU 패킷을 수신하면 LS ACK 패킷을 사용하여 수신받았음을 알려준다.
OSPF가 테이블을 만들고 유지하는 방법
- OSPF는 모든 네이버가 라우팅 정보를 교환하는 게 아니다.
- 라우팅 정보를 교환하는 네이버를 Adjacent 네이버라고 부른다.
OSPF 네트워크 분류
OSPF 설정
일반적으로 하나의 라우터에서는 하나의 프로세스만 사용한다.
라우터 간 서로 달라도 괜찮다.
즉 식별자 역할을 한다. (그 외에도 여러 역할을 한다.)
설정하지 않을 경우 규칙에 따라 자동으로 설정되지만 수동으로 잡아주는 것이 더 확실하고 안정적이어서 좋다.
R1(config-router)#network y.y.y.y 0.0.0.0 area 0
자신에게 연결된 네트워크를 다른 라우터들에게 광고한다.
wildcart mask를 사용.
마지막에는 area를 표시한다. (area 0는 백본 에어리어)
- 동일한 라우터에서 다른 라우팅 프로토콜에 포함된 IP주소를 사용해도 된다.
- 현재 라우터에 설정되어 있지 않는 IP주소를 ID로 사용해도 된다.
- 변동되지 않는 IP주소를 사용하는 것이 중요하다.
- 주로 루프백 IP를 사용 라우터 ID를 변경하려면 OSPF 프로세스를 다시 시작한다. ('clear ip ospf process' -> 'y')
*네트워크가 논브로드캐스트 멀티액세스(NBMA)일 경우
R1(config-router)#neighbor x.x.x.x' 명령어로 서로 연결되는 OSPF 네이버를 지정해야 한다.
R1#show ip ospf neighbor
OSPF 동작 방식
- 이더넷, NBMA 등의 멀티 액세스 네트워크에 접속된 모든 라우터가 서로 1:1로 LSA를 교환하면 동일 네트워크에서 중복된 LSA와 ACK가 많이 발생하게 된다.
- 때문에 LSA 중계 역할을 하는 DR(Designated Router)을 선출하고, DR에 이상이 생길 경우를 대비해서 BDR(Backup DR)을 선출용한다.
- 즉, OSPF가 설정된 모든 라우터는 대표 중계 라우터인 DR에게만 LSA를 보내고 DR이 나머지 라우터에게 이를 중계하면 훨씬 효과적이다. (LSA와 ACK 패킷이 줄어든다.)
- DR, BDR은 브로드캐스트 및 논브로드캐스트 네트워크에서만 사용되며, 포인트 투 포인트 네트워크에서 사용하지 않는다.
DR 선출방법
1. 인터페이스 OSPF priority가 가장 높은 라우터가 DR이 된다. (다음으로 높은 라우터가 BDR이 된다.)
→ OSPF priority가 0이면 DR이나 BDR이 될 수 없다.
2. OSPF priority가 모두 동일하면 라우터 ID가 높은 것이 DR, BDR이 된다.
3. DR, BDR이 선출된 후에 더 높은 우선순위의 라우터가 추가되어도 DR, BDR이 변하지 않는다.
→ 최초 선출시 Wait Timer인 40초 이내의 값으로만 참조하여 선정한다.
→ OSPF 설정시 40초를 초과한다면 이후 설정되는 값이 아무리 높더라도 기존의 DR,BDR이 변하지 않음
→ 라우터를 재부팅하거나 clear ip ospf process 명령어를 사용해야 다시 선출한다.
→ clear ip ospf process 시 OSPF 라우팅 경로 재설정에 의한 순단 발생
DR, BDR 선정시 참조되는 값의 우선 순위
1순위 : 인터페이스 Priority값
2순위 : Router ID (OSPF& Interface에 설정, 따로 설정 안할시 Loopback 주소가 ID로 참조됨
3순위 : Interface 실제 IP 주소
4. DR이 다운되면 BDR이 DR이 되고 BDR을 새로 선출, BDR이 다운되면 BDR을 새로 선출한다.
DR이 아닌 라우터를 DROTHER라고 부른다.
→ 확인은 show ip ospf neighbor 혹은 show ip ospf interface로 할 수 있다.
DR 선출방법
- OSPF 라우팅 정보(LSA)를 서로 주고받는 네이버를 adjacent 네이버라고 한다.
- DR과 다른 라우터들
- BDR과 다른 라우터들
- 포인트 투 포인트 네트워크로 연결된 두 라우터
- 포인트 투 멀티 포인트 네트워크로 연결된 라우터들
- Virtual-link로 연결된 두 라우터
→ 확인은 다른 라우터와 연결된 인터페이스에서 'show ip ospf serial 0/0'
OSPF 네이버 상태 변화
일반적으로 Down 상태에서 시작해서 네이버와 라우팅 정보 교환을 끝낸 Full상태로 변한다.
1) Down 상태
- OSPF가 설정되고 hello 패킷을 전송했지만, 아직 상대방 라우터에게 Hello 패킷을 받지 못한 상태.
- Full 상태 후에도 Dead 주기 동안 OSPF Hello 패킷을 받지 못하면 다시 다운 상태가 된다.
2) Attempt 상태
- 논브로드캐스트 네트워크에서만 적용되는 상태.
- OSPF 설정에서 neighbor 명령어를 사용하여 지정한 네이버에게서 헬로 패킷을 수신하지 못한 상태를 의미.
3) Init 상태
- 네이버에게 Hello 패킷을 받았으나 상대 라우터가 아직 내가 전송한 Hello 패킷을 아직 수신하지 못한 경우
- 상대방이 보낸 Hello 패킷 안의 네이버 리스트에 내 라우터 ID가 없는 경우
4) Two-way 상태
- 네이버와 쌍방향 통신이 이루어진 상태.
- 멀티 액세스 네트워크라면 이 단계에서 DR과 BDR을 선출한다.
- DROTHER간은 라우팅 정보를 교환하지 않으므로 즉, Adjacent(어제이션시)를 맺지 않으므로 네이버 상태가 투 웨이 상태로 남는다.
5) Exstart 상태
- Adjacent(어제이션트) 네이버가 되는 첫 단계
- 마스터와 슬레이브 라우터를 선출 (라우터 ID가 높은 것이 마스터)
6) Exchange 상태
- 각 라우터에서 자신의 Link State 데이터베이스에 저장된 LSA 헤더만을 DBD라고 부르는 패킷에 담아 상대방에게 전송한다.
- DBD 패킷을 수신한 라우터는 자신의 Link State 데이터베이스의 내용과 비교해 보고 자신에게 없거나 자신의 정보가 더 오래된 것이면 상대방에게 상세한 정보를 요청하기 위해 Link State Request List에 기록.
- DBD를 수신받고 그 안에 자신에게 없는 정보가 없으면 바로 Full 상태가 된다.
7) Loading 상태
- 상대로부터 DBD수신이 끝나고 자신에게 없는 정보를 LSR로 요청한다.
- 요청받은 라우터는 해당 정보를 LSU로 전송해준다.
8) Full 상태
- 어제이션트 라우터들 간에 정보 교환이 모두 끝나서 어드제이션트 네이버간 Link State 데이터베이스 내용이 모두 일치된 상태이다.
※ 네트워크 종류에 따라서 몇 단계를 건너뛰기도 한다. (debug ip opsf adj)을 실행하고 ospf를 설정하면 네이버간의 상태변화를 확인할 수 있다
OSPF 매트릭
- OSPF 메트릭은 Cost라고 부른다.
- 10^8/bandwidth(bps) = Cost
- 코스트 계산 시 소수점 이하는 전부 버린다.
- 하지만 1 미만이면 1로 계산한다.
- 인터페이스에서 명령어로 코스트를 변경할 수도 있다. (ip ospf cost?)
OSPF Area
- OSPF는 복수개의 Area로 나눠서 설정
- 규모가 작을 때는 하나의 Area만 사용해도 된다.
- Area가 하나일 경우에는 Area 번호로 아무거나 사용해도 된다.
- 하지만 Area가 두 개 이상일 경우 하나는 반드시 0으로 써야 한다.
- Area 0은 백본 에어리어라 불리며 기본적으로 다른 Area 들은 Area 0과 물리적으로 직접 연결돼야 한다.
- Area로 나눠서 구성하면 안정된 대규모 네트워크를 운영할 수 있다.
→ OSPF 라우팅 정보를 LSA라면 여러 종류가 있다.
Type 1과 2는 동일한 Area 내부로만 전달 즉, Area가 다르면 이 두 가지 LSA는 다른 Area로 전달되지 않는다.
결과적으로 토폴로지의 변화가 심한 불안정한 네트워크라도 그 영향을 자신의 Area 내부에 국한시킬 수 있다.
OSPF는 RIP이나 EIGRP처럼 임의 라우터에서 축약하는 것이 아니라 Area별로 축약을 설정한다. 따라서 특정 area에 소속된 네트워크를 축약함으로 특정 Area 네트워크 정보를 전송하는 LSA Type 3의 전송을 최소화할 수 있다.
즉, 특정 Area에서 발생하는 토폴로지 변화가 다른 Area에 미치는 영향을 최소화한다.
OSPF 외부 네트워크 또는 다른 에어리어의 라우팅 정보가 모두 차단되어 라우팅 테이블을 획기적으로 줄이는 Stub area 기능이 있다.
OSPF 라우터의 종료
- 백본 라우터 : 백본 에어리어(area 0)에 소속된 라우터
- 내부 라우터 : 하나의 에어리어에만 소속된 라우터
- ABR : 두 개 이상의 에어리어에 소속된 에어리어 경계 라우터를 의미
- ASBRP : OSPF 네트워크와 다른 라우팅 프로토콜이 설정된 네트워크를 연결하는 AS경계 라우터를 의미
OSPF 경로
우선 순위
|
코드
|
경로 타입
|
내용
|
|
1
|
0
|
에어리어 내부 경로
|
동일 Area에 소속된 경로
|
Inter area route
|
2
|
0 IA
|
에어리어 간 견로
|
다른 Area에 소속된 경로
|
Inter area route
|
3
|
O E1
|
도메인 외부 경로
|
변동 코스트 값을 가지는 외부 경로
|
외부에서 OSPF로 재분배된 네트워크
|
4
|
O N1
|
변동 코스트 값을 가지는 NSSA외부 경로
|
외부에서 OSPF로 재분배된 네트워크
|
|
5
|
O E2
|
고정 코스트 값을 가지는 외부 경로
|
외부에서 OSPF로 재분배된 네트워크
|
|
6
|
O N2
|
고정 코스트 값을 가지는 NSSA 외부 경로
|
외부에서 OSPF로 재분배된 네트워크
|
'IT Technology > Network' 카테고리의 다른 글
스푸핑 (Spoofing)공격 이란? (0) | 2022.02.18 |
---|---|
Public IP, Private IP(공인IP, 사설IP) (0) | 2022.01.22 |
L4 스위치 쉽게 이해하기(Source IP NAT문제) (0) | 2022.01.11 |
L4 스위치 쉽게 이해하기(네트워크 구성) (0) | 2022.01.10 |
L2, L3 Switch 이더채널구성(LACP, PAGP) (0) | 2022.01.05 |