Openstack

Openstack Neutron이란? (network)

Somaz 2022. 8. 8. 14:58
728x90
반응형

overview

오늘은 neutron에 대해서 공부해보려고 한다.

 

 

neutron 이란?

네트워크 서비스, 가상 네트워크 인프라를 생성하고 관리할 수 있도록 허용하는 서비스이다.

OpenStack 네트워킹 (neutron)은 가상 네트워킹 인프라 (VNI)에 대한 모든 네트워킹 측면과 OpenStack 환경에서 물리 네트워킹 인프라 (PNI)의 접근 레이어 측면에서 관리합니다.

OpenStack 네트워킹은 firewall, load balancer, virtual private network (VPN) 같은 서비스를 포함할수 있으며, 진보한 가상 네트워크 토폴리지를 생성하여 tenant를 활성화 합니다.

 

  • 네트워크 서비스 : 가상 네트워크 인프라의 모든 네트워크 요소와 실제 물리 네트워크 인프라의 접근계층을 모두 관리할 수 있는 서비스. Neutron를 사용해서 로드밸런서, vpn 상위 계층을 사용할 수 있습니다.

 

네트워킹에서는 객체 추상화를 통해 네트워크, 서브넷, 라우터를 제공합니다.

각 추상화는 물리적인 구성에 대응하여 모방하는 기능이 들어있습니다.

네트워크는 서브넷이 포함되어 있고, 다른 서브넷과 네트워크 간의 트레픽은 라이터를 통하여 나눠집니다.

각 라우터는 네트워크에 연결하는 하나의 게이트웨이를 갖고, 많은 인터페이스들이 서브넷에 연결됩니다.

서브넷은 같은 라우터 내에 연결된 다른 서브넷 상의 머신에 액세스 가능합니다.

 

임의로 주어진 네트워킹 셋업은 하나 이상의 외부 네트워크를 갖습니다. 다른 네트워크와 달리, 외부 네트워크는 단지 가상으로 정의된 네트워크를 의미하지 않습니다. 이 대신, OpenStack 설치 외부로 접근 가능한 뷰의 물리, 외부 네트워크에 대한 슬라이스를 나타냅니다. 외부 네트워크의 IP 주소는 바깥 네트워크 상의 임의의 물리적인 객체에서 액세스 가능합니다.

외부 네트워크가 바깥 네트워크로의 뷰를 나타내기에, DHCP가 해당 네트워크에서는 비활성화됩니다.

 

외부 네트워크 뿐만 아니라, 임의의 네트워킹 셋업은 하나 이상의 내부 네트워크를 갖습니다.

이러한 소프트웨어 정의 네트워크들은 VM에 직접 연결됩니다. 임의의 주어진 내부 네트워크, 또는 인터페이스를 통해 비슷한 라우터에 연결된 서브넷 상의 VM에서만 대상 네트워크에 직접 연결된 VM에 액세스 가능합니다.

 

외부 네트워크에서 VM에 접근하거나, 그 반대의 경우에도 네트워크 사이의 라우터가 필요합니다.

각 라우터는 네트워크에 연결된 하나의 게이트웨이와 많은 인터페이스에 연결된 서브넷으로 되어있습니다.

물리적 라우터와 같이 동일한 라우터에 연결된 다른 서브넷의 머신에 접근할 수 있고,

머신에서 라우터의 게이트웨이를 통하여 외부 네트워크에 접근할 수 있습니다.

 

또한, 외부 네트워크를 내부 네트워크와 연결하도록 IP 주소를 할당할 수 있습니다. 하위 네트워크에 어떤 포트가 연결되든 이 연결을 포트라고 합니다. 외부 네트워크 IP 주소를 가상 머신에 포트와 할당할 수 있습니다.

이 방법을 통해 외부 네트워크의 실체가 가상 머신에 접근할 수 있습니다.

 

네트워킹은 시큐리티 그룹을 지원합니다. 시큐리티 그룹은 그룹내에서 방화벽 규칙을 정의하여 관리자를 활성화합니다.

VM은 하나에서 여러 시큐리티 그룹을 가질 수 있으며, 시큐리티 그룹에서 포트를 막거나 열고, 포트 범위, VM에 대한 트래픽 타입 등의 규칙을 적용할 수 있습니다.

 

네트워킹에서 사용하는 각 플러그인은 각자의 개념을 갖고 있습니다. VNI 및 OpenStack 환경을 운영하는데 필수는 아니지만, 이러한 개념에 대한 이해는 네트워킹 셋업을 도와줍니다. 모든 네트워킹 설치는 코어 플러그인과 보안 그룹 플러그인 (또는 단순히 No-Op 보안 그룹 플러그인)을 사용합니다.

부가적으로, Firewall-as-a-Service (FWaaS) 및 Load-Balancer-as-a-Service (LBaaS)이 사용 가능합니다.


neutron 구성요소

 

1) neutron-server : 네트워크 생성, 서브넷 및 라우터 생성 및 삭제. SQL 데이터베이스 관리 등의 요청을 API를 통해 서비스를 합니다. core plguin 과 service plugin 으로 나뉩니다.

 

2) plugin agent : 로컬 가상 스위치 구성을 관리합니다. 네트워크 포트에 대해 네트워크 또는 서브넷을 생성, IP주소를 제공하기 위해 사용됩니다. 

  • L2 agent : 일반적으로 네트워크와 컴퓨트 노드에 설치되며 RPC를 사용해 neutron-server 와 통신합니다. L2 에이전트는 디바이스 추가 또는 삭제되는 상황을 모니터링 하며 도중에 문제가 생길 경우 이를 전달하고 호스트상의 네트워크를 설정하는 역할도 합니다. 또한 linux bridge, ovs(open vswitch), 보안그룹 및 vlan 태깅도 처리할 수 있습니다.
  • L3 agent : 네트워크 노드에 위치하며 neutron-server로 부터 라우터 관리, 라우팅, 플로팅 IP에 대한 메시지를 받아서 관리합니다. 각 내부 네트워크 간에 데이터를 전달하고 내부 네트워크 정보를 받아 외부 네트워크로 전달하는 역할도 수행합니다.
  • DHCP agent : IP 주소 할당에 사용되며, neutron-server로 부터 네트워크 생성 및 삭제에 대한 메시지를 받으면 dnsmasq기능을 사용해DHCP 서버로 사용됩니다. 
  • metadata agent : 인스턴스 내부 클라이언트 metadata 요청을 nova metadata 서비스에 전달하며 일반적으로 네트워크 노드에 설치됩니다. RPC를 통해 neutron-server와 통신하며 IP주소, 호스트 이름, 프로젝트와 같이 인스턴스가 요청한 정보를 제공하는 역할을 합니다.

ml2 plugin이란

 

1) ml2 네트워크 드라이버

: 오픈스택 환경을 사용해 다양한 네트워크 2 레이어 기술을 동시에 사용 가능케 하는 프레임워크

 

2) 플러그인

  • 코어 플러그인 : Neutron API를 구현하며 네트워크, 포트 그리고 서브넷이 표현하는 논리적인 네트워크를 L2 에이전트 및 IP 주소 관리 시스템에 의해 적용되도록 함.
  • 서비스 플러그인 :  라우팅이나 방화벽 그리고 로드밸런서와 같은 네트워크 서비스를 추가

 

3) 드라이버

  • 타입 드라이버 : 네트워크 상태를 유지하고 프로바이더(Provider) 네트워크를 검증하며 프로젝트 네트워크를 할당
  • 메커니즘 드라이버 : 네트워크, 포트 자원 생성, 업데이트 그리고 삭제하는 작업을 지원

 

4) ml2 플러그인 : local, flat, vlan, gre, vxlan 네트워크 타입에 대한 드라이버를 지원함.

  • local : 단일 노드에서 테스트 용으로 사용되며 호스트 간의 연결이 지원되지 않습니다.
  • flat : 모든 인스턴스들은 동일한 네트워크에 위치하며 여러 호스트와 공유될 수 있다. 네트워크를 분리해서 생성할 수 없다.
  • vlan : 같은 스위치에서 실행중인 컴퓨터의 네트워크 트래픽을 분할하기 위해 사용됩니다. 사용자의 필요에 따라 여러 프로바이더 또는 프로젝트 네트워크 생성할 수 있도록 허용하며 vlan을 통해서 가능합니다. 인스턴스 서로 간의 통신이 가능하며, 동일한 layer2에 위치한 방화벽, 로드밸런서와도 통신이 가능합니다.
  • gre : 인스턴스 상호 간에 네트워크 터널을 사용해 사설통신을 가능케 하는 기술. 
  • vxlan : Network overlay 기술 중 하나로,   L2 network 확장된 기술. Mac over IP/UDP

 

728x90
반응형

'Openstack' 카테고리의 다른 글

Openstack Keystone이란? (identity)  (0) 2022.08.08
Openstack Glance란? (image)  (0) 2022.08.08
Openstack 배치 서비스 Placement란?  (0) 2022.08.08
Openstack Nova란? (compute)  (0) 2022.07.29
Openstack이란?  (0) 2022.05.11