Stein 오픈스택 클라우드 분석(2) - 호스트 네트워크 인터페이스 아키텍처
blog post
앞서 포스트에서는 간단하게 사용자와 프로젝트를 생성하고 분석해 보았습니다. 다음으로 네트워크 및 VM 생성단계로 넘어가기에 앞서, 오픈스택 시스템의 기본 네트워크 인터페이스 구조를 우선 살펴보도록 하겠습니다.
Neutron 네트워크 서비스 포스팅을 통해 네트워크 서비스가 정상적으로 구축되었다는 전제 하에 분석하도록 하겠습니다. 본 구성 단계는 어떠한 네트워크나 VM도 생성하지 않은 초기 상태에서 시작합니다.
네트워크 서비스 구축 과정에서 컴퓨트 노드에서도 Neutron 서비스를 구축했습니다. 우선 컴퓨트 노드에서 인터페이스가 어떻게 구성되어 있는지 살펴보겠습니다.
[root@Compute0 ~]# ovs-vsctl show
7d7c87c8-560d-4138-8742-8f745aea968b
Manager "ptcp:6640:127.0.0.1"
is_connected: true
Bridge br-int
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Bridge br-tun
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port br-tun
Interface br-tun
type: internal
Port "vxlan-0a00001b"
Interface "vxlan-0a00001b"
type: vxlan
options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="10.0.0.25", out_key=flow, remote_ip="10.0.0.27"}
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
ovs_version: "2.11.0"
컴퓨트 노드에서 브릿지 구조를 살펴보면, 가장 눈에 띄는 것은 두 개의 브릿지 (br-int, br-tun)가 생성된 것입니다. 또한 두 브릿지는 패치 인터페이스(patch-tun, patch-int)로 서로 연결(피어 관계)되어 있는것도 확인할 수 있습니다. 각 브릿지는 사실 역할이 있습니다. 일단 두 개의 브릿지가 생성되었다는 것만 알고 넘어가겟습니다.
또한 br-tun에는 vxlan 타입의 "vxlan-0a00001b" 인터페이스가 생성되어 바인딩 되어 있는 것을 확인할 수 있습니다. 옵션 값 중에 원격지(remote_ip)를 살펴보니 10.0.0.27, 즉 네트워크 노드와 연결된 것을 확인할 수 있습니다. 이 부분을 통해 추후 VM이 생성되면 이 vxlan 인터페이스를 통해 트래픽이 네트워크 노드로 흐를 것이라는 걸 예상해 볼 수 있습니다.
컴퓨트 노드는 생각보다 인터페이스 구성은 간단합니다. 컴퓨트 노드의 인터페이스 구성을 아키텍처로 살펴보면 아래와 같습니다.
네트워크 노드에서의 인터페이스 구성은 컴퓨트 노드 보다 좀 더 복잡해집니다. 우선 전체 인터페이스 구성을 살펴보면 아래와 같습니다.
[root@Network ~]# ovs-vsctl show
25bab28b-f4e3-4cc1-8369-1267ca847c93
Manager "ptcp:6640:127.0.0.1"
is_connected: true
Bridge br-int
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port "int-br-eth1"
Interface "int-br-eth1"
type: patch
options: {peer="phy-br-eth1"}
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port br-int
Interface br-int
type: internal
Bridge br-tun
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port br-tun
Interface br-tun
type: internal
Port "vxlan-0a000019"
Interface "vxlan-0a000019"
type: vxlan
options: {df_default="true", egress_pkt_mark="0", in_key=flow, local_ip="10.0.0.27", out_key=flow, remote_ip="10.0.0.25"}
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Bridge "br-eth1"
Controller "tcp:127.0.0.1:6633"
is_connected: true
fail_mode: secure
Port "phy-br-eth1"
Interface "phy-br-eth1"
type: patch
options: {peer="int-br-eth1"}
Port "br-eth1"
Interface "br-eth1"
type: internal
Port "eno16777736"
Interface "eno16777736"
ovs_version: "2.11.0"
네트워크 노드에서도 역시 컴퓨트 노드에서 보았던 두 개의 브릿지(br-tun, br-int)가 보입니다. 추가로 우리가 앞서 테넌트 환경 구축 포스트를 통해 생성했던 브릿지 인터페이스 "br-eth1"도 있습니다.
또한 컴퓨트 노드와 마찬가지로 네트워크 노드에서도 br-tun과 br-int 간의 연결을 위한 패치 인터페이스(patch-tun, patch-int)를 확인할 수 있습니다. 또 컴퓨트 노드와의 터널링을 위한 vxlan 인터페이스(vxlan-0a000019)도 역시 확인할 수 있습니다.
한 가지 다른 점이라면, br-int 브릿지에 "int-br-eth1" 인터페이스가 보이는데, 타입을 보니 다른 인터페이스와 패치 인터페이스로 연결(피어 관계) 되어 있음을 볼 수 있습니다. 대상은 "phy-br-eth1"인데, "br-eth1" 브릿지에 바인딩 된 것을 볼 수 있습니다. 감이 오시나요? 추후에 인스턴스(VM)의 트래픽이 외부망으로 나가기 위해 이 패치 인터페이스를 활용한다라는 걸 예상해 볼 수 있습니다. 왜냐하면 우리가 "br-eth1"에 물리 NIC(eno1677736) 포트를 바인딩 해 뒀기 때문입니다.
여기까지 전체 구조를 아키텍처로 살펴보면 아래 그림과 같습니다.
여기까지 오픈스택 초기 네트워크 인터페이스 아키텍처를 살펴보았습니다. 아직은 인스턴스가 없는 상태이기 때문에 별 다른 트래픽이 없으므로 트래픽 분석까지는 진행하지 않았습니다. 다음 포스팅에서는 실제로 네트워크를 구성해보고 VM을 올리면서 실제로 어떻게 인터페이스가 생성되는지 살펴보도록 하겠습니다.
'Cloud > Private Cloud Analysis' 카테고리의 다른 글
Stein 오픈스택 클라우드 분석(7) - 가상머신의 이더넷 인터페이스, mac & ip 주소 할당 과정 (0) | 2020.02.18 |
---|---|
Stein 오픈스택 클라우드 분석(6) - 오픈스택 시스템 내부에서 이미지와 가상머신을 생성하고 관리하는 방법 (0) | 2020.02.14 |
Stein 오픈스택 클라우드 분석(5) - 가상머신 이미지 업로드부터 인스턴스 생성까지 (0) | 2020.02.14 |
Stein 오픈스택 클라우드 분석(4) - 호스트 시스템에서의 가상 네트워크 구조 분석 (0) | 2020.02.13 |
Stein 오픈스택 클라우드 분석(3) - 외부&내부 네트워크, 서브넷, 라우터 생성 (0) | 2020.02.12 |
Stein 오픈스택 클라우드 분석(1) - 대시보드 구성 및 사용자, 프로젝트 생성 (0) | 2020.02.11 |
[오픈스택 클라우드 개념] 컴퓨트 서비스(Nova) (0) | 2020.01.31 |
[오픈스택 클라우드 개념] 이미지 서비스(Glance)와 지원 이미지 포맷 (0) | 2020.01.29 |
[오픈스택 클라우드 개념] 인증 서비스(Keystone) (0) | 2020.01.28 |
[neutron] cli로 맥주소, ip가 지정된 포트 생성, 수정, 제거 (0) | 2017.02.28 |