openvswitch의 vxlan에서 KVM (libvirt) 호스트의 가상 네트워크 연결
8509 단어 KVMOpenVSwitch리눅스vxlan
다음은 이전의 내 집 네트워크의 대략적인 이미지입니다. (필요한 부분 만).
각 KVM 호스트 내에서 여러 가상 시스템이 여러 VLAN을 사용하여 네트워크를 만들고 있습니다. 이 가상 머신에는 공부(검증)용뿐만 아니라 인터넷에 연결하기 위한 라우터나 Firewall도 포함되어 있습니다. (쓰지 않았지만 논리 구성에서는 네트워크가 분리됩니다.)
이것을 다음과 같이 변경했습니다.
변경이 많은 (공부용) 가상 스위치와 안정적으로 동작시키고 싶은 가상 스위치를 나누어 전자에 대해서는 VXLAN으로 접속합니다.
이제 공부용으로 VLAN을 추가·변경하고 싶을 때는 빨간색 프레임의 가상 스위치를 만지면 좋을 뿐입니다.
이 페이지에서는 이 구성을 변경할 때의 단계를 설명합니다.
환경
KVM Host OS: CentOS 7.4
openvswitch: v2.6.1
libvirt: v3.2.0
절차
모든 작업은 두 KVM 호스트에서 수행됩니다.
가상 스위치 만들기
우선, 현상의 확인.
$ ovs-vsctl show
Bridge "ovsbr0"
・
・
・
Port "ovsbr0"
Interface "ovsbr0"
type: internal
현재 가상 스위치는 ovsbr0 전용입니다.
따라서 vxlan에 ovsvbr1이라는 가상 스위치를 추가하기로 결정합니다.
$ ovs-vsctl add-br ovsbr1
가상 스위치가 생성되었는지 확인합니다.
$ ovs-vsctl show
Bridge "ovsbr0"
・
・
・
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Bridge "ovsbr1"
Port "ovsbr1"
Interface "ovsbr1"
type: internal
향후, 재기동시에는, 기동시에 자동적으로 이 가상 스위치가 작성되도록 network-scripts 파일도 작성한다.
$ vi /etc/sysconfig/network-scripts/ifcfg-ovsbr1
-------------
DEVICE=ovsbr1
NAME=ovsbr1
BOOTPROTO=none
ONBOOT=yes
DEVICETYPE=ovs
IPV6INIT=no
TYPE=OVSBridge
-------------
vxlan용 가상 포트 만들기
작성한 가상 스위치에 vxlan용 가상 포트를 작성합니다.
# (KVM Host1)
$ ovs-vsctl add-port ovsbr1 vxlan0 -- set Interface vxlan0 type=vxlan options:key=flow options:local_ip="KVM_Host1のIPアドレス" options:remote_ip="KVM_Host2のIPアドレス"
# (KVM Host2)
$ ovs-vsctl add-port ovsbr1 vxlan0 -- set Interface vxlan0 type=vxlan options:key=flow options:local_ip="KVM_Host2のIPアドレス" options:remote_ip="KVM_Host1のIPアドレス"
vxlan 포트 "vxlan0"이 추가되었는지 확인합니다.
# (以下のサンプルはKVM Host1のみ。KVM Host2でも同様に確認すること)
$ ovs-vsctl show
Bridge "ovsbr0"
・
・
・
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Bridge "ovsbr1"
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {key=flow, local_ip="KVM_HOST1のIPアドレス", remote_ip="KVM_HOST2のIPアドレス"}
Port "ovsbr1"
Interface "ovsbr1"
type: internal
Firewalld 권한
CentOS 표준의 firewalld가 유효한 경우, VXLAN의 통신(4879/udp)은 허가되어 있지 않기 때문에, 통신을 허가한다.
$ firewall-cmd --add-port=4789/udp --permanent
success
$ firewall-cmd --add-port=4789/udp
success
libvitd의 가상 네트워크 생성
생성하는 가상 네트워크는 생성한 가상 스위치(ovsbr1)와 브리지시킨다.
우선, 작성하고 싶은 가상 네트워크를 정의한 XML 파일을 준비한다.
$ vi ovs-vxlan.xml
--------------------------------------------
<network>
<name>ovs-vxlan</name>
<forward mode='bridge'/>
<bridge name='ovsbr1'/>
<virtualport type='openvswitch'/>
<portgroup name='vlan_10'>
<vlan>
<tag id='10'/>
</vlan>
</portgroup>
<portgroup name='vlan_20'>
<vlan>
<tag id='20'/>
</vlan>
</portgroup>
<portgroup name='vlan_30'>
<vlan>
<tag id='30'/>
</vlan>
</portgroup>
<portgroup name='vlan_40'>
<vlan>
<tag id='40'/>
</vlan>
</portgroup>
<portgroup name='vlan_all'>
<vlan trunk='yes'>
<tag id='10'/>
<tag id='20'/>
<tag id='30'/>
<tag id='40'/>
</vlan>
</portgroup>
</network>
--------------------------------------------
다음으로, 작성한 ML 파일을 바탕으로 가상 네트워크를 정의한다.
$ virsh net-define ovs-vxlan.xml
정의한 가상 네트워크를 활성화합니다.
$ virsh net-start ovs-vxlan
설정은 이것으로 완료.
확인
두 KVM 호스트에서 vxlan을 통해 연결된 가상 스위치의 동일한 VLAN에서 통신할 수 있는지 확인합니다.
또, KVM Host를 재기동해, 기동 후, 자동적으로 같은 설정이 되는 것, vxlan를 통한 통신을 실시할 수 있는 것을 확인한다.
Reference
이 문제에 관하여(openvswitch의 vxlan에서 KVM (libvirt) 호스트의 가상 네트워크 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Kaz_K/items/d9d50ac70c02a09c498f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
모든 작업은 두 KVM 호스트에서 수행됩니다.
가상 스위치 만들기
우선, 현상의 확인.
$ ovs-vsctl show
Bridge "ovsbr0"
・
・
・
Port "ovsbr0"
Interface "ovsbr0"
type: internal
현재 가상 스위치는 ovsbr0 전용입니다.
따라서 vxlan에 ovsvbr1이라는 가상 스위치를 추가하기로 결정합니다.
$ ovs-vsctl add-br ovsbr1
가상 스위치가 생성되었는지 확인합니다.
$ ovs-vsctl show
Bridge "ovsbr0"
・
・
・
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Bridge "ovsbr1"
Port "ovsbr1"
Interface "ovsbr1"
type: internal
향후, 재기동시에는, 기동시에 자동적으로 이 가상 스위치가 작성되도록 network-scripts 파일도 작성한다.
$ vi /etc/sysconfig/network-scripts/ifcfg-ovsbr1
-------------
DEVICE=ovsbr1
NAME=ovsbr1
BOOTPROTO=none
ONBOOT=yes
DEVICETYPE=ovs
IPV6INIT=no
TYPE=OVSBridge
-------------
vxlan용 가상 포트 만들기
작성한 가상 스위치에 vxlan용 가상 포트를 작성합니다.
# (KVM Host1)
$ ovs-vsctl add-port ovsbr1 vxlan0 -- set Interface vxlan0 type=vxlan options:key=flow options:local_ip="KVM_Host1のIPアドレス" options:remote_ip="KVM_Host2のIPアドレス"
# (KVM Host2)
$ ovs-vsctl add-port ovsbr1 vxlan0 -- set Interface vxlan0 type=vxlan options:key=flow options:local_ip="KVM_Host2のIPアドレス" options:remote_ip="KVM_Host1のIPアドレス"
vxlan 포트 "vxlan0"이 추가되었는지 확인합니다.
# (以下のサンプルはKVM Host1のみ。KVM Host2でも同様に確認すること)
$ ovs-vsctl show
Bridge "ovsbr0"
・
・
・
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Bridge "ovsbr1"
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {key=flow, local_ip="KVM_HOST1のIPアドレス", remote_ip="KVM_HOST2のIPアドレス"}
Port "ovsbr1"
Interface "ovsbr1"
type: internal
Firewalld 권한
CentOS 표준의 firewalld가 유효한 경우, VXLAN의 통신(4879/udp)은 허가되어 있지 않기 때문에, 통신을 허가한다.
$ firewall-cmd --add-port=4789/udp --permanent
success
$ firewall-cmd --add-port=4789/udp
success
libvitd의 가상 네트워크 생성
생성하는 가상 네트워크는 생성한 가상 스위치(ovsbr1)와 브리지시킨다.
우선, 작성하고 싶은 가상 네트워크를 정의한 XML 파일을 준비한다.
$ vi ovs-vxlan.xml
--------------------------------------------
<network>
<name>ovs-vxlan</name>
<forward mode='bridge'/>
<bridge name='ovsbr1'/>
<virtualport type='openvswitch'/>
<portgroup name='vlan_10'>
<vlan>
<tag id='10'/>
</vlan>
</portgroup>
<portgroup name='vlan_20'>
<vlan>
<tag id='20'/>
</vlan>
</portgroup>
<portgroup name='vlan_30'>
<vlan>
<tag id='30'/>
</vlan>
</portgroup>
<portgroup name='vlan_40'>
<vlan>
<tag id='40'/>
</vlan>
</portgroup>
<portgroup name='vlan_all'>
<vlan trunk='yes'>
<tag id='10'/>
<tag id='20'/>
<tag id='30'/>
<tag id='40'/>
</vlan>
</portgroup>
</network>
--------------------------------------------
다음으로, 작성한 ML 파일을 바탕으로 가상 네트워크를 정의한다.
$ virsh net-define ovs-vxlan.xml
정의한 가상 네트워크를 활성화합니다.
$ virsh net-start ovs-vxlan
설정은 이것으로 완료.
확인
두 KVM 호스트에서 vxlan을 통해 연결된 가상 스위치의 동일한 VLAN에서 통신할 수 있는지 확인합니다.
또, KVM Host를 재기동해, 기동 후, 자동적으로 같은 설정이 되는 것, vxlan를 통한 통신을 실시할 수 있는 것을 확인한다.
Reference
이 문제에 관하여(openvswitch의 vxlan에서 KVM (libvirt) 호스트의 가상 네트워크 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Kaz_K/items/d9d50ac70c02a09c498f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(openvswitch의 vxlan에서 KVM (libvirt) 호스트의 가상 네트워크 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kaz_K/items/d9d50ac70c02a09c498f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)