티스토리 뷰

OpenStack

OVN Network Creating Process

나리 짱!!! naleejang 2020. 7. 27. 10:20

안녕하세요~!! 지난 포스팅에서 OVN이 뭔지, OVN이 어떤 컴포넌트로 구성되어 있는지, 그리고, OVN 환경으로 오픈스택을 구성하면 어떤 컴포넌트들이 설치가 되는지를 알아봤습니다. 이번 포스팅에서는 OVN을 이용해 네트워크를 생성하면 어떤일 발생할까? 네트워크는 어떤 순서와 과정으로 생성될까?에 대해 알아보고자 합니다.

 

RHOSP16(Train) OVN 기반에서 네트워크 생성 과정

오픈스택을 OVN 네트워크로 구성하면 아래와 같이 컨트롤러 노드에는 ovn-northd, ovn-controller, ovsdb-server, ovs-vswitchd가 설치됩니다. 그리고, 컴퓨트 노드에는 ovn-metadata-agent, ovn-controller, ovsdb-server, ovs-vswitchd가 설치됩니다. 그리고, 물리 네트워크 인터페이스와 연결되어 Open Vswitch 전용 스위치인 br-ctlplane과 br-ex가 각각의 노드에 생성되고, 내부 통신을 위한 br-int가 생성됩니다.   

 

 

이때 우리는 인스턴스에 IP를 할당하기 위해 프로젝트 전용 네트워크를 하나 생성하는데, 그게 바로 테넌트 네트워크입니다. 테넌트 네트워크가 생성되면 컴퓨트 노드의 br-int 브리지에 tab 디바이스가 하나 생성됩니다.

 

그리고, 외부 통신을 하기 위해서 라우터를 생성하는 순간 br-int 브리지와 br-ex 브리지가 서로 연결이 됩니다. 그것도 컴퓨트 노드에 있는 네트워크 브리지만 연결이 되죠~!! 사실 OVS 기반으로 설치했을 때에는 모든 네트워크가 전부 컨트롤러 노드에 생성이 되었었습니다. 그런데, OVN 환경으로 오면서 모든 네트워크가 컴퓨트 노드에 생성이 됩니다.

 

그럼, 이제 VM을 한번 만들어 볼까요! VM을 만드는 순간 VM에 IP를 할당해 줄 DHCP Agent가 있는 ovn-meta로 시작하는 가상 네트워크가 생성이 되는데, 이는 컨테이너로 실행되며, 컴퓨트 노드에서 ip netns show 명령어를 통해 확인할 수 있습니다. 그리고, 해당 네트워크는 VM에 IP를 할당해 주는 역할을 합니다. 

 

그럼, 사용자가 VM에 접속은 어떻게 하는걸까요? 컴퓨트 노드를 자세히 들여다보면 VM은 10.10.10.11이라는 IP를 가지고 있습니다. 물론 이건 ovn-meta라고 하는 가상 네트워크에서 할당을 받은것이구요~!! 라우터를 통해 192.168.122.0/24 번 대역을 IP를 다시 할당받아 가지고 있죠~!! 그러면 사용자는 해당 IP 대역을 통해 접속을 하게 되는데, 아래 그림처럼, 물리 스위치를 통해 물리 네트워크 인터페이스를 지나 br-ex라는 브리지와 br-int 브리지를 거쳐 tap 네트워크와 ovn-meta네트워크를 타고 VM에 도착하게 됩니다. VM에 도착하기 위해 6군데의 물리 및 가상 네트워크 인터페이스를 거쳐야만 하는것이지요~!! 그림으로 보면 네트워크 속도가 정말 느려야만 할 것 같은데, 실제로 사용을 해보면 생각했던것보다 그리 느리지는 않습니다.

이전 OVS/ML2 기반에서는 모든 네트워크가 컨트롤러에 생성되어 병목현상이 발생하고, 컨트롤러 노드에 문제가 발생하면 모든 컴퓨트 노드에 영향을 주었는데, OVN으로 오면서 모든 가상 네트워크가 컴퓨트 노드에 직접 생성이 되면서 특정 컴퓨트 노드에 문제가 발생한다해도 해당 노드만 문제가 있지 다른 컴퓨트 노드에는 영향을 주지 않습니다. 

 

그리고, 이 모든 네트워크 정보는 컨트롤러 노드에 띄워져 있는 ovn-northd 컨테이너에서 실행중인 ovn-northd 데이터베이스에 존재하며, 네트워크 제어 역시 컨트롤러 노드에 의해서 제어가 되니 네트워크 장치와 컨트롤러가 분리된 SDN 환경이라고 볼 수 있는 것입니다.

 

다음 포스팅에서는 실제로 컨트롤러 노드와 컴퓨트 노드에 네트워크가 어떻게 생성되는지 정말 그림처럼 이렇게 생성이 되는지 명령어를 통해 살펴보도록 하겠습니다. 그럼, 다음에 다시 만나요~!! 안녕~~~~

'OpenStack' 카테고리의 다른 글

OVN Network Creating Process  (0) 2020.07.27
SDN and OVN(Open Virtual Network)  (0) 2020.07.22
SDN - Software Defined Network  (0) 2020.07.17
보안 그리고 암호화 알고리즘  (1) 2019.10.04
How to operate containerized OpenStack  (1) 2019.10.02
Http 보안 및 용어 정리  (3) 2019.09.30
댓글
댓글쓰기 폼