일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- LACP
- 네트워크
- 프로그래머스
- Packet Tracer
- eigrp
- centos
- BPDU
- 하프오픈
- rommon mode
- Ansible
- 네이티브 vlan
- STP
- 연결선 수
- 오블완
- Red Hat
- vlan
- Cisco
- 네트워크 설계
- SQL
- 티스토리챌린지
- junos os
- pagp
- freeradius
- Network Design
- stream 9
- port aggregation protocol
- gns3
- 방화벽
- ospf
- pvst+
- Today
- Total
Doctor Pepper
GNS3에서 Ansible Playbook 사용하기(2) 본문
1. OSPF 및 EIGRP 개념
- OSPF(Open Shortest Path First)
OSPF(Open Shortest Path First)는 링크 상태 라우팅 프로토콜로, 내부 게이트웨이 프로토콜(IGP) 중 하나로 사용되며, 인터넷 표준으로 채택된 라우팅 프로토콜이다. OSPF는 네트워크의 모든 라우터가 링크 상태 정보를 교환하여 최적의 경로를 계산한다. 이 프로토콜은 각 라우터가 자신의 링크 상태 정보를 지역적으로만 전파하고, 전체 네트워크의 상태를 유지하면서 최적 경로를 계산하는 링크 상태 프로토콜이다. 또한, OSPF는 큰 네트워크를 효과적으로 관리하기 위해 영역(Area)으로 나누어 계층적으로 구성할 수 있어, 라우팅 정보를 효율적으로 관리하고 전파할 수 있도록 지원한다.
OSPF는 Dijkstra의 최단 경로 우선 알고리즘(SPF)을 사용하여 최적 경로를 계산한다. 이 과정을 통해 각 라우터는 최단 경로 트리를 생성하고, 이를 기반으로 패킷을 전달한다. OSPF는 빠른 수렴 속도를 제공하며, 링크 상태 변화 시 즉시 업데이트를 전파하여 네트워크의 안정성을 높이는 신뢰성 있는 특성을 가지고 있다. 이러한 이유로 OSPF는 대규모 기업 네트워크와 ISP 네트워크 등에서 널리 사용되며, 링크 상태의 특성 덕분에 복잡한 네트워크 환경에서도 유연하게 적용할 수 있다.
- EIGRP(Enhanced Interior Gateway Routing Protocol)
EIGRP(Enhanced Interior Gateway Routing Protocol)는 Cisco에서 개발한 경량 하이브리드 라우팅 프로토콜로, 내부 게이트웨이 프로토콜(IGP)의 한 종류이다. EIGRP는 거리 벡터와 링크 상태의 특성을 결합하여 빠른 수렴성과 효율적인 라우팅을 제공한다. 이 프로토콜의 주요 특징 중 하나는 하이브리드 프로토콜이라는 점으로, 거리 벡터 방식과 링크 상태 방식의 장점을 통합하여 경로 선택과 수렴 속도를 향상시킨다.
EIGRP는 DUAL(Diffusing Update Algorithm) 알고리즘을 사용하여 경로의 안정성과 최적 경로를 동적으로 계산하며, 이를 통해 불필요한 라우팅 루프를 방지하고 빠른 수렴을 달성한다. 또한, 네트워크 효율성을 높이기 위해 변경 사항이 발생할 때만 업데이트를 전송하여 네트워크 대역폭을 절약하며, 여러 경로를 동시에 학습하여 로드 밸런싱을 지원한다.
EIGRP는 대역폭, 지연, 신뢰성, 부하 및 MTU 등을 기준으로 메트릭을 계산하여 최적 경로를 선택한다. 이러한 특성 덕분에 EIGRP는 중소규모 네트워크에서 널리 사용되며, Cisco 장비에서 주로 활용된다. 특히 빠른 수렴과 높은 효율성 덕분에 데이터 센터, 캠퍼스 네트워크 등 다양한 환경에서 적합한 선택이다.
2. 토폴로지 구성
GNS3를 실행하고 다음과 같이 네트워크 토폴로지를 구성한다.
- NetworkAutomation 장치 설정
nano /etc/network/interfaces |
- 라우터 설정
각 라우터에 따라 다음 명령어를 실행한다.
R1 | conf t hostname R1 int gi0/0 desc To R2 no sh ip add 10.0.0.1 255.255.255.252 int gi0/1 desc To R3 no sh ip add 10.0.0.5 255.255.255.252 int l0 no sh ip add 10.1.1.1 255.255.255.255 router ei 1 net 10.0.0.0 |
R2 | conf t hostname R2 int gi0/0 desc To R5 no sh ip add 10.0.0.9 255.255.255.252 int gi0/1 desc To R1 no sh ip add 10.0.0.2 255.255.255.252 int gi0/2 desc To R8 ip add 10.0.0.13 255.255.255.252 int l0 no sh ip add 10.2.2.2 255.255.255.255 router ei 1 net 10.0.0.0 |
R3 | conf t hostname R3 int gi0/0 desc To R6 no sh ip add 10.0.0.17 255.255.255.252 int gi0/1 desc To R1 no sh ip add 10.0.0.6 255.255.255.252 int gi0/2 desc To R4 ip add 10.0.0.21 255.255.255.252 int l0 no sh ip add 10.3.3.3 255.255.255.255 router ei 1 net 10.0.0.0 |
R4 | conf t hostname R4 int gi0/0 desc To R5 no sh ip add 10.0.0.25 255.255.255.252 int gi0/1 desc To R3 no sh ip add 10.0.0.22 255.255.255.252 int l0 no sh ip add 10.4.4.4 255.255.255.255 router ei 1 net 10.0.0.0 |
R5 | conf t hostname R5 int gi0/0 desc To R4 no sh ip add 10.0.0.26 255.255.255.252 int gi0/1 desc To R2 no sh ip add 10.0.0.10 255.255.255.252 int l0 no sh ip add 10.5.5.5 255.255.255.255 router ei 1 net 10.0.0.0 |
R6 | conf t hostname R6 int gi0/0 desc To R8 no sh ip add 10.0.0.29 255.255.255.252 int gi0/1 desc To R3 no sh ip add 10.0.0.18 255.255.255.252 int l0 no sh ip add 10.6.6.6 255.255.255.255 int gi0/2 desc TO NET AUTO no sh ip add 192.168.0.1 255.255.255.0 router ei 1 net 10.0.0.0 |
R7 | conf t hostname R7 int gi0/0 desc To R6 no sh ip add 10.0.0.30 255.255.255.252 int gi0/1 desc To R2 no sh ip add 10.0.0.14 255.255.255.252 int l0 no sh ip add 10.7.7.7 255.255.255.255 router ei 1 net 10.0.0.0 |
R1~7 공통 |
usern cisco pas cisco usern cisco priv 15 lin vty 0 4 tr i a logi loc exi ip domain-n netautomation.com cry key gen rsa 1024 do wr do sh ip ei nei do sh ip ro ei |
- 설정 테스트
R6 | do sh ip int b do sh run int gi0/2 router ei 1 net 192.168.0.1 255.255.255.255 no net 192.0.0.0 do sh run | s eig do sh ip ei int |
Network Automation |
ping 10.0.0.1 route |
3. Ansible 설정
- ansible.cfg 설정
nano ansible.cfg |
[defaults] inventory = ./myhosts host_key_checking = false timeout = 15 deprecation_warnings = False |
- /etc/hosts 설정
nano /etc/hosts |
10.1.1.1 R1 10.2.2.2 R2 10.3.3.3 R3 10.4.4.4 R4 10.5.5.5 R5 10.6.6.6 R6 10.7.7.7 R7 |
- myhosts 설정
nano myhosts |
[routers] R1 R2 R3 R4 R5 R6 R7 |
4. Ansible Playbook
- ospfproc.yml : OSPF 라우팅 프로토콜을 각 라우터에 설정한다.
--- - name: Configure OSPF on ALL hosts: routers gather_facts: false connection: local vars: cli: username: cisco password: cisco tasks: - name: enable ospf ios_config: provider: "{{ cli }}" authorize: yes parents: router ospf 1 lines : - network 0.0.0.0 255.255.255.255 area 0 register: print_output - debug: var=print_output |
ansible-playbook ospfproc.yml -u cisco -k |
- iproutes.yml : 라우터에 연결하여 IP 라우팅 정보를 출력한다.
--- - name: Get IP Routes hosts: routers gather_facts: false tasks: - name: show ip route raw: "show ip route" register: print_output - debug: var=print_output.stdout_lines |
ansible-playbook iproutes.yml -u cisco -k | grep 'ok:\|D' |
ansible-playbook iproutes.yml -u cisco -k | grep 'ok:\|O' |
- ospfdatabase.yml : OSPF 데이터베이스 정보를 출력한다.
--- - name: Get OSPF Database hosts: routers gather_facts: false tasks: - name: show ip ospf database raw: "show ip ospf database" register: print_output - debug: var=print_output.stdout_lines |
ansible-playbook ospfdatabase.yml -u cisco -k |
- remeigrp.yml : EIGRP를 제거하기 위해 설정한다.
--- - name: Remove EIGRP from ALL hosts: routers gather_facts: false connection: local vars: cli: username: cisco password: cisco tasks: - name: remove eigrp ios_config: provider: "{{ cli }}" authorize: yes lines: - no router eigrp 1 register: print_output - debug: var=print_output |
ansible-playbook remeigrp.yml -u cisco -k |
'Network 심화 > GNS3-Ansible' 카테고리의 다른 글
GNS3에서 Ansible Playbook 사용하기(1) (6) | 2024.11.03 |
---|---|
GNS3와 Ansible을 이용한 네트워크 구성(2) (2) | 2024.10.23 |
GNS3와 Ansible을 이용한 네트워크 구성(1) (5) | 2024.10.22 |
GNS3 IOSv(IOS Virtual) (16) | 2024.10.21 |
GNS3 VM 개념 및 설치 (3) | 2024.10.20 |