open-vswitch: GRE隧道网络实验

1.宿主机配置网络:

        internel/data01 分别是管理网络/传输网络交换机 ;  eth1 此处对应管理网络网卡 ens192 的 vlan为610的打过vlan的NIC设备; eth0 此处对应传输网络网卡 ens160 的 NIC设备.   

            硬件配置 :

             server eth1-10.160.0.118  C8M(8*1024M)        nics: eth1:internal/eth0:data01

             client eth1-10.160.0.119  C8M(8*1024M)        nics: eth1:internal/eth0:data01

            网络配置:

             server:       ens192.610   internel    10.160.0.118  (管理网络)             

                              ens160          data        192.168.100.4 (gre传输网络)

              client:       ens192.610   internel    10.160.0.119  (管理网络)      

                               ens160       data        192.168.100.5 (gre传输网络)                 
  
2.配置计算节点虚拟化环境 与 管理工具.
  安装:
  (1)qemu
  (2)kvm

[root@server ~]# yum install -y qemu-kvm-tools.x86_64 qemu-kvm-common.x86_64 \ 
            qemu-kvm.x86_64 qemu-img.x86_64 qemu-common.x86_64 qemu.x86_64 \ 
            libvirt-daemon-driver-qemu.x86_64 libvirt-daemon-kvm.x86_64

 
  (3)virsh 

[root@server ~]# yum install -y fence-agents-virsh.x86_64


  (4)virt-manager 

[root@server ~]# yum install -y virt-manager


  (5)open-vswitch 

[root@server ~]# yum install -y python-openvswitch.noarch openvswitch-test.noarch \
            openvswitch-devel.x86_64 openvswitch-controller.x86_64 openvswitch.x86_64 \ 
            && systemctl enable openvswitch && systemctl start openvswitch &&  \ 
            systemctl status openvswitch

  (6)libvirt 

[root@server ~]# yum install -y libvirt-daemon-kvm.x86_64 libvirt.x86_64  \ 
           libvirt-python.x86_64 libvirt-devel.x86_64 libvirt-daemon.x86_64  \
           && systemctl enable libvirtd &&systemctl start libvirtd && \ 
           systemctl status libvirtd


  (7)virt-install

[root@server ~]# yum install -y virt-install

  (8)virt-viwer 

[root@server ~]# yum install -y virt-viewer


3.为两个计算节点添加ovs网桥,创建 gre隧道并互联.

[root@server ~]# ovs-vsctl add-br br118
[root@server ~]# ovs-vsctl add-port br118 gre118 -- set interface  gre118 type=gre \
                 options:remote_ip=192.168.100.5

[root@client ~]# ovs-vsctl add-br br119
[root@client ~]# ovs-vsctl add-port br119 gre119 -- set interface  gre119 type=gre \ 
                 options:remote_ip=192.168.100.4


4.为两台宿主机拷贝客户机模板,启动虚拟机,配置ip.
  #拷贝模板

[root@server ~]# mkdir -p /var/lib/guests

[root@client ~]# mkdir -p /var/lib/guests

[root@controller images]# scp centos7.qcow2 [email protected]:/var/lib/guests/guest-118-01.qcow2

[root@controller images]# scp centos7.qcow2 [email protected]:/var/lib/guests/guest-119-01.qcow2

[root@server guests]# cp guest-118-01.qcow2 guest-118-02.qcow2

[root@client guests]# cp guest-119-01.qcow2 guest-119-02.qcow2


  #创建虚拟机 

[root@server guests]# virt-install --name guest118-01 --ram 2048  --memory 2048 \ 
                      --vcpus 2  --boot hd --disk path=/var/lib/guests/guest-118-01.qcow2 \ 
                      --network network=default --graphics vnc,listen=0.0.0.0,port=5906 \
                      --os-variant rhel6

[root@server guests]# virt-install --name guest118-02 --ram 2048 --memory 2048 \ 
                      --vcpus 2  --boot hd --disk path=/var/lib/guests/guest-118-02.qcow2 \
                      --network network=default --graphics vnc,listen=0.0.0.0,port=5907 \ 
                      --os-variant rhel6

  [root@client guests]# virt-install --name guest119-01 --ram 2048 --memory 2048  \ 
                       --vcpus 2  --boot hd --disk path=/var/lib/guests/guest-119-01.qcow2 \ 
                       --network network=default --graphics vnc,listen=0.0.0.0,port=5906 \ 
                       --os-variant rhel6

  [root@client guests]# virt-install --name guest119-02 --ram 2048 --memory 2048 \ 
                       --vcpus 2  --boot hd --disk path=/var/lib/guests/guest-119-02.qcow2 \
                       --network network=default  --graphics vnc,listen=0.0.0.0,port=5907  \
                       --os-variant rhel6

  #防火墙开启必要的端口 5906,5907 

[root@server ~] iptables -I INPUT -p tcp --dport 5906:5907 -j ACCEPT
[root@client ~] iptables -I INPUT -p tcp --dport 5906:5907 -j ACCEPT


  #将vm连接到ovs118,ovs119上(虚拟机原来是连接到宿主机默认网络 default 上的).
  #另一种方法是:
  # a.virsh 添加网卡到虚拟机,
  # b.ovs-vsctl 添加端口以连接虚拟机到ovs(br118,br119)
  # c.删除原 连接到default网络的网卡. 

[root@server guests]# virsh dumpxml guest118-01 > guest-118-01.xml

  编辑 guest-118-01.xml 的 <interface>标签,按如下规范将vm连接到ovs上: 

<interface type='bridge'>
      <mac address='52:54:00:ef:b3:80'/>
      <source bridge='br118'/>
      <virtualport type='openvswitch'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <driver name='qemu'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

  

[root@server guests]# virsh destroy guest118-01 && virsh undefine guest118-01 && \ 
        virsh define guest-118-01.xml && virsh start guest118-01

  其他3guest如上操作. 

  然后再次导出配置文件:
 

   <interface type='bridge'>
      <mac address='52:54:00:ef:b3:80'/>
      <source bridge='br118'/>
      <virtualport type='openvswitch'>
        <parameters interfaceid='974da66f-bfd2-4396-bb15-01ef12a2b994'/>
      </virtualport>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <driver name='qemu'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

  #给两台宿主机内的虚拟机配置同网络的ip(略)

  10.160.0.135/16   guest118-01

  10.160.0.136/16   guest119-01

  10.160.0.137/16   guest118-02

  10.160.0.138/16   guest119-02 

  如后图所示.

5.查看两台宿主的内ovs端口信息.

 [root@server ~]# ovs-vsctl show
 cbd85a9e-3660-40a7-93d5-ff59df681e9e
    Bridge "br118"
        Port "br118"
            Interface "br118"
                type: internal
        Port "vnet0"
            tag: 610
            Interface "vnet0"
        Port "vnet1"
            tag: 610
            Interface "vnet1"
        Port gre
            Interface gre
                type: gre
                options: {remote_ip="192.168.100.5"}
    ovs_version: "2.3.1"  
  
  [root@client ~]# ovs-vsctl show
  a30829a9-6054-4876-a77f-7b2f6cd89e60
    Bridge "br119"
        Port "vnet1"
            tag: 610
            Interface "vnet1"
        Port "vnet0"
            tag: 610
            Interface "vnet0"
        Port "br119"
            Interface "br119"
                type: internal
        Port gre
            Interface gre
                type: gre
                options: {remote_ip="192.168.100.4"}
    ovs_version: "2.3.1"

  看到 guest 已经连接到ovs,且gre隧道已经建立.

6.在客户机中使用ping测试.

open-vswitch: GRE隧道网络实验_第1张图片

open-vswitch: GRE隧道网络实验_第2张图片


了解更多openvswitch: http://openvswitch.org/support/config-cookbooks/port-tunneling/

  































你可能感兴趣的:(kvm,sdn,openvswitch,gre,隧道)