일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 방화벽
- Cisco
- pvst+
- BPDU
- freeradius
- 하프오픈
- STP
- 티스토리챌린지
- Packet Tracer
- centos
- pagp
- stream 9
- gns3
- LACP
- junos os
- eigrp
- 네트워크
- 연결선 수
- 프로그래머스
- Ansible
- Red Hat
- 오블완
- Network Design
- ospf
- 네이티브 vlan
- SQL
- rommon mode
- 네트워크 설계
- vlan
- port aggregation protocol
- Today
- Total
Doctor Pepper
GNS3와 Ansible을 이용한 네트워크 구성(2) 본문
1. EIGRP(Enhanced Interior Gateway Routing Protocol)
EIGRP는 Cisco에서 개발한 라우팅 프로토콜로, 내부 게이트웨이 프로토콜(IGP)의 한 종류이다. 이는 연결된 네트워크 간의 경로 정보를 교환하여 최적의 경로를 결정하는 데 사용된다. EIGRP는 기본적으로 하이브리드 프로토콜로, 링크 상태 프로토콜과 거리 벡터 프로토콜의 장점을 결합한 형태이다.
하이브리드 프로토콜 | 거리 벡터 프로토콜의 기능을 기반으로 하면서도, 링크 상태 프로토콜의 일부 요소를 포함하고 있음. 이를 통해 보다 빠르고 효율적인 경로 선택을 제공함. |
Dual 알고리즘 | Diffusing Update Algorithm (DUAL)을 사용하여 안정적인 경로 선택을 보장함. DUAL은 최적 경로를 계산하고, 경로가 다운될 경우 빠르게 대체 경로를 찾아냄. |
하이브리드 메트릭 | 대역폭, 지연, 신뢰성, 부하 등 여러 요소를 조합하여 경로의 메트릭을 계산함. 이를 통해 보다 정밀한 경로 선택이 가능함. |
네트워크 확장성 | 대규모 네트워크에서의 효율적인 경로 관리와 빠른 수렴 속도를 지원함. |
패킷 수신 방식 | 패킷의 수신 시 분산 방식으로 작동하며, 필요한 데이터만 전송하므로 대역폭을 효율적으로 사용함. |
VLSM 및 CIDR 지원 | 가변 길이 서브넷 마스크(VLSM) 및 클래스리스 도메인 라우팅(CIDR)을 지원하여, 다양한 서브넷과 IP 주소 배치 방식에 유연하게 대응함. |
2. 장단점
장점 | 빠른 수렴: DUAL 알고리즘 덕분에 경로가 변경될 때 빠르게 수렴하며, 신속한 경로 재구성이 가능함. 효율적인 대역폭 사용: 필요한 정보만 전송하여 대역폭을 절약하며, 불필요한 트래픽을 최소화함. 정밀한 메트릭 계산: 다양한 요소를 조합하여 경로의 메트릭을 계산하므로, 최적의 경로를 선택하는 데 유리함. 네트워크 확장성: 대규모 네트워크에서도 안정적으로 작동할 수 있어 기업 네트워크에 적합함. 지원하는 기능: VLSM 및 CIDR을 지원하여, 유연한 IP 주소 관리가 가능함. |
단점 | Cisco 전용: EIGRP는 Cisco에서 개발한 프로토콜이기 때문에, Cisco 장비에서만 사용할 수 있음. 다른 제조사의 장비와의 호환성 문제가 발생할 수 있음. 구성의 복잡성: EIGRP의 설정과 관리는 다른 거리 벡터 프로토콜에 비해 상대적으로 복잡할 수 있음. 네트워크 과부하: 잘못된 설정이나 디자인으로 인해 대규모 네트워크에서 과도한 업데이트 트래픽이 발생할 수 있음. 기본적인 보안 취약점: EIGRP는 기본적으로 암호화되지 않은 패킷을 전송하므로, 보안 설정이 필요함. |
3. Ansible 예제
GNS3를 실행하고 이전 게시물의 프로젝트를 불러온다.
EIGRP 연결을 위해 장치 툴바를 이용하여 R2와 R3, R3와 R1을 연결한다.
장치를 전부 실행하고, 각 장치의 콘솔을 실행한다.
- 라우터 설정
각 라우터에 따라 다음 명령어를 실행한다.
R1 | int fa0/1 no sh desc to R3 ip add 10.0.0.6 255.255.255.252 int l0 ip add 10.4.4.4 255.255.255.255 router ei 1 net 10.0.0.0 |
R2 | int g0/1 no sh desc to R3 ip add 10.0.0.1 255.255.255.252 int l0 ip add 10.2.2.2 255.255.255.255 router ei 1 net 10.0.0.0 |
R3 | int g0/1 no sh desc to R2 ip add 10.0.0.2 255.255.255.252 int g0/2 no sh desc to R1 ip add 10.0.0.5 255.255.255.252 int l0 ip add 10.3.3.3 255.255.255.255 router ei 1 net 10.0.0.0 |
- desc to R3 : 인터페이스에 대한 설명(description)을 추가하는 것으로, "to R3"는 이 인터페이스가 R3와 연결된다는 것을 의미한다. 네트워크 관리자가 인터페이스를 쉽게 파악할 수 있도록 도우며, 단순한 주석 역할을 한다.
- int l0 : Loopback 0 인터페이스를 구성하기 위한 것으로, 가상의 인터페이스를 이용하여 네트워크 장치에서 자체적으로 사용되는 득수한 IP 주소를 할당할 때 사용된다. Loopback 인터페이스는 항상 활성 상태로 유지되며, 장치의 식별 목적으로 사용된다.
- ip add 10.2.2.2 255.255.255.255 : Loopback 인터페이스에 10.2.2.2 주소를 할당하며, 255.255.255.255는 단일 호스트 주소로, Loopback 인터페이스에 흔히 사용되는 서브넷 마스크이다.
- router ei 1 : EIGRP 라우팅 프로토콜에서 라우터를 활성화한다. 여기서, ei는 EIGRP의 약어이며, 1은 AS(Autonomous System) 번호이다. EIGRP는 자율 시스템 내에서만 작동하며, AS 번호는 해당 라우팅 프로세스를 식별하는데 사용된다.
- net 10.0.0.0 : 라우터가 EIGRP를 통해 광고할 네트워크를 지정한다. net 뒤에 오는 10.0.0.0은 네트워크 주소를 나타내며, EIGRP가 10.0.0.0 네트워크의 경로를 광고한다. 여기서 클래스풀(classfull) 방식으로 해당 네트워크에 대한 서브넷 마스크가 자동으로 결정되며, 기본적으로 10.0.0.0 네트워크는 클래스 A 네트워크이므로 서브넷 마스크는 255.0.0.0으로 설정된다.
R1~3 공통 | do sh ip ei nei |
- do sh ip ei nei : sh ip eigrp neighbors 명령어의 줄임말로, 현재 라우터와 EIGRP 이웃 관계를 형성한 다른 라우터들의 상태를 보여준다.
주소(Address) | EIGRP 이웃 라우터의 IP 주소를 표시함. |
홀드 타임(Hold Time) | 라우터가 이웃으로부터의 업데이트를 기다리는 시간임. 이 시간이 지나면 해당 이웃이 다운된 것으로 간주함. |
업 타임(Uptime) | 이웃 관계가 형성된 이후 경과 시간을 나타냄. |
SRTT(Smooth Round Trip Time) | 라우터와 이웃 간의 왕복 시간임. 라우팅 업데이트를 주고받는 데 걸리는 시간 측정임. |
Q Cnt(Queue Count) | 큐에 대기 중인 패킷 수를 나타내며, 대기 중인 패킷이 없으면 0으로 표시됨. |
Seq Num(Sequence Number) | EIGRP 패킷의 시퀀스 번호로, 라우팅 업데이트의 최신 정보를 추적함. |
R1~3 공통 | do sh ip ro |
- do sh ip ro : sh ip route 명령어의 줄임말로, 라우터가 현재 학습한 모든 네트워크 경로와 그 경로가 어떻게 학습되었는지를 보여준다.
- Ansible 설정
Ansible 설정은 'GNS3와 Ansible을 이용한 네트워크 구성(1)'과 동일하게 설정 및 테스트를 수행한다.
- Ad Hoc 테스트 : 개별 장치 명령어 수행
Ansible을 이용하여 네트워크 장치에서 show version 명령어를 실행한 결과를 확인한다. 이와 동일하게 show ip ei nei와 같은 명령을 실행할 수 있다.
ansible R2 -m raw -a "show version" |
- Ad Hoc 테스트 : 그룹별 명령어 수행
Ansible을 이용하여 네트워크 장치에서 모든 라우터의 EIGRP 관계를 확인할 수 있다. 이와 동일하게 sh version과 같은 명령어를 실행하여 각 그룹에 해당하는 명령어를 실행할 수 있다.
ansible routers -i ./myhosts -m raw -a "sh ip ei nei" -u cisco -k |
- routers : Ansible 인벤토리(호스트 목록)에서 사용할 그룹 이름을 의미한다. Ansible은 이 그룹에 속한 여러 네트워크 장비에 명령을 실행하게 된다.
- -i ./myhosts : -i는 Ansible에서 사용할 인벤토리 파일을 지정하는 옵션이며, ./myhosts라는 경로에 있는 인벤토리 파일을 사용한다는 의미이다.
- Ad Hoc 테스트 : 특정 문자열 필터링
Ansible을 사용하여 네트워크 장치에서 장비 버전 정보를 확인하고, 그 결과에서 특정 문자열을 필터링하는 작업을 수행할 수 있다.
ansible all -i ./myhosts -m raw -a "sh version" -u cisco -k | grep 'CHANGED\|flash0\|ROM: 3700 Software' |
- Ansible all: all은 Ansible 인벤토리 파일에 정의된 모든 호스트에 대해 명령을 실행하겠다는 의미이다. 이 경우 인벤토리 파일에 있는 모든 네트워크 장비를 대상으로 명령어가 실행된다.
- | grep 'CHANGED|flash0|ROM: 3700 Software': 파이프(|)를 사용하여 명령의 출력을 grep 명령어로 전달한다.
- grep : 출력된 결과에서 특정 키워드를 필터링하는 역할을 수행한다. 이 경우 CHANGED, flash0, ROM: 3700 Software라는 문자열이 포함된 줄만 출력하도록 필터링한다
CHANGED | Ansible이 명령을 실행하여 장비에서 상태 변화가 있었을 경우 나타나는 메시지. |
flash0 | 장비의 flash0 메모리 장치에 관한 정보. |
ROM: 3700 Software | ROM에 로드된 소프트웨어가 3700 시리즈라는 정보를 필터링. |
- Ad Hoc 테스트 : 특정 문자열 필터링 값 저장
Ansible을 사용하여 여러 네트워크 장비에서 사용자 계정 정보를 확인하고, 그 결과에서 특정 문자열이 포함된 내용을 필터링하고 필터링된 값을 저장할 수 있다.
ansible all -i ./myhosts -m raw -a "sh run | i user" -u cisco -k | grep 'CHANGED\|username' > username.txt |
- i user : 실행된 설정 중 user가 포함된 부분만을 핑터링하는 명령어이다. 즉, sh run에서 사용자 계정 정보와 관련된 부분을 출력한다.
- > username.txt : 필터링된 결과를 username.txt 파일로 리다이렉트하여 저장한다. 기존 파일이 있다면 덮어쓴다.
이번 게시글에서는 Ansible을 활용하여 GNS3에서 구성한 네트워크 장치들에 대한 설정을 적용하고, EIGRP 관계를 확인하는 과정을 살펴보았다. 네트워크 자동화 도구인 Ansible을 통해 대규모 네트워크 장비를 관리하는 데 있어 시간과 노력을 줄일 수 있다는 것을 확인할 수 있다. 이를 통해 관리자는 네트워크 상태를 손쉽게 모니터링하고 유지할 수 있으며, 자동화를 통해 반복적인 작업을 효율적으로 처리할 수 있다. 앞으로도 네트워크 자동화는 더욱 중요해질 것이며, 이를 적극적으로 활용하는 것은 필수적인 기술이 될 것다.
'Network 심화 > GNS3-Ansible' 카테고리의 다른 글
GNS3에서 Ansible Playbook 사용하기(2) (2) | 2024.11.03 |
---|---|
GNS3에서 Ansible Playbook 사용하기(1) (6) | 2024.11.03 |
GNS3와 Ansible을 이용한 네트워크 구성(1) (5) | 2024.10.22 |
GNS3 IOSv(IOS Virtual) (16) | 2024.10.21 |
GNS3 VM 개념 및 설치 (3) | 2024.10.20 |