네트워킹 구성요소를 컨트롤러 노드에 설치 및 구성합니다.
# apt-get install neutron-server neutron-plugin-ml2 \
neutron-plugin-linuxbridge-agent neutron-dhcp-agent \
neutron-metadata-agent python-neutronclient conntrack
네트워킹 서버 구성요소 구성에는 데이터베이스, 인증 메커니즘, 메시지 큐, 토폴로지 변경 알림, 플러그인을 포함합니다.
주석
디폴트 구성 파일을 배포판에 따라 달라집니다. 기존 섹션 및 옵션을 변경하는 것 보다는 해당 섹션과 옵션을 추가해야 할 수도 있습니다. 또한 구성 내용 조각 중 생략 (...) 부분은 유지될 필요성이 있는 디폴트 구성 옵션을 가리킵니다.
/etc/neutron/neutron.conf 파일을 수정하고 다음 작업을 완료합니다:
[database] 섹션에서 데이터베이스 액세스를 구성합니다:
[database]
...
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
NEUTRON_DBPASS 를 데이터베이스에 대해 선택한 암호로 변경합니다.
[DEFAULT] 섹션에서 Modular Layer 2 (ML2) 플러그인을 활성화하고 부가적인 플러그인을 비활성화합니다:
[DEFAULT]
...
core_plugin = ml2
service_plugins =
[DEFAULT] 와 [olso_messaging_rabbit] 섹션에서 RabbitMQ 메시징 큐 접근을 구성합니다:
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
RabbitMQ의 openstack 계정의 암호로 RABBIT_PASS 를 변경합니다.
[DEFAULT] 와 [keystone_authtoken] 섹션에서 Identity 서비스 접근을 구성합니다:
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = neutron
password = NEUTRON_PASS
Identity 서비스에서 neutron 사용자의 암호로 NEUTRON_PASS 를 변경합니다.
주석
[keystone_authtoken] 섹션 내 다른 옵션들은 주석 처리나 제거합니다.
[DEFAULT] 와 [nova] 섹션에서 네트워크 토폴로지 변경이 발생했을 때 Compute에 알려주도록 네트워킹을 구성합니다:
[DEFAULT]
...
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = http://controller:8774/v2
[nova]
...
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
region_name = RegionOne
project_name = service
username = nova
password = NOVA_PASS
Identity 서비스에서 nova 사용자의 암호로 NOVA_PASS 를 변경합니다.
(옵션) 트러블 슈팅을 지원하기 위해, [DEFAULT] 섹션에서 verbose 로깅을 활성화합니다:
[DEFAULT]
...
verbose = True
ML2 플러그인은 인스턴스에 대한 layer-2 (브리징과 스위칭) 가상 네트워킹 인프라를 구축하여 리눅스 브릿지 메커니즘을 사용합니다.
/etc/neutron/plugins/ml2/ml2_conf.ini 파일을 수정하고 다음 작업을 진행합니다:
[ml2] 섹션에서 flat, VLAN 네트워크를 활성화합니다:
[ml2]
...
type_drivers = flat,vlan
[ml2] 섹션에서 프로젝트 (사설) 네트워크를 비활성화합니다:
[ml2]
...
tenant_network_types =
[ml2] 섹션에서 리눅스 브릿지 체계를 활성화합니다:
[ml2]
...
mechanism_drivers = linuxbridge
경고
ML2 플러그인을 구성한 후, type_drivers 옵션의 값을 제거하게 되면 테이터베이스 불일치가 발생할 수 있습니다.
[ml2] 섹션에서 포트 보안 확장 드라이버를 활성화 합니다:
[ml2]
...
extension_drivers = port_security
[ml2_type_flat] 섹션에서 공용 플랫 프로바이더 네트워크를 구성합니다:
[ml2_type_flat]
...
flat_networks = public
[securitygroup] 섹션에서 시큐리티 그룹 규칙의 효율을 높이기 위해 ipset 을 활성화합니다:
[securitygroup]
...
enable_ipset = True
리눅스 브릿지 에이전트는 사설 네트워크 상의 VXLAN 터널링을 포함하는 인스턴스에 대한 layer-2(브릿징과 스위칭) 가상 네트워킹 인프라를 구축하고 시큐리티 그룹을 처리합니다.
Edit the /etc/neutron/plugins/ml2/linuxbridge_agent.ini file and complete the following actions:
[linux_bridge] 섹션에서, 공용 물리 네트워크 인터페이스에 공용 가상 네트워크를 매핑합니다:
[linux_bridge]
physical_interface_mappings = public:PUBLIC_INTERFACE_NAME
물리적인 공용 네트워크 인터페이스를 기본으로 하여 PUBLIC_INTERFACE_NAME 을 변경합니다.
[vxlan] 섹션에서, VXLAN 오버레이 네트워크를 비활성합니다:
[vxlan]
enable_vxlan = False
[agent] 섹션에서, ARP spoofing 방어를 활성화합니다:
[agent]
...
prevent_arp_spoofing = True
[securitygroup] 섹션에서 시큐리티 그룹을 활성화시키고 리눅스 브릿지 iptables 방화벽 드라이버를 구성합니다:
[securitygroup]
...
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
DHCP agent 가상 네트워크에대한 DHCP 서비스를 제공합니다.
/etc/neutron/dhcp_agent.ini 파일을 수정하고 다음 작업을 완료합니다:
[DEFAULT] 섹션에서 Linux 브릿지 인터페이스 드라이버, Dnsmasq DHCP 드라이버를 구성하고 격리된 메타데이터를 활성화하여 공용 네트워크 상의 인스턴스가 네트워크에서 메타데이터를 액세스하도록 합니다:
[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True
(옵션) 트러블 슈팅을 지원하기 위해, [DEFAULT] 섹션에서 verbose 로깅을 활성화합니다:
[DEFAULT]
...
verbose = True
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.