개요 / 과제 설명
2 - 1 -- 5 - 6
| | | |
3 - 4 8 - 7
0. ospf 로만 구성. 전체 장비가 루프백까지 핑이 돼야 함
1. 내부 선정을 p2p 로만 해야함
2. 1, 5번장비가 ABR(둘 사이는 백본 에어리어)
3. 1~4 장비는 area 10, process 10. 5~8번 장비는 area 20, process 20
토폴로지 구성
OSPF 구성(1-2-3-4-1 연결)
ospf <10, process> router-id <1.1.1.1, loopback>
area <10, area>
network <1.1.1.1, loopback> <0.0.0.0, wildcard>
interface gigabitethernet <0/0/2, port>
ospf network-type p2p
ospf enable <10, process> area <10, area>
5-6-7-8-5 도 동일한 요령으로 구성하면 된다.
OSPF를 처음 설정할 때는 process id를 지정하면서 router-id도 함께 설정하게 된다. 일반적으로 router-id는 변하지 않는 Loopback 인터페이스의 IP를 사용하며 이를 명시하는 것이 좋다. 만약 router-id를 명시하지 않으면, 라우터는 Loopback 인터페이스 중 가장 높은 아이피를 자동으로 선택하고, Loopback이 없다면 활성화된 물리 인터페이스 아이피 중 가장 높은 값을 사용하게 된다.
하지만 이렇게 자동으로 지정될 경우, 루프백이 아닌 인터페이스 아이피가 router-id로 설정되어 혼동이 생기거나, 다른 라우터와 router-id가 중복되는 문제가 발생할 수 있으므로, 항상 router-id는 명시적으로 설정하는 것이 권장된다. 참고로, router-id를 변경한 경우에는 reset ospf process 명령어를 통해 OSPF 프로세스를 재시작해야 변경 내용이 반영된다.
그다음으로 area를 지정하게 되는데, area id는 정수(예: `area 10`)로 입력해도 되고 ip 주소 형식(예: `area 0.0.0.10`)으로 입력해도 된다. 내부적으로는 ip 형식(dotted-decimal)으로 저장된다.
network 명령은 어떤 네트워크를 해당 ospf 프로세스에 포함시킬지를 결정하는 명령어로, 해당 ip 범위에 일치하는 인터페이스를 ospf area에 등록해서 LSA를 통해 전파한다. 이 과정을 통해 ospf는 해당 네트워크 정보를 주변 라우터에 flooding 하게 되며, 이를 광고(advertise)라고도 부르기도 한다. 과제 설정에서는 루프백 인터페이스 아이피는 다른 장비와 직접 연결된 아이피가 아니기 때문에 해당 명령을 통해 광고해 줘야 다른 라우터에서 루프백 아이피에 접근할 수 있게 된다.
인터페이스 설정은 network-type을 p2p로 명시한다. 모든 제조사 및 장비 특성 / 인터페이스별로 기본값이 바뀌기 때문에 기본값과 동일한 설정을 하더라도 명시적으로 선언하는 게 권장된다.
ospf enable 명령을 통해 해당 인터페이스에 OSPF 프로세스를 활성화하고, 해당 인터페이스가 지정된 area에 참여하게 된다. 이 명령은 network 명령처럼 IP 범위를 기준으로 자동 탐색하는 방식이 아니라 명확히 특정 인터페이스에 대해 OSPF를 적용하는 명령이다.
이 설정이 적용되면 라우터는 해당 인터페이스에서 OSPF Hello 패킷을 주기적으로 송신하며, 연결된 이웃 장비와의 neighbor 관계를 형성하고, 이 인터페이스의 네트워크 정보가 LSA로 생성되어 OSPF 영역 내에 광고(flooding) 된다. 즉, network 명령과 기능은 동일하기 때문에 둘 중 어떤 걸 사용해도 상관은 없다.
1-5 연결
ospf 10
area 0
interface gigabitethernet 0/0/0
ip address 10.1.1.1 30
ospf network-type p2p
ospf enable 10 area 0
앞서서 1-2-3-4-1과 5-6-7-8-5 구간을 구성했다면, 이제 양쪽에 연결된 인터페이스가 있는 1-5 구간을 ABR로 만들어야 한다. ABR로 만든다는 뜻은 서로 연결되는 인터페이스를 백본 에어리어(area 0)로 구성하여 서로의 라우팅 테이블을 받아올 수 있게 구성한다는 의미이다.
만드는 스크립트 자체는 동일하다. 따라서 area 0을 ospf에 등록해 주고(router-id는 앞서서 넣었기 때문에 필요 없음), 인터페이스에 enable 설정을 해주면 된다.
테스트
전체 장비의 핑을 확인했고, 1번과 7번이 통신이 잘 되는지를 스크린샷으로 남겼다.
3번이나 7번 장비만 라우팅 테이블이 유독 긴데, 3번에서 1번 가는 경로가 2개이다 보니 해당 경로와 그 이후의 경로가 전부 2개씩으로 나오는 게 이유이다. 정확히 같은 코스트에 따로 정책이 없는 상황에서 어떤 경로가 우선 선택되는지가 궁금했는데 아직까지는 방법을 찾지 못했다.
forward engine information에 뭐라도 저장되어 있을 줄 알았는데 해당 명령어로 봐도 뭐가 안 보인다. 코스트까지 같은 상황이면 뭐가 선택되는지가 중요한 건 아니니까 우선 패스
버그 내역
버그라기 보단 프로세스의 정체에 대해 궁금했던 지점이 있는데, 이게 도대체 어디서 어떻게 쓰이는 물건인지가 궁금했다.
후술 할 BGP의 AS처럼 네트워크 전체에서 사용하는 값으로 인식하면 안 되고, 각 장비의 로컬 프로세스라는 걸 인지하고 있어야 한다. 하나의 장비에서 ospf area를 구별해야 할 일이 있을 때에 사용되는 것이 프로세스이고, 서로 다른 장비에서는 서로의 프로세스 아이디가 달라도 통신이 된다.(확인은 못했지만 서로의 프로세스 아이디는 아예 알 방법조차 없는 것으로 보인다.)
RFC의 ospf 문서(https://www.ietf.org/rfc/rfc2328.txt)에서 process id 관련 내용을 찾지 못했는데, 아마 장비 제조사 측에서 운영상의 편의를 위해 프로세스를 나눈 것으로 보인다.
'프로그래밍 > 네트워크' 카테고리의 다른 글
[화웨이] 네트워크 과제 6 - BGP 과제 진행 (3) | 2025.05.21 |
---|---|
[화웨이] 네트워크 과제 5 - BGP 학습 (1) | 2025.05.21 |
[화웨이] 네트워크 과제 3 - OSPF 학습 (0) | 2025.05.20 |
[화웨이] 네트워크 과제 2 - Static route 과제 (2) | 2025.05.20 |
[화웨이] 네트워크 과제 1 - 라우팅 기초 이론 (0) | 2025.05.20 |