Top

파이썬 네트워킹 마스터 2/e [파이썬으로 하는 네트워크 자동화, 데브옵스, 테스트 주도 개발]

  • 원서명Mastering Python Networking, 2nd Edition: Your one-stop solution to using Python for network automation, DevOps, and Test-Driven Development (ISBN 9781789135992)
  • 지은이에릭 추(Eric Chou)
  • 옮긴이전성빈
  • ISBN : 9791161753638
  • 35,000원
  • 2019년 10월 31일 펴냄
  • 페이퍼백 | 548쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 네트워크 프로그래밍

책 소개

요약

급격히 변화하는 네트워킹 분야에서 파이썬 등을 활용한 네트워크 관리와 엔지니어링의 중요성은 나날이 커지고 있다. 이 책은 기존 네트워크 개발자들을 대상으로 자동화, 보안, 모니터링, 테스트 등 다양한 분야에서 파이썬을 도입하는 방법을 제시한다. 또한 실무에서 사용하는 풍부한 예제를 통해 독자들이 필요한 분야에 곧바로 적용할 수 있도록 했다. 개정판은 AWS, 데브옵스 등 최신 트렌드를 반영해 더 풍부한 내용을 담았다.

이 책에서 다루는 내용

■ 파이썬 라이브러리를 사용한 네트워크 상호작용
■ 앤서블 2.5와 파이썬을 결합한 Cisco, Juniper, Arista eAPI 제어
■ 기존 프레임워크를 통한 고레벨 API 구축
■ AWS 클라우드에 가상 네트워크 구축
■ 젠킨스를 사용한 네트워크 변경사항 자동 배포
■ PyTest 및 Unittest를 사용한 테스트 주도 네트워크 개발

이 책의 대상 독자

이미 여러 종류의 네트워크 기기를 관리하고 있으며, 파이썬이나 다른 도구를 사용해 네트워크 관련 문제를 해결하고 싶어하는 IT 전문가나 실무 엔지니어를 대상으로 한다. 네트워킹과 파이썬의 기본 지식은 미리 습득해 두기를 바란다.

이 책의 구성

1장, ‘TCP/IP 프로토콜과 파이썬 개괄’에서는 인터넷 커뮤니케이션을 구성하는 기본 기술, OSI와 클라이언트-서버 모델에서부터 TCP, UDP, IP 프로토콜 스위트까지 다룬다. 또한 파이썬 소개와 형식, 오퍼레이터, 반복문, 함수, 패키지 등을 간단히 다룬다.
2장, ‘저레벨 네트워크 기기 상호작용’에서는 예시를 통해 파이썬으로 네트워크 기기에 명령을 실행시키는 방법을 알아본다. 이 결과로 CLI 기반 인터페이스를 자동화할 때의 어려움을 확인하게 될 것이다. PExpect와 Paramiko 라이브러리를 사용한다.
3장, ‘API와 목적 중심 네트워킹’에서는 애플리케이션 프로그램 인터페이스 API와 고레벨 상호작용 메서드를 지원하는 최신 네트워크 기기를 다룬다. 네트워크 엔지니어가 파이썬을 통해 목적에 집중하면서 저레벨 작업을 수행하는 방법도 알아본다. 이 책에서는 많은 API 중 시스코 NX-API, 주니퍼 PyEZ, 아리스타 Pyeapi를 예시로 살펴본다.
4장, ‘파이썬 자동화 프레임워크 - 앤서블 기초’에서는 파이썬 기반 오픈 소스 자동화 프레임워크인 앤서블(Ansible)을 살펴본다. 앤서블은 API에서 한 단계 더 나아가 네트워크 목적과 디바이스 상호작용 구현에 초점을 맞추고 있다. 이 장에서는 앤서블의 장점, 구조, 시스코(Cisco), 주니퍼(Juniper), 아리스타(Arista) 기기 등에 적용하는 실제 예제를 알아본다.
5장, ‘파이썬 자동화 프레임워크 - 앤서블 심화’에서는 4장에서 다룬 내용을 토대로 앤서블의 고급 개념인 조건문, 반복문, 템플릿, 변수, 앤서블 볼트, 역할 등을 살펴본다. 사용 중인 네트워크 환경에 맞는 앤서블 모듈을 직접 작성하는 기본 방법도 알아본다.
6장, ‘파이썬 네트워크 보안’에서는 네트워크의 보안 강화에 사용되는 파이썬 도구를 알아본다. 스카피(Scapy)를 이용한 보안 테스팅, 앤서블을 통한 접근 목록 구축, 파이썬을 사용한 포렌식 분석 등을 살펴본다.
7장, ‘파이썬 네트워크 모니터링 I’에서는 다양한 도구를 사용해 네트워크를 모니터링하는 방법을 알아본다. SNMP와 PySNMP를 사용해 기기 정보부터 알아낸 다음 맷플롯립(Matplotlib)과 파이갤(Pygal)을 사용해 결과를 시각화한다. 마지막으로 칵티(Cacti) 예제를 통해 파이썬 스크립트를 입력 소스로 활용하는 방법을 살펴본다.
8장, ‘파이썬 네트워크 모니터링 II’에서는 더 많은 네트워크 모니터링 도구를 살펴본다. 우선 그래프비즈(Graphviz)를 통해 LLDP에서 자동으로 정보를 받아와 네트워크 그래프를 그리는 방법을 알아본다. 다음으로 넷플로우(NetFlow) 또는 유사한 기술을 사용해 푸시 기반 네트워크 모니터링을 수행한다. 또한 파이썬을 사용해 패킷 정보를 디코딩해 플로우 정보를 시각화한다. 마지막으로 일래스틱서치(Elasticsearch)를 설치해 네트워크 모니터링을 보안하는 방법을 살펴본다.
9장, ‘파이썬을 사용한 네트워크 웹 서비스 구축’에서는 파이썬 웹 프레임워크인 플라스크(Flask)를 사용해 네트워크 레벨에서 API를 직접 만드는 방법을 알아본다. 네트워크 레벨 API는 네트워크 환경과 무관하게 리퀘스트를 처리하거나, 원하는 대로 동작을 변경하거나, 필요한 동작만을 노출해 보안을 강화하는 장점이 있다.
10장, ‘AWS 클라우드 네트워킹’에서는 AWS를 사용해 기능적이고 유연한 가상 네트워크 구축 방법을 살펴본다. 또한 CloudFormation, VPC 라우팅 테이블, 접근 목록, 일래스틱 IP, NAT 게이트웨이, 다이렉트 커넥트 등 관련 주제도 알아본다.
11장, ‘깃 사용하기’에서는 깃(Git)을 사용해 협업과 코드 버전 제어를 구현하는 방법에 대해 알아본다. 깃을 네트워크 작업에 사용하는 실용적인 예시를 소개한다.
12장, ‘젠킨스를 사용한 지속적 통합’에서는 젠킨스를 사용해 동작 파이프라인을 자동으로 생성함으로써 시간과 신뢰성을 향상시키는 방법을 알아본다.
13장, ‘네트워크를 위한 TDD’에서는 파이썬 유닛테스트(unittest) 및 파이테스트(PyTest)를 사용해 코드를 검증하는 간단한 테스트 수행 방법을 알아본다. 또한 네트워크의 도달성, 지연, 보안, 트랜잭션 등을 검증하기 위한 테스트 작성 예시를 살펴본다. 아울러 이런 테스트를 젠킨스와 같은 지속적 통합 도구와 함께 사용하는 방법을 제시한다.

저자/역자 소개

지은이의 말

이 책은 파이썬으로 네트워크 엔지니어링 작업을 수행한다. 파이썬은 배우기 쉬운 고레벨 프로그래밍 언어로 네트워크 엔지니어의 창의성과 문제 해결 능력을 실무에 유연하게 적용할 수 있게 한다. 파이썬은 대규모 네트워크를 구성하는 데 없어서는 안 될 언어가 되고 있다. 이 책에서는 파이썬으로 네트워크를 구성하는 데 필요한 기법도 함께 소개한다.
1판이 출간된 이후 많은 독자와 흥미롭고 깊은 대화를 나눌 수 있었다. 1판의 성공에 안주하지 않고 피드백을 적극 받아들여 2판에서는 최신 예제와 기술을 소개하려 노력했다. 예를 들어 오픈플로우(OpenFLow) SDN 관련 내용은 네트워크 데브옵스 도구로 대체했다. 이런 노력이 독자에게 더 많은 도움이 됐으면 하는 바람이다.
시대의 변화는 기술이 발전하는 중대한 기회가 찾아옴을 뜻한다. 이 책에서 소개하는 개념과 방법은 내 커리어에 중요한 비중을 차지한다. 독자에게도 도움이 되기를 바란다.

지은이 소개

에릭 추(Eric Chou)

18년 넘게 일해온 전문가다. 아마존 AWS와 마이크로소프트 애저 등의 기업에 근무하면서 업계의 가장 큰 네트워크 관리를 맡아왔다. 네트워크 자동화와 파이썬에 관심이 있고, 기업이 좀 더 안정된 보안을 구축할 수 있게 돕고 있다. 파이썬 및 네트워크 보안 관련 책을 여러 권 썼고, 온라인 강의를 제공하며, 현재 음성 인터넷 프로토콜 관련 특허를 두 개나 보유하고 있다. 책, 강의, 블로그에서 기술에 관한 이야기를 나누며, 유명 파이썬 오픈 소스 프로젝트에 기고한다.

옮긴이의 말

파이썬의 장점으로 가장 많이 이야기되는 것은 범용성과 유연함이다. 파이썬은 가장 빠른 언어도 아니고, 가장 쉽게 배울 수 있는 언어도 아니며, 가장 정교하고 기능이 풍부한 언어도 아니다. 그러나 기존의 수많은 라이브러리를 적절히 사용하면 거의 모든 문제를 간단하게 해결할 수 있다는 점은 파이썬이 가진 큰 무기다. 다시 말해 파이썬은 다른 어떤 언어보다도 결과물을 만들어내는 속도에 있어서 빠르다는 장점이 있다(물론 파이썬이 그다지 느린 언어도 아니다).
그리고 네트워크 프로그래밍이 있다. 일반적으로 장고(Django)나 플라스크(Flask) 등의 웹 프레임워크가 파이썬을 네트워크 분야에 사용하는 방법으로 알려져 있지만, 파이썬의 유연함과 자동화 기능은 파이썬을 사용하는 다양한 분야에서의 응용할 수 있게 만든다. 그리고 벤더에 의해 폐쇄적으로 구축되던 네트워크 프로그래밍은 점점 개방되고 표준화되는 방향으로 급격히 변화하고 있다. 이 과정에서 파이썬은 큰 역할을 하고 있다.
저자는 실무자들이 빠른 변화에 대응할 수 있는 방법을 제시한다. 파이썬이나 네트워크 프로그래밍의 기초보다는 실제로 어떻게 네트워크를 자동화할 수 있는지에 중점을 두고 설명한다. 저자의 오랜 경험이 반영된 많은 예제는 실무에서 파이썬을 바로 적용할 수 있는 지름길 역할을 한다. 특히 2판은 가장 최신의 네트워킹 실무 트렌드를 반영하기 위해 1판이 나온 지 불과 1년밖에 되지 않았지만 클라우드 네트워킹이나 깃, 데브옵스 등 많은 내용을 고치고 덧붙였다. 이 책은 파이썬을 사용해서 지금보다 한 걸음 더 나아가고 싶은 네트워크 개발자에게 많은 도움이 될 것이다.

옮긴이 소개

전성빈

연세대학교 기계공학과를 졸업하고, 동 대학원에서 이미지 프로세싱을 주제로 박사 학위를 받았다. 이맥스를 사용하며, 웹 프로그래밍을 이용한 지식의 구조화에 꾸준한 관심을 갖고 있다.

목차

목차
  • 1장. TCP/IP 프로토콜과 파이썬 개괄
    • 인터넷의 개요
      • 서버, 호스트, 네트워크 컴포넌트
      • 데이터 센터의 등장
        • 엔터프라이즈 데이터 센터
        • 클라우드 데이터 센터
        • 엣지 데이터 센터
    • OSI 모델
    • 클라이언트-서버 모델
    • 네트워크 프로토콜 스위트
    • TCP
      • TCP의 기능과 특성
      • TCP 메시지와 데이터 전달
    • UDP
    • IP
      • IP NAT과 보안
      • IP 라우팅
    • 파이썬 개요
      • 버전
      • 운영 체제
      • 파이썬 프로그램 실행하기
      • 내장 자료형
        • None형
        • 숫자형
        • 나열형
        • 매핑형
        • 세트형
      • 연산자
      • 제어 흐름
      • 함수
      • 클래스
      • 모듈과 패키지
    • 요약

  • 2장. 저레벨 네트워크 기기 상호작용
    • CLI의 어려움
    • 가상 네트워크 랩 만들기
      • 시스코 VIRL
        • VIRL 팁
      • 시스코 데브넷과 디클라우드
      • GNS3
    • 파이썬 Pexpect 라이브러리
      • 설치
      • Pexpect 개요
      • 첫 번째 Pexpect 예제
      • Pexpect 좀 더 살펴보기
      • Pexpect와 SSH
      • 정리
      • 파이썬 Paramiko 라이브러리
      • 설치
      • Paramiko 개요
      • 첫 번째 Paramico 예제
      • 심화 기능
        • 서버 관리
      • 정리
    • 논의
      • Pexpect와 Paramiko 사용 시 주의할 점
        • 멱등 네트워크 기기 상호작용
        • 빠른 자동화와 오작동
    • 요약

  • 3장. API와 목적 중심 네트워킹
    • 코드로서의 인프라스트럭처
      • 목적 중심 네트워킹
      • 스크린 스크래핑과 API 구조 출력
      • 데이터 모델링 인프라스트럭처 코드
    • 시스코 API와 ACI
      • 시스코 NX-API
        • 설치와 기기 준비
        • NX-API 예제
      • 시스코와 YANG 모델
      • 시스코 ACI
    • 주니퍼 네트워크 파이썬 API
      • 주니퍼와 NETCONF
        • 준비 사항
        • 주니퍼 NETCONF 예제
      • 주니퍼 PyEZ
        • 설치와 준비 사항
        • PyEZ 예제
    • 아리스타 파이썬 API
      • 아리스타 eAPI 관리 도구
        • eAPI 준비
        • eAPI 예제
      • 아리스타 Pyeapi 라이브러리
        • Pyeapi 설치
        • Pyeapi 예제
    • 범용 라이브러리
    • 요약

  • 4장. 파이썬 자동화 프레임워크 - 앤서블 기초
    • 더 선언적인 프레임워크
    • 간단한 앤서블 예제
      • 컨트롤 노드 설치
      • 다른 버전의 앤서블 실행하기
      • 랩 셋업
      • 첫 번째 앤서블 플레이북
        • 공개 키 인증
        • 인벤토리 파일
        • 플레이북 만들기
    • 앤서블의 장점
      • 에이전트가 필요 없음
      • 멱등
      • 단순함과 확장성
      • 네트워크 벤더 지원
    • 앤서블 구조
      • YAML
      • 인벤토리
      • 변수
      • 진자2 템플릿
    • 앤서블 네트워킹 모듈
      • 로컬 연결과 환경 변수
      • 제공자 매개변수
    • 앤서블 시스코 예제
      • 앤서블 2.5 연결 예제
    • 앤서블 주니퍼 예제
    • 앤서블 아리스타 예제
    • 요약

  • 5장. 파이썬 자동화 프레임워크 - 앤서블 심화
    • 앤서블 조건문
      • when 절
      • 앤서블 네트워크 팩트
      • 네트워크 모듈 조건문
    • 앤서블 반복문
      • 표준 반복문
      • 딕셔너리 반복문
    • 템플릿
      • 진자2 템플릿
      • 진자2 반복문
      • 진자2 조건문
    • 그룹과 호스트 변수
      • 그룹 변수
      • 호스트 변수
    • 앤서블 볼트
    • 앤서블 include와 역할
      • 앤서블 include 문
      • 앤서블 역할
    • 사용자 모듈 작성하기
      • 사용자 모듈: 첫 번째
      • 사용자 모듈: 두 번째
    • 요약

  • 6장. 파이썬 네트워크 보안
    • 랩 설정
    • 파이썬 스카피
      • 스카피 설치
      • 대화형 예제
      • 스니핑
      • TCP 포트 스캔
      • 핑 콜렉션
      • 네트워크 공격
      • 스카피 리소스
    • 접근 목록
      • 앤서블을 통한 접근 목록 구현
      • MAC 접근 목록
    • Syslog 검색
      • RE 모듈 검색
    • 그 밖의 도구
      • 사설 VLAN
      • UFW와 파이썬
      • 참고 자료
    • 요약

  • 7장. 파이썬 네트워크 모니터링 I
    • 랩 설정
    • SNMP
      • 설정
      • PySNMP
    • 파이썬 데이터 시각화
      • 맷플롯립
        • 설치
        • 기본 예제
        • 맷플롯립을 통한 SNMP 결과 출력
        • 추가 맷플롯립 리소스
      • 파이갤
        • 설치
        • 기본 예제
        • 파이갤을 이용한 SNMP 출력
        • 추가 파이갤 리소스
    • 파이썬과 칵티
      • 설치
      • 파이썬 스크립트를 통한 데이터 입력
    • 요약

  • 8장. 파이썬 네트워크 모니터링 II
    • 그래프비즈
      • 랩 설정
      • 설치
      • 그래프비즈 예제
      • 파이썬 그래프비즈 예제
      • LLDP 이웃 그래프
        • 정보 취득
        • 파이썬 파서 스크립트
        • 최종 플레이북
    • 플로 기반 모니터링
      • 파이썬을 이용한 넷플로우 파싱
        • 파이썬 소켓과 구조체
      • ntop 트래픽 모니터링
        • ntop 파이썬 확장 기능
      • 에스플로우
        • 파이썬을 이용한 sFlowtool과 sFlow-RT
    • 일래스틱서치(ELK 스택)
      • 호스팅 ELK 서비스 설정
      • 로그스태시 형식
      • 로그스태시 포매팅을 위한 파이썬 헬퍼 스크립트
    • 요약

  • 9장. 파이썬을 사용한 네트워크 웹 서비스 구축
    • 파이썬 웹 프레임워크 비교
    • 플라스크와 랩 설정
    • 플라스크 들어가기
      • HTTPie 클라이언트
      • URL 라우팅
      • URL 변수
      • URL 생성
      • jsonify 반환
    • 네트워크 정적 콘텐츠 API
      • Flask-SQLAlchemy
      • 네트워크 콘텐츠 API
      • 기기 API
      • 기기 ID API
    • 네트워크 동적 동작
      • 비동기 작업
    • 보안
    • 추가 리소스
    • 요약

  • 10장. AWS 클라우드 네트워킹
    • AWS 설치
      • AWS CLI와 파이썬 SDK
    • AWS 네트워크 개요
    • 가상 사설 클라우드
      • 라우팅 테이블과 라우팅 타겟
      • CloudFormation을 통한 자동화
      • 보안 그룹과 네트워크 ACL
      • 탄력적 IP
      • NAT 게이트웨이
    • 다이렉트 커넥트와 VPN
      • VPN 게이트웨이
      • 다이렉트 커넥트
    • 네트워크 스케일링 서비스
      • 탄력적 로드 밸런싱
      • 라우트53 DNS 서비스
      • 클라우드프론트 CDN 서비스
    • 그 밖의 AWS 네트워크 서비스
    • 요약

  • 11장. 깃 사용하기
    • 깃 소개
      • 깃의 장점
      • 깃 용어
      • 깃과 깃허브
    • 깃 설정
      • Gitignore
    • 깃 사용 예제
      • 깃허브 예제
        • 풀 리퀘스트를 통한 협업
    • 깃과 파이썬
      • GitPython
      • PyGitHub
    • 설정 백업 자동화
    • 깃으로 협업하기
    • 요약

  • 12장. 젠킨스를 통한 지속적 통합
    • 전통적인 변화 관리 프로세스
    • 지속적 통합의 소개
    • 젠킨스 설치
    • 젠킨스 예제
      • 첫 번째 작업: 파이썬 스크립트
      • 젠킨스 플러그인
      • 지속적 네트워크 통합 예제
    • 젠킨스와 파이썬
    • 지속적 네트워크 통합
    • 요약

  • 13장. 네트워크를 위한 TDD
    • TDD의 개요
      • 용어
    • 코드로서의 토폴로지
      • 파이썬 unittest 모듈
    • 파이썬 테스트: 심화
      • pytest 예제
    • 네트워크 테스트 작성하기
      • 접근성 테스트
      • 네트워크 지연 테스트
      • 보안 검사
      • 트랜잭션 테스트
      • 네트워크 설정 테스트
      • 앤서블 테스트
    • Pytest와 젠킨스
      • 젠킨스 통합

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안