CentOS 7 에서 Open vSwitch + VXLAN 실천
33906 단어 클 라 우 드 컴 퓨 팅OpenvSwitchlinux
1. 오픈 vSwitch 설치
[root@rhel-kvm-ovs-01 ~]# yum -y install openssl-devel kernel-devel
[root@rhel-kvm-ovs-01 ~]# yum groupinstall "Development Tools"
[root@rhel-kvm-ovs-01 ~]# adduser ovswitch
[root@rhel-kvm-ovs-01 ~]# su - ovswitch
openvswitch-2.5.1.tar.gz, /home/ovswitch
[ovswitch@rhel-kvm-ovs-01 ~]$ ls
openvswitch-2.5.1.tar.gz
[ovswitch@rhel-kvm-ovs-01 ~]$ tar xfz openvswitch-2.5.1.tar.gz
[ovswitch@rhel-kvm-ovs-01 ~]$ mkdir -p ~/rpmbuild/SOURCES
[ovswitch@rhel-kvm-ovs-01 ~]$ cp openvswitch-2.5.1.tar.gz ~/rpmbuild/SOURCES
Nicira openvswitch-kmod , spec
[ovswitch@rhel-kvm-ovs-01 ~]$ sed 's/openvswitch-kmod, //g' openvswitch-2.5.1/rhel/openvswitch.spec > openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec
[ovswitch@rhel-kvm-ovs-01 ~]$ rpmbuild -bb --without check ~/openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec
[ovswitch@rhel-kvm-ovs-01 ~]$ exit
[root@rhel-kvm-ovs-01 ~]# yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.5.1-1.x86_64.rpm
, :
[root@rhel-kvm-ovs-01 ~]# rpm -qf `which ovs-vsctl`
openvswitch-2.5.1-1.x86_64
시작 서비스:
[root@rhel-kvm-ovs-01 ~]# systemctl start openvswitch.service
[root@rhel-kvm-ovs-01 ~]# systemctl enable openvswitch.service
결과 보기:
[root@rhel-kvm-ovs-01 ~]# systemctl -l status openvswitch.service
2. 오픈 vSwitch 설정
[root@rhel-kvm-ovs-01 ~]# ovs-vsctl add-br ovsbr0
NetworkManager 제거
[root@rhel-kvm-ovs-01 ~]# systemctl stop NetworkManager.service
[root@rhel-kvm-ovs-01 ~]# systemctl disable NetworkManager.service
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
network. services 를 사용 하여 / etc / sysconfig / network - scripts / 아래 설정 파일 / etc / sysconfig / network - scripts / ifcfg - mgmt 0 을 수정 합 니 다.
DEVICE=mgmt0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSIntPort
OVS_BRIDGE=ovsbr0
USERCTL=no
BOOTPROTO=none
HOTPLUG=no
IPADDR0=192.168.57.2
PREFIX0=24
/etc/sysconfig/network-scripts/ifcfg-ovsbr0
DEVICE=ovsbr0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
HOTPLUG=no
USERCTL=no
/etc/sysconfig/network-scripts/ifcfg-eno16777984
......
IPADDR=192.168.128.61
......
서비스 다시 시작
[root@rhel-kvm-ovs-01 ~]# systemctl restart network.service
3. 가상 컴퓨터 시작
먼저 virt - manager 를 통 해 가상 컴퓨터 kvm 01, kvm 02 를 만 들 고 네트워크 를 다음 과 같이 설정 합 니 다
수 동 으로 가상 컴퓨터 IP 를 설정 하 는 것 은 각각 192.168.57.11, 192.168.57.12 이다.
4. ovsbr 0 에 인터페이스 vxlan 0 node 1 설정: remoteip node 2 의 ip: 92.168.128.62
[root@rhel-kvm-ovs-01 ~]# ovs-vsctl add-port ovsbr0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=192.168.128.62
[root@rhel-kvm-ovs-01 ~]# ovs-vsctl show
8e3f7c3f-3d0d-4068-92d0-c0bd0c6651ce
Bridge "ovsbr0"
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {remote_ip="192.168.128.62"}
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Port "mgmt0"
Interface "mgmt0"
type: internal
ovs_version: "2.5.1"
ip addr
[root@rhel-kvm-ovs-01 ~]# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b7:2d:7f brd ff:ff:ff:ff:ff:ff
inet 192.168.128.61/24 brd 192.168.128.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feb7:2d7f/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: mtu 1500 qdisc noqueue state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: mtu 1500 qdisc pfifo_fast state DOWN qlen 500
link/ether 52:54:00:fc:80:90 brd ff:ff:ff:ff:ff:ff
5: ovs-system: mtu 1500 qdisc noop state DOWN
link/ether ea:e8:f2:40:1f:55 brd ff:ff:ff:ff:ff:ff
6: ovsbr0: mtu 1500 qdisc noqueue state UNKNOWN
link/ether a6:ba:78:70:5b:4e brd ff:ff:ff:ff:ff:ff
inet6 fe80::a4ba:78ff:fe70:5b4e/64 scope link
valid_lft forever preferred_lft forever
7: mgmt0: mtu 1500 qdisc noqueue state UNKNOWN
link/ether b2:b8:67:7d:58:41 brd ff:ff:ff:ff:ff:ff
inet 192.168.57.2/24 brd 192.168.57.255 scope global mgmt0
valid_lft forever preferred_lft forever
inet6 fe80::b0b8:67ff:fe7d:5841/64 scope link
valid_lft forever preferred_lft forever
10: macvtap0@ovsbr0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
link/ether 52:54:00:b5:99:36 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:feb5:9936/64 scope link
valid_lft forever preferred_lft forever
12: macvtap1@ovsbr0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
link/ether 52:54:00:8f:83:bc brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe8f:83bc/64 scope link
valid_lft forever preferred_lft forever
그 속macvtap0@ovsbr0이러한 가상 컴퓨터 네트워크 카드 모드 는 참고 하 시기 바 랍 니 다.http://blog.csdn.net/dylloveyou/article/details/53283598
5. 테스트
이상 설정 은 node 1 의 작업 과정 만 보 여 줍 니 다. node 2 는 같 습 니 다.
node 1 내부 vm 간 통신 kvm 01 ping kvm 02:
node 1 vm 와 node 2 vm 통신 node 1 의 kvm 01 ping node 2 의 kvm 02: ping 이 방화벽 을 찾 지 못 하 는 원인 으로 방화벽 을 닫 습 니 다.
systemctl stop firewalld systemctl disable firewalld
재 ping
ovsbr 0 위 에서 잡 은 가방
[root@rhel-kvm-ovs-01 ~]# tcpdump -i ovsbr0
tcpdump: WARNING: ovsbr0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ovsbr0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:24:30.924042 IP 192.168.57.102 > 192.168.57.11: ICMP echo request, id 27905, seq 130, length 64
16:24:30.926714 IP 192.168.57.11 > 192.168.57.102: ICMP echo reply, id 27905, seq 130, length 64
16:24:31.925557 IP 192.168.57.102 > 192.168.57.11: ICMP echo request, id 27905, seq 131, length 64
16:24:31.926446 IP 192.168.57.11 > 192.168.57.102: ICMP echo reply, id 27905, seq 131, length 64
6. 가상 컴퓨터 의 다른 네트워크 설정 모드
새로 만 든 가상 컴퓨터, 기본 네트워크 설정 은 다음 과 같 습 니 다.
[root@rhel-kvm-ovs-01 ~]# cd /etc/libvirt/qemu/networks
[root@rhel-kvm-ovs-01 networks]# cat default.xml
<network>
<name>defaultname>
<uuid>1bd83fc4-bced-4d3b-9ac1-71754d1ea851uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:80:1a:b4'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
dhcp>
ip>
network>
dhcp 를 통 해 192.168.12.0 / 24 의 IP 를 분배 하고 nat 모드 로 외부 네트워크 를 방문 합 니 다. 우 리 는 kvm 03 가상 기 를 시작 합 니 다. 네트워크 선택 default 는 ip 192.168.12.229 를 분 배 했 고 nat 모드 를 통 해 외부 네트워크 를 방문 할 수 있 습 니 다.
우 리 는 이미 ovsbr 0 을 만 들 었 습 니 다. 이 다 리 를 사용 하려 면 두 가지 실현 방식 이 있 습 니 다. 1) 본 고의 설정 방식 2) 새로운 네트워크 를 만 듭 니 다. 다음은 구체 적 으로 2.
default 를 본 떠 새로운 네트워크 를 만 들 고 ovsbr 0 을 포함 시 키 며 ovsnet. xml 를 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
<network>
<name>ovsbr0name>
<forward mode='bridge'/>
<bridge name='ovsbr0'/>
<virtualport type='openvswitch'/>
network>
다음 명령 을 사용 하여 libvirt 에 네트워크 를 만 들 고 네트워크 를 시작 하 며 자동 시작 을 설정 합 니 다.
virsh net-define ovsnet.xml
virsh net-start ovsbr0
virsh net-autostart ovsbr0
이렇게 하면 kvm 03 의 네트워크 를 default 에서 ovsbr 0 으로 바 꿀 수 있다.
kvm 03 을 다시 시작 합 니 다. 보 이 는 네트워크 는 다음 과 같 습 니 다
dhcp 가 설정 되 어 있 지 않 기 때문에 kvm 03 의 ip (192.168.57.13, kvm 01, kvm 02 의 한 네트워크) 을 수 동 으로 설정 해 야 합 니 다.
이 동시에 kvm 01 kvm 02 와 node 2 의 vm 도 이러한 네트워크 모드 로 설정 되 었 다.
ping kvm01
ping node 2 위의 kvm 02 캡 처 정보
[root@rhel-kvm-ovs-01 ~]# tcpdump -i vnet2
tcpdump: WARNING: vnet2: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vnet2, link-type EN10MB (Ethernet), capture size 65535 bytes
16:52:46.772500 IP 192.168.57.13 > 192.168.57.102: ICMP echo request, id 25601, seq 0, length 64
16:52:46.773750 IP 192.168.57.102 > 192.168.57.13: ICMP echo reply, id 25601, seq 0, length 64
16:52:47.774675 IP 192.168.57.13 > 192.168.57.102: ICMP echo request, id 25601, seq 1, length 64
16:52:47.775324 IP 192.168.57.102 > 192.168.57.13: ICMP echo reply, id 25601, seq 1, length 64
ovs - 시작 하 는 실험 환경 설명도 와 대응
[root@rhel-kvm-ovs-01 ~]# ovs-vsctl show
8e3f7c3f-3d0d-4068-92d0-c0bd0c6651ce
Bridge "ovsbr0"
Port "vnet0"
Interface "vnet0"
Port "vnet1"
Interface "vnet1"
Port "mgmt0"
Interface "mgmt0"
type: internal
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {remote_ip="192.168.128.62"}
Port "ovsbr0"
Interface "ovsbr0"
type: internal
Port "vnet2"
Interface "vnet2"
ovs_version: "2.5.1"
이전 디 스 플레이 와 달리 이번 에는 vnet * port 가 많아 졌 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nginx 의 설치, 업그레이드 및 간단 한 사용Nginx 설치 – prefix = / usr / local / nginx 지정 설치 경로 – user = nginx 지정 사용자 – group = nginx 지정 기본 그룹 – with - httpssl_modul...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.