책 소개
요약
저자의 풍부한 실무 경험을 바탕으로 현 IT 업계에 네트워크 또는 시스템 엔지니어로 종사하는 분들 그리고 미래 네트워크 엔지니어를 꿈꾸는 학생 및 취업 준비생을 위해 쓰여졌습니다. 현업에서 프로그래밍 언어 중 하나인 파이썬(Python)을 이용해 네트워크 자동화를 구현하고자 하는 네트워크 엔지니어에게 실용적, 구체적, 기초적인 지식을 소개합니다. 이 책을 통해 파이썬 3와 여러 가지 IT 기술을 접목시킨 가상화 네트워킹 랩 만들기를 통해 네트워크 자동화의 초석이 되는 기본기를 배울 수 있을 것입니다.
이 책의 대상 독자
■ 현재 파이썬 및 네트워크 자동화를 공부하는 분
■ 파이썬 코딩을 이용해 네트워크 자동화 실현을 꿈꾸는 엔지니어
■ 현재 시스코 CCNA/CCNP/CCIE 자격증을 공부하는 분
■ 사내 네트워크 자동화 교육을 진행하는 교육 담당자
■ 네트워크 자동화 입문 교육자료로 사용할 분
이 책의 구성
우리가 네트워크 자동화에 첫 걸음을 내딛고 자동화에 다가간다는 의미에서 이 책은 크게 다섯 발걸음(five steps)으로 나눌 수 있을 것 같습니다.
첫 걸음은 1장에서 현재 IT 엔지니어들의 능력과 본인의 능력을 비교 분석해 봄으로서 어떻게 파이썬을 이용한 네트워크 자동화 공부를 시작해야 할지 함께 고민해 봅니다. 또한 이 책에서 다루는 전체적인 내용들과 네트워크 자동화 공부에 도움이 될 만한 사전 지식과 랩 구성에 필요한 요구사항을 간단히 둘러봅니다.
두 번째 발걸음은 2장에 속하며, VMware 워크스테이션 설치와 구성 그리고 기본 사용법 익히기, 가상 서버 설치해보기 등을 통해 실질적인 사용 방법을 익혀 봅니다. 그리고 GNS3을 사용한 가상화된 네트워크 랩 환경도 소개합니다. GNS3 설치와 설정 그리고 간단한 IOS 가상 랩 만들기를 통해 GNS3에서 사용되는 필수 기술들을 익힙니다. VMware 워크스테이션, GNS3 VM, GNS3에 시스코 IOS 이미지를 사용해 네트워크 자동화 랩 환경이 제대로 동작하는지 실행하면서 배워봅니다. VMware 워크스테이션과 GNS3의 설치는 곧 멀티 용도 랩을 만드는 초석이 됩니다. 차후 여러 벤더 기술 및 시스코 자격증 랩으로 사용 가능해집니다.
세 번째 발걸음인 3장에서는 이 책에서 사용할 파이썬을 리눅스와 윈도우 환경에 설치한 후 5장 랩에서 사용될 paramiko와 netmiko 파이썬 라이브러리를 설치하는 상세한 과정을 둘러봅니다. 처음으로 파이썬을 접하는 네트워크 엔지니어들은 파이썬과 파이썬 네트워킹 모듈과 관련된 설치과정을 이해하지 못하므로 하나에서 열까지 상세하게 설치 방법을 알려줍니다. 그리고 파이썬 코드 개발에 도움이 되는 텍스트 에디터들을 차례로 소개해 사용자가 본인 코딩 스타일에 맞는 텍스트 에디터 프로그램을 선택할 수 있도록 선택권을 드립니다.
네 번째 발걸음에 속하는 4장에서는 네트워킹 자동화 기술에 필수인 기본 리눅스 사용법을 배워 중요 네트워크 서비스인 FTP, SFTP, TFTP와 NTP 서버를 CentOS 7.5 리눅스 서버에 직접 구축해봅니다. 미래 여러 가지 시나리오의 랩을 실험할 때 이러한 올-인-원(All-in-one) 서버는 유용하게 사용될 수 있으며 POC(Proof-of-concept) 랩에서 꼭 필요한 요소입니다. 그리고 직접 파이썬 따라잡기를 통해 파이썬 기초 문법과 사용 방법을 간단히 익힐 수 있습니다. 4장을 통해 5장 네트워크 자동화 랩에서 필요한 여러 가지 리눅스 및 파이썬 기초 기술들을 습득합니다.
마지막으로 다섯 번째 발걸음은 5장으로 실습 네트워크 자동화 랩을 통해 이 책의 클라이맥스를 장식합니다. VMware 워크스테이션에서 만든 CentOS 리눅스 서버, GNS3 VM, GNS3에 시스코 L2 스위치 및 L3 라우터 이미지를 통합시켜 네트워크 자동화 랩 환경 만들기를 완성합니다. 2장에서 완성한 통합 랩 환경을 사용해 직접 사용자가 파이썬 3을 이용해 네트워크 자동화 스크립트를 손수 코딩하고 파이썬 코드를 사용해 직접 네트워킹 기기들을 제어 및 관리하게 됩니다.
코딩을 사용한 강력한 기술력을 직접 체험할 수 있으며 지금까지 궁금했던 텔넷과 ssh 접속을 이용한 시스코 네트워킹 장비 제어 및 관리 기술을 직접 손과 눈으로 그리고 머리로 배우면서 네트워크 자동화에 자연스럽게 입문하게 됩니다. 추가로 리눅스 작업 스케줄러인 크론(cron) 사용법을 익혀 직접 만든 파이썬 코드를 사용자 없이 실행해 봅니다. 또한, SNMP 개요를 통해 SNMP를 사용한 SNMP 파이썬 모니터링 코드 사용법도 간략하게 배웁니다. 마지막으로 파이썬 네트워크 자동화 코딩을 하면서 회사 내에서 도움이 되는 선택적 정보 공유를 끝으로 책을 마무리합니다.
이 책의 구성은 체계적으로 그리고 궁극적으로 교육의 목적으로 쓰여졌으므로, 책 전반부는 독자들의 이해를 돕기 위해 필자가 2년 동안 파이썬을 공부하면서 느끼고 생각했던 것을 정리했으며, 중반부는 한 발 더 나아가 직접 랩 설치 및 구성 후 기본기 다지기로 구성했습니다. 특히 VMware 워크스테이션 가상화 랩을 사용해 네트워크 자동화에 필요한 리눅스 및 파이썬 기본기를 직접 키보드를 통해 연습합니다. 마지막으로 GNS3 설치와 랩 환경을 완성시킨 후, 직접 코딩을 하고 완성한 파이썬 3 스크립트로 네트워킹 장비 자동화의 핵심인 telnet, SSH와 SNMP를 통한 시스코 IOS 기기 제어 방법의 기본기들을 배웁니다.
목차
목차
- 1장. 기술력 비교 및 자동화에 필요한 조건
- 1.1 나는 IT 엔지니어입니다. 한번도 틀린 적이 없습니다
- 1.2 당신은 어떤 IT 엔지니어입니까?
- 1.2.1 전통적인 IT 엔지니어 그룹의 능력 요구 비교 분석
- 1.2.2 현재 및 10년 후 네트워크 엔지니어의 능력 요구 비교 분석
- 1.2.3 당신은 팔방미인 IT 엔지니어가 될 수 있을까요?
- 1.3 어디서부터 네트워크 자동화 공부를 시작할까요?
- 1.4 네트워크 자동화 공부에 무엇이 필요할까요?
- 1.5 하드웨어 - 랩톱 최소 사양
- 1.6 소프트웨어 소개
- 1.7 네트워크 자동화 개발환경이란?
- 2장. GNS3 설치 및 구성
- 2.1 VMware 워크스테이션 소개
- 2.1.1 하이퍼바이저의 종류와 차이점
- 2.1.2 Type-2 하이퍼바이저 제품군
- 2.2 VMware 워크스테이션 설치 전 준비사항
- 2.3 VMware 워크스테이션 설치 파일 다운로드 및 설치하기
- 2.3.1 VMware 사용자 등록하기
- 2.3.2 VMware 워크스테이션 12.5.9 설치 파일 다운로드
- 2.3.3 VMware 워크스테이션 12.5.9 설치하기
- 2.4 VMware 워크스테이션 12.5 둘러보기
- 2.4.1 메인 사용자 윈도우 둘러보기
- 2.4.2 프로그램 사용 기본 동작
- 2.4.3 메뉴 둘러보기
- 2.4.4 가상 네트워크 어댑터 둘러보기
- 2.5 가상 머신(VM) 만들기
- 2.5.1 우분투 18.04 서버 이미지 다운로드 및 설치하기
- 2.5.2 CentOS 7.5 서버 이미지 다운로드 및 설치하기
- 2.6 GNS3 VM 다운로드 및 설치하기
- 2.6.1 GNS3 VM.ova 파일 다운로드 및 설치
- 2.7 GNS3 설치와 구성
- 2.7.1 GNS3 설치 파일 다운로드 받기
- 2.7.2 GNS3 설치에 앞서
- 2.7.3 GNS3 설치하기
- 2.8 GNS3 IOS 랩 만들기
- 2.8.1 시스코 IOS 소프트웨어 사용권한 및 시스코 IOS 다운로드
- 2.8.2 IOS 랩 구성 및 연결 이해하기
- 2.8.3 GNS3에 시스코 IOS 설치 및 설정하기
- 2.8.4 MS Loopback 어댑터를 사용해 호스트 랩톱 GNS3 네트워크와 연결하기
- 2.8.5 리눅스 가상 서버를 사용해 파이썬 스크립트 작성하기
- 2.8.6 GNS3 프로젝트 복제하기
- 2.1 VMware 워크스테이션 소개
- 3장. 파이썬 설치와 구성, 통합 개발 환경 및 텍스트 에디터 소개
- 3.1 파이썬 설치에 앞서
- 3.2 윈도우에 파이썬 설치하기
- 3.2.1 윈도우용 파이썬 3 및 파이썬 2 다운로드 받기
- 3.2.2 윈도우에 파이썬 3 설치하기
- 3.2.3 윈도우에 파이썬 2 설치하기
- 3.3 리눅스에 파이썬 설치하기
- 3.3.1 우분투 18.04에 파이썬 설치에 앞서
- 3.3.2 우분투 18.04에 파이썬 설치 유무 확인하기
- 3.3.3 우분투 18.04에 파이썬 2 및 pip 설치와 paramiko 및 netmiko 패키지 설치하기
- 3.3.4 CentOS 7.5에 파이썬 설치하기
- 3.4 파이썬 통합 개발 환경과 파이썬 텍스트 에디터 소개 및 설치에 앞서
- 3.5 파이썬 표준 통합 개발 환경이란?
- 3.6 텍스트 에디터 소개 및 설치하기
- 3.6.1 Notepad++ 소개, 설치 및 설정하기
- 3.6.2 이클립스 소개, 설치 및 설정하기
- 3.6.3 Atom 소개 및 설치하기
- 3.6.4 Sublime Text 소개 및 설치하기
- 3.6.5 PyCharm 소개 및 설치하기
- 3.6.6 Anaconda 소개 및 설치하기
- 4장. 리눅스와 파이썬 따라잡기
- 4.1 리눅스의 시초와 종류 이해하기
- 4.2 리눅스 실행 환경 이해하기
- 4.3 리눅스 디렉터리 및 파일 형식 이해하기
- 4.4 vi 대 Nano 텍스트 에디터 비교
- 4.4.1 vi 텍스트 에디터 배워보기
- 4.4.2 nano 텍스트 에디터 배워보기
- 4.5 리눅스 파일 및 디렉터리 명령어
- 4.5.1 리눅스 파일 및 디렉터리 관리하기 예습 1
- 4.5.2 리눅스 파일 및 디렉터리 관리하기 예습 2
- 4.6 우분투 서버 root 사용자로 패스워드 변경 및 SSH 디폴트 포트 변경하기(서버 보안 강화)
- 4.6.1 우분투 서버 root 사용자 패스워드 변경하기
- 4.6.2 우분투 서버 SSH 디폴드 포트 번호 변경하기
- 4.7 TFTP, FTP, SFTP와 NTP 서버 설치하기
- 4.7.1 FTP 서버 설치하기
- 4.7.2 SFTP 서버 설치하기
- 4.7.3 TFTP서버 설치하기
- 4.7.4 NTP 서버 설치하기
- 4.8 파이썬 따라잡기에 앞서
- 4.9 파이썬 따라잡기
- 4.9.1 대화식 모드로 코딩하기
- 4.9.2 텍스트 에디터로 파이썬 코딩하기
- 4.9.3 파이썬 배워기에 앞서
- 4.9.4 파이썬 예제로 배우기
- 4.9.5 파일 핸들링에 대한 추가 설명
- 5장. 파이썬 자동화 실습랩
- 5.1 시스코 VIRL 소프트웨어 사용 권한 관련 정보 및 다운로드..
- 5.1.1 시스코 VIRL L2 스위치 이미지 다운로드하기
- 5.1.2 시스코 VIRL L3 라우터 이미지 및 startup_config 파일 다운로드하기
- 5.2 GNS3에 시스코 VIRL L2 스위치 및 VIRL L3 설치하기
- 5.2.1 GNS3에 시스코 VIRL L2 스위치 설치하기
- 5.2.2 GNS3에 시스코 VIRL L3 라우터 설치하기
- 5.3 기본 랩 톱폴로지 완성하기
- 5.4 네트워크 자동화 파이썬 랩 1
- 5.4.1 Lab 1 - telnet1.py(파이썬 telnet 템플렛 사용해 라우터 한 대 설정하기)
- 5.4.2 Lab 2 - telnet2.py (스위치 한 대에 여러 개의 VLAN 설정하기)
- 5.4.3 Lab 3 - telnet3.py
- 5.4.4 Lab 4 - telnet4.py
- 5.4.5 Lab 5 - telnet5multi.py
- 5.4.6 Lab 6 - telnet6multi.py (비연속 IP를 사용하는 동일 장비 설정하기)
- 5.4.7 Lab 7 - telnet7backup.py
- 5.4.8 Lab 8 - paramiko1.py
- 5.4.9 Lab 9 - 파일 두 개 사용해 사용자 입력없이 장비 설정하기(NTP 랩)
- 5.4.10 Lab 10(백업 만든 후 장비 설정 변경하기(TFTP 랩))
- 5.4.11 Lab 11 - SSH 랩 4 - netmiko1.py
- 5.5 네트워크 자동화 파이썬 랩 2
- 5.5.1 리눅스 크론 배워 파이썬 코드 자동 실행하기
- 5.5.2 SNMP 이해 및 파이썬으로 SNMP 사용하기에 앞서
- 5.6 파이썬 네트워크 자동화를 공부하면서 도움이 되는 정보들
- 5.6.1 네트워크 자동화 관련 파이썬 라이브러리 및 모듈
- 5.6.2 파이썬 가상 환경 이해하기
- 5.6.3 회사 내 프록시 서버로 필요한 파이썬 모듈 설치하기
- 5.1 시스코 VIRL 소프트웨어 사용 권한 관련 정보 및 다운로드..
도서 오류 신고
정오표
정오표
[p. 416 3행]
03 echo 명령어의
->
03 cat 명령어의
[p. 460 예제 설명 4행]
그리고 번째
->
그리고 두번째
[p. 469 예제 16 3행]
[p. 489 코드 마지막 행]
[p. 493 코드 5, 6행]
[p. 495 예제 45 6행]
[p. 497 예제 설명 3행]
26번째 위치에서 37번째
->
30번째 위치에서 40번째
[p. 529 코드 8, 11행]
데스트
->
테스트