책 소개
요약
오픈스택의 네트워킹 인프라를 담당하는 뉴트론(Neutron)을 소개한다. CentOS 환경에서 오픈스택 하바나(Havana) 버전을 사용한 여러 가지 실습 예제를 통해 개념을 쉽게 이해할 수 있다. 뉴트론의 기본 개념과 기능부터, 라우터와 로드발란서(LBaaS 서비스), 방화벽(FWaaS 서비스), 보안(시큐리티 그룹) 등과 같은 응용 서비스도 소개한다. 이 책은 기존에 오픈스택에 대한 경험은 있지만, 뉴트론에 대해 생소한 독자를 대상으로 하기 때문에 최대한 쉽게 설명하지만, 리눅스를 다룬 경험과 기본적인 네트워크 지식이 있으면 더욱 도움이 된다.
이 책에서 다루는 내용
■ CentOS에서 하바나 버전으로 오픈스택을 구축하는 방법
■ 오픈스택 네트워킹의 구성 요소에 대한 개요 및 이를 이용한 네트워크 운영 방법
■ Open vSwitch나 LinuxBridge로 인스턴스나 다른 네트워크 리소스에 대한 가상 스위칭 인프라 구축 방법
■ 물리 및 가상 오버레이 네트워크와 소프트웨어 라우터를 생성하여 인스턴스와 다른 네트워크 리소스에 대한 L3 연결 제공 방법
■ haproxy 플러그인으로 오픈스택 네트워킹에서 제공하는 LBaaS를 통해 애플리케이션의 확장성을 높이는 방법
■ iptables 기반의 FWaaS와 보안 그룹을 통해 클라우드를 안전하게 보호하는 방법
■ 호라이즌 대시보드나 CLI를 통한 오픈스택 네트워킹 관리 방법
이 책의 대상 독자
이 책은 오픈스택 클라우드에서 뉴트론 기능을 활용하려는 초급에서 중급 사이의 오픈스택 클라우드 관리자를 대상으로 집필했다. 오픈스택을 설치하는 것부터 하므로 누구나 이 책에서 소개하는 예제를 쉽게 따라 할 수 있을 뿐만 아니라, 뉴트론을 구성하는 여러 가지 컴포넌트에 대해서도 쉽게 이해할 수 있다. 이 책은 오픈스택 네트워킹 서비스를 개발하는 것이 아닌, 사용하는 데 초점을 맞추고 있으며, 상용 솔루션보다 오픈 소스 소프트웨어를 중심으로 설명한다.
이 책의 구성
1장, ‘오픈스택을 위한 네트워크 준비’ 오픈스택 네트워킹에서 제공하는 다양한 네트워킹 기술에 대해 소개하고, 오픈스택 클라우드를 위한 물리 네트워크를 설계하는 방법에 대해 설명한다.
2장, ‘오픈스택 설치’ CentOS 6.5에서 오픈스택 하바나 버전을 설치하는 방법에 대해 설명한다.
3장, ‘뉴트론 설치’ 오픈스택 뉴트론 관련 컴포넌트를 설치하는 방법에 대해 설명한다. 이 과정에서 네트워크 구성에 필요한 에이전트와 플러그인과 함께 뉴트론의 내부 구조에 대해서도 자세히 살펴본다.
4장, ‘가상 스위칭 인프라 만들기’ 인스턴스에 대한 L2 연결을 제공하기 위해 LinuxBridge를 설치하고 설정하는 방법에 대해 설명한다. 또한 LinuxBridge를 사용할 때와, OVS를 사용할 때의 구조상의 차이점에 대해서도 설명한다.
5장, ‘뉴트론 네트워크 생성’ 뉴트론에서 네트워크와 서브넷을 생성하고, 네트워크에 인스턴스를 붙이고, DHCP와 메타데이터를 제공받는 과정에 대해 살펴본다.
6장, ‘뉴트론 라우터 생성’ 뉴트론 라우터를 생성하고, 네트워크에 연결해서, 인스턴스에서 라우터를 통해 통신하는 과정을 살펴보고, 인스턴스에 유동 IP를 제공하는 과정도 살펴본다.
7장, ‘로드밸런싱’ 가상 IP와 풀, 풀 멤버, 모니터 등과 같은 뉴트론의 로드 밸런서에 대한 기본 컴포넌트를 소개한다. 그리고 이를 통해 네트워크에 로드 밸런서를 구현하는 방법도 살펴본다.
8장, ‘네트워크에 연결된 인스턴스 보호’ 보안 그룹으로 인스턴스 트래픽을 보호하는 방법을 소개한다. 또한 Firewall-as-a-service로 네트워크에 방화벽을 설치하는 방법도 살펴본다.
부록 A, ‘뉴트론 커맨드’ 이 책에서 미처 다루지 못한, VPN-as-a-service, 시스코 1000V, VMware/Nicira 관련 커맨드를 소개한다.
부록 B, ‘ML2 설정’ 기존 LinuxBridge와 OVS 플러그인을 대체할 ML2 플러그인을 설정하는 방법을 소개한다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
목차
목차
- 1장 오픈스택을 위한 네트워크 준비
- 오픈스택 네트워킹이란
- 오픈스택 네트워킹에서 제공하는 기능
- 스위칭
- 라우팅
- 로드밸런싱
- 방화벽
- VPN
- 오픈스택 네트워킹에서 제공하는 기능
- 물리적인 인프라 구축
- 네트워크의 종류
- 관리 네트워크
- API 네트워크
- 외부 네트워크
- 게스트 네트워크
- 네트워크의 종류
- 물리적인 서버 연결
- 단일 인터페이스
- 다중 인터페이스
- 본딩
- 여러 노드에 걸쳐 동작하는 서비스 구분
- 한 개의 컨트롤러 노드와 한 개 이상의 컴퓨트 노드로 구성된 경우
- 한 개의 컨트롤러 노드와 한 개 이상의 컴퓨트 노드, 그리고 별도 네트워크 노드로 구성된 경우
- 정리
- 오픈스택 네트워킹이란
- 2장 오픈스택 설치
- 시스템 요구 사항
- OS 요구 사항
- 초기 네트워크 구성
- 인터페이스 설정
- 준비 작업
- 접근 권한
- 오픈스택 리포지터리 설정
- 오픈스택 유틸리티 설치
- 호스트네임 설정
- SELinux 끄기
- iptables 규칙 삭제
- NTP 설치와 설정
- 시스템 업그레이드
- 오픈스택 설치
- MySQL 데이터베이스 서버 설치 및 설정
- MySQL 데이터베이스 클라이언트 설치
- 메시징 서버 설치 및 설정
- 아이덴티티 서비스 설치 및 설정
- 키스톤에서 사용자와 테넌트, 롤 정의
- 키스톤이 제대로 설치됐는지 확인
- 환경 변수 설정
- 이미지 서비스 설치 및 설정
- 키스톤에 글랜스 서비스와 API 엔드포인트 정의
- 글랜스 서비스가 제대로 설치됐는지 확인
- 컴퓨트 서비스 설치 및 설정
- 컨트롤러 노드 컴포넌트 설치 및 설정
- 컴퓨트 노드 컴포넌트 설치와 설정
- 서비스끼리 통신할 수 있는지 확인
- 오픈스택 대시보드 설치
- 대시보드에 대한 연결 설정
- 키스톤 서버 지정
- 리스너 주소 변경
- 대시보드가 구동하는지 확인
- 정리
- 시스템 요구 사항
- 3장 뉴트론 설치
- 뉴트론의 기본 구성 요소
- 네트워크 네임스페이스로 여러 네트워크 혼용
- 플러그인으로 네트워크 기능 확장
- 뉴트론 서비스 설치 및 설정
- 뉴트론 데이터베이스 생성
- 키스톤에서 뉴트론 사용자와 롤, 엔드포인트 설정
- 패킷 포워딩 활성화
- 뉴트론에서 키스톤을 사용하도록 설정
- 뉴트론에서 메시징 서비스를 사용하도록 설정
- 루트 헬퍼 설정
- 노바에서 뉴트론 네트워킹을 사용하도록 설정
- 뉴트론 서비스 설정
- neutron-server 설정
- neutron-server 구동
- 뉴트론 DHCP 에이전트 설정
- 뉴트론 DHCP 에이전트 구동
- 뉴트론 메타데이터 에이전트 설정
- 뉴트론 L3 에이전트 설정
- 뉴트론 LBaaS 에이전트 설정
- 뉴트론 커맨드라인 인터페이스 사용법
- 정리
- 뉴트론의 기본 구성 요소
- 4장 가상 스위칭 인프라 만들기
- 인스턴스에 대한 L2 연결 제공
- 가상 네트워크 인터페이스
- 브릿징
- 브릿지 인터페이스 설정
- 뉴트론에서 생성할 수 있는 네트워크
- 네트워킹 플러그인 선택
- 리눅스브릿지
- 리눅스브릿지로 내부 네트워크 연결
- OVS
- OVS로 내부 네트워크 연결
- 플로우 룰 프로그래밍
- 리눅스브릿지
- L2 네트워킹 플러그인 설정
- LinuxBridge 플러그인 설정
- 노바에서 리눅스브릿지를 사용하도록 설정
- DHCP 에이전트에서 리눅스브릿지를 사용하도록 설정
- 리눅스브릿지 플러그인 설정 옵션
- 테넌트 네트워크 타입
- 물리 인터페이스 매핑
- 네트워크 VLAN 범위
- 방화벽 드라이버
- 서비스 재구동
- OVS 플러그인 설정
- 뉴트론에서 OVS를 사용하도록 설정
- 노바에서 OVS를 사용하도록 설정
- DHCP 에이전트에서 OVS를 사용하도록 설정
- OVS 플러그인 설정 옵션
- LinuxBridge 플러그인 설정
- 정리
- 인스턴스에 대한 L2 연결 제공
- 5장 뉴트론 네트워크 생성
- 네트워크 관리
- CLI에서 네트워크 관리
- [실습] CLI에서 플랫 네트워크 생성
- [실습] CLI에서 VLAN 생성
- CLI에서 로컬 네트워크 생성
- [실습] CLI에서 생성된 네트워크 목록 보기
- [실습] CLI에서 네트워크 속성 보기
- CLI에서 네트워크 업데이트
- CLI에서 네트워크 삭제
- [실습] 대시보드에서 네트워크 생성
- [실습] 관리자 계정으로 Admin(관리자) 탭에서 생성
- 사용자 계정으로 Project(프로젝트) 탭에서 생성
- 뉴트론의 서브넷
- CLI에서 서브넷 생성하는 방법
- [실습] CLI에서 서브넷 생성해보기
- [실습] CLI에서 생성된 서브넷 목록 보기
- [실습] CLI에서 서브넷 속성 확인
- CLI에서 서브넷 업데이트
- [실습] 대시보드에서 서브넷 생성
- [실습] 관리자 계정으로 Admin(관리자) 탭에서 생성
- 사용자 계정으로 Project(프로젝트) 탭에서 생성
- 뉴트론 포트
- CLI에서 네트워크 관리
- 네트워크에 인스턴스 붙이기
- nova boot 커맨드로 네트워크에 인스턴스 붙이기
- 네트워크 인터페이스 붙이거나 떼기
- 인터페이스에 주소 추가
- 인스턴스에서 주소를 얻는 과정
- 인스턴스에서 메타데이터를 가져오는 방법
- 라우터 네임스페이스
- DHCP 네임스페이스
- 169.254.169.254에 대한 경로를 직접 추가
- DHCP로 경로 추가
- 정리
- 네트워크 관리
- 6장 뉴트론 라우터 생성
- 뉴트론 L3 에이전트 설정
- [실습] 인터페이스 드라이버 정의
- 외부 네트워크 설정
- [실습] 외부 브릿지 설정
- 메타데이터 프록시 활성화
- [실습] 뉴트론 L3 에이전트 구동
- CLI에서 라우터 관리
- CLI에서 라우터 생성
- CLI에서 라우터 인터페이스 조작
- 라우터에 내부 인터페이스 붙이기
- 라우터에 게이트웨이 인터페이스 붙이기
- 라우터에 붙어 있는 인터페이스 확인
- 내부 인터페이스 삭제
- 게이트웨이 인터페이스 초기화
- CLI에서 라우터 목록 확인
- CLI에서 라우터 속성 확인
- CLI로 라우터 속성 변경
- CLI에서 라우터 삭제
- NAT
- 유동 IP 주소
- 유동 IP 관리
- CLI에서 유동 IP 생성
- CLI에서 유동 IP를 포트에 연결
- CLI에서 유동 IP 목록 확인
- CLI에서 유동 IP 속성 확인
- CLI에서 유동 IP에 설정된 포트 정보 지우기
- CLI에서 유동 IP 삭제
- [예제1] 인스턴스에서 인터넷과 연결되도록 구성
- [예제1] 환경 설정
- [예제1] 외부 프로바이더 네트워크 생성
- [예제1] 뉴트론 라우터 생성
- [예제1] 생성한 라우터를 외부 네트워크에 붙이기
- [예제1] 게이트웨이 연결 확인
- [예제1] 내부 네트워크 생성
- [예제1] 내부 네트워크에 라우터 붙이기
- [예제1] 인스턴스 생성
- [예제1] 인스턴스 연결 상태 확인
- [예제1] 디폴트 NAT 동작 살펴보기
- [예제1] 유동 IP 할당
- [예제1] 유동 IP 다시 할당
- [예제2] 대시보드에서 라우터 관리
- [예제2] 대시보드에서 라우터 생성
- [예제2] 대시보드에서 게이트웨이 인터페이스 붙이기
- [예제2] 대시보드에서 내부 인터페이스 붙이기
- [예제2] 대시보드에서 네트워크 토폴로지 보기
- [예제2] 대시보드에서 인스턴스에 유동 IP 할당
- [예제2] 대시보드에서 할당된 유동 IP 해제
- 정리
- 뉴트론 L3 에이전트 설정
- 7장 로드밸런싱
- 로드 밸런싱의 기본 개념
- 로드 밸런싱 알고리즘
- 모니터링
- 세션 지속성
- 네트워크에 로드 밸런싱 적용
- 네트워크 네임스페이스
- LBaaS 설치
- 뉴트론 LBaaS 에이전트 서비스 설정
- 인터페이스 드라이버 지정
- 디바이스 드라이버 지정
- 사용자 그룹 변경
- 서비스 플러그인 지정
- 뉴트론 LBaaS 에이전트 서비스 구동
- 호라이즌에서 LBaaS 관리할 수 있도록 설정
- 뉴트론 LBaaS 에이전트 서비스 설정
- CLI에서 로드 발란서 관리
- CLI에서 풀 관리
- 풀 생성
- 풀 삭제
- 풀 목록 보기
- 풀에 대한 세부 정보 보기
- 풀에 대한 통계 정보 보기
- 풀의 속성 변경
- 에이전트에 설정된 풀 목록 보기
- CLI에서 풀 멤버 관리
- 풀 멤버 생성
- 풀 멤버 삭제
- 풀 멤버 목록 보기
- 풀 멤버에 대한 세부 정보 보기
- 풀 멤버에 대한 속성 변경
- CLI에서 헬스 모니터 관리
- 헬스 모니터 생성
- 헬스 모니터 삭제
- 헬스 모니터를 풀과 연결
- 풀에 연결된 헬스 모니터 해제
- 헬스 모니터 목록보기
- 헬스 모니터에 대한 상세 정보 보기
- 헬스 모니터 속성 변경
- CLI에서 가상 IP 관리
- 가상 IP 생성
- 가상 IP 삭제
- 가상 IP 목록 보기
- 가상 IP 세부 정보 보기
- 가상 IP 속성 변경
- [실습] 로드 발란서 만들기
- 풀 생성
- 풀 멤버 생성
- 헬스 모니터 생성
- 가상 IP 생성
- LBaaS 네트워크 네임스페이스
- 로드 발란서 동작 확인
- 헬스 모니터 동작 살펴보기
- 외부에서 가상 IP 접속
- 대시보드에서 로드 발란서 관리
- 대시보드에서 풀 생성
- 대시보드에서 풀 멤버 생성
- 대시보드에서 헬스 모니터 생성
- 대시보드에서 가상 IP 생성
- 외부에서 가상 IP에 연결
- 정리
- 로드 밸런싱의 기본 개념
- 8장 네트워크에 연결된 인스턴스 보호
- 오픈스택에서 제공하는 보안 그룹
- 방화벽 서비스
- iptables 소개
- 보안 그룹 다루기
- CLI에서 보안 그룹 관리
- CLI에서 보안 그룹 생성
- CLI에서 보안 그룹 삭제
- CLI에서 보안 그룹 목록 보기
- CLI에서 보안 그룹에 대한 상세 정보 보기
- CLI에서 보안 규칙 속성 수정
- CLI에서 보안 그룹 규칙 생성
- CLI에서 보안 그룹 규칙 삭제
- CLI에서 보안 그룹 규칙 보기
- CLI에서 보안 그룹 규칙에 대한 세부 사항 보기
- CLI에서 인스턴스에 보안 그룹 적용
- 보안 그룹 규칙 구현
- 체인 살펴보기
- 대시보드에서 보안 그룹 다루기
- CLI에서 보안 그룹 관리
- FWaaS 사용
- 뉴트론에서 FWaaS 설정
- FWaaS 드라이버 설정
- 서비스 플러그인 정의
- 대시보드에서 FWaaS 사용하도록 설정
- CLI에서 방화벽 다루기
- CLI에서 방화벽 규칙 생성
- CLI에서 방화벽 규칙 삭제
- CLI에서 방화벽 규칙 목록 보기
- CLI에서 방화벽 규칙에 대한 상세 정보 보기
- CLI에서 방화벽 규칙 수정
- CLI에서 방화벽 정책 생성
- CLI에서 방화벽 정책 삭제
- CLI에서 방화벽 정책 목록 보기
- CLI에서 방화벽 정책의 세부 사항 살펴보기
- CLI에서 방화벽 정책 수정
- CLI에서 방화벽 정책에 규칙 추가
- CLI에서 방화벽 정책에 있는 규칙 삭제
- CLI에서 방화벽 생성
- CLI에서 방화벽 삭제
- CLI에서 방화벽 목록 보기
- CLI에서 방화벽에 대한 상세 정보 보기
- CLI에서 방화벽 수정
- 대시보드에서 방화벽 다루기
- 뉴트론에서 FWaaS 설정
- 방화벽 규칙 적용 과정 살펴보기
- 방화벽의 체인 적용 과정 살펴보기
- 정리
- 부록 A 뉴트론 커맨드
- 뉴트론 확장 기능
- 뉴트론 API 확장 기능 목록 보기
- API 확장 기능에 대한 상세 정보 보기
- 가상 사설 네트워크
- 테넌트에 대한 리소스 할당량
- 디폴트 할당량 보기
- 테넌트 할당량 수정
- 테넌트 할당량 보기
- 테넌트 할당량 삭제
- 시스코 넥서스 1000V 관련 커맨드
- VMware/Nicira 관련 커맨드
- 뉴트론 확장 기능
- 부록 B ML2 설정
- ML2 플러그인 설치
- ML2를 위한 데이터베이스 생성
- 뉴트론에서 ML2를 사용하도록 설정
- 서비스 플러그인 설정
- ML2를 위한 데이터베이스 생성
- ML2 플러그인 설정
- 뉴트론 서비스 재구동
- ML2 플러그인 설치