项目5(2)-构建跨宿主机的VXLAN虚拟化网络_第1页
项目5(2)-构建跨宿主机的VXLAN虚拟化网络_第2页
项目5(2)-构建跨宿主机的VXLAN虚拟化网络_第3页
项目5(2)-构建跨宿主机的VXLAN虚拟化网络_第4页
项目5(2)-构建跨宿主机的VXLAN虚拟化网络_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目五构建企业级虚拟化网络实现VLAN虚拟化网络内外网互访《云网络技术项目教程》构建跨宿主机的VXLAN虚拟化网络【知识目标】(1)掌握OpenvSwitch虚拟交换机的安装方法。(2)掌握VXLAN网络与VLAN网络的区别。(1)能够安装运维OpenvSwitch虚拟交换机。(2)能够配置跨宿主机的VXLAN(VirtualExtensibleLAN,虚拟扩展局域网)网络。【技能目标】【网络拓扑】任务5-2的网络拓扑如图5-34所示。图5-34任务5-2网络拓扑必备知识1.OpenvSwithch虚拟交换机开源虚拟交换机(OpenvSwitch)是一个强大的虚拟交换机软件,被广泛应用于云计算、虚拟化平台和容器网络等场景中,为软件定义网络提供了重要支持。它的功能比LinuxBridge强大,支持多种协议、多种虚拟化技术。(1)主要功能①多协议支持OpenvSwitch支持多种网络协议,包括标准的以太网协议,可以在不同的网络环境中运行。②多虚拟化技术支持OpenvSwitch可以与多种虚拟化技术集成,可以在不同的虚拟化环境中运行。③灵活的网络拓扑OpenvSwitch支持创建灵活的网络拓扑结构,可以实现复杂的网络架构和服务隔离。④高级网络管理功能OpenvSwitch提供了丰富的高级网络管理功能,如流量限制、流量镜像、端口组等,可以对网络流量进行精细控制。⑤安全性OpenvSwitch支持访问控制列表(ACL)、虚拟私有网络(VPN)、隔离等多种安全功能,增强网络安全性。⑥可扩展性OpenvSwitch可以扩展到大规模网络,支持多台交换机之间的互连和管理。(2)基础配置命令①添加网桥添加虚拟机交换机的的命令为ovs-vsctladd-br虚拟机交换机名称,如添加br-test虚拟交换机的命令是ovs-vsctladd-brbr-test。②查看网桥添加网桥后,使用ovs-vsctlshow可以查看所有的虚拟交换机和端口信息。③增加交换机端口向虚拟交换机上添加接口的命令为ovs-vsctladd-port交换机名称端口名称。如在br-test虚拟交换机上添加ens256端口的命令是ovs-vsctladd-portbr-testens256。④删除交换机端口删除交换机的某个端口的命令为ovs-vsctldel-port交换机名称端口名称。如将br-test交换机上的ens256删除掉的命令是ovs-vsctldel-portbr-testens256。⑤删除虚拟交换机删除网桥的命令为ovs-vsctldel-br交换机名称,如删除br-test交换机的命令是ovs-vsctldel-brbr-test。必备知识2.VXLAN虚拟网络技术VXLAN是一种虚拟局域网技术,用于在大规模云计算环境中扩展二层网络。VXLAN基于UDP(UserDatagramProtocol,用户数据报)封装,在底层网络上创建逻辑隧道,将虚拟机之间的数据流量封装在UDP数据包中进行传输。这样可以实现跨物理网络、跨数据中心的虚拟机通信,以下是VXLAN技术的特点。(1)扩展性VXLAN可以扩展到大规模的网络环境,支持数百万个虚拟局域网标识(VNI)。这使得它适用于云计算环境中的大规模虚拟化部署。(2)隔离性VXLAN使用虚拟网络标识(VNI)来实现虚拟机之间的隔离。每个虚拟机都被分配一个唯一的VNI,不同VNI的虚拟机之间的流量是相互隔离的。必备知识2.VXLAN虚拟网络技术VXLAN是一种虚拟局域网技术,用于在大规模云计算环境中扩展二层网络。VXLAN基于UDP(UserDatagramProtocol,用户数据报)封装,在底层网络上创建逻辑隧道,将虚拟机之间的数据流量封装在UDP数据包中进行传输。这样可以实现跨物理网络、跨数据中心的虚拟机通信,以下是VXLAN技术的特点。(1)扩展性VXLAN可以扩展到大规模的网络环境,支持数百万个虚拟局域网标识(VNI)。这使得它适用于云计算环境中的大规模虚拟化部署。(2)隔离性VXLAN使用虚拟网络标识(VNI)来实现虚拟机之间的隔离。每个虚拟机都被分配一个唯一的VNI,不同VNI的虚拟机之间的流量是相互隔离的。(3)跨物理网络VXLAN可以在底层网络中传输虚拟机的数据流量,无论虚拟机在哪个物理网络上。这使得虚拟机可以在不同的物理网络之间进行迁移,而不会影响其网络连接。(4)多租户支持VXLAN支持多租户网络隔离,使不同租户的虚拟机可以在同一物理基础设施上运行,但彼此之间是隔离的。(5)灵活性VXLAN提供了更大的虚拟局域网标识空间和灵活的网络配置选项。它可以与现有网络设备(如交换机、路由器)兼容,并且可以与其他虚拟化技术(如OpenStack、VMwarevSphere)集成。必备知识3.VXLAN与VLAN相比优势VXLAN技术是为了解决VLAN技术在大规模云计算环境中存在的一些问题,包括以下几个方面。(1)扩展性限制VLAN技术基于IEEE802.1Q标准,使用标签将网络划分为不同的虚拟局域网,该标准只支持4096个VLANID,这在大规模云计算环境中很容易达到限制。因此,VLAN技术在部署大规模虚拟化时存在扩展性限制。(2)跨物理网络的限制VLAN是基于物理网络的隔离技术,它需要在底层网络上配置相应的VLAN。这导致虚拟机的迁移受到物理网络拓扑和VLAN配置的限制。如果虚拟机需要迁移到不同的物理网络上,就需要重新配置VLAN,这增加了管理和操作的复杂性。(3)多租户隔离的限制VLAN技术提供了多租户隔离功能,但VLANID的数量有限,无法满足大规模云计算环境中不同租户的需求。同时,不同租户之间的通信也需要通过路由器进行转发,增加了网络延迟和复杂性。(4)网络扁平化的限制VLAN技术在逻辑上将网络划分为多个虚拟局域网,每个VLAN都需要独立的管理和配置。这导致了网络的分层和复杂性,不利于构建扁平化的网络架构。VXLAN技术通过使用封装技术,在底层网络上创建逻辑隧道,解决了上述问题。它提供了更大的虚拟局域网标识空间(VNI),实现了更大规模的虚拟化部署和租户隔离。同时,VXLAN技术可以在底层物理网络的限制下实现虚拟机的迁移,并支持构建扁平化的网络架构,提高了网络的灵活性和可管理性。必备知识4.VXLAN数据封装VXLAN使用封装技术,在底层网络上创建逻辑隧道,将虚拟机之间的数据流量封装在UDP数据包中进行传输。采用以下几个步骤来封装数据。(1)创建VNI每个虚拟网络都对应一个唯一的虚拟网络标识符(VNI),VNI是一个24位的数字,用于标识虚拟网络。VNI类似于传统网络中的VLANID,用于区分VXLAN段,不同VXLAN段的租户不能直接进行二层通信。一个租户可以有一个或多个VNI,VNI由24比特组成,支持多达16M的租户。(2)封装VXLAN头部使用VXLAN头部来封装原始数据包,VXLAN头部包含了源和目的VTEP(VXLANTunnelEndPoint,VXLAN隧道终点)的IP地址,以及VNI。VXLAN隧道端点VTEP可以对VXLAN报文进行封装和解封装。VXLAN报文中源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。一对VTEP地址就对应着一条VXLAN隧道。在源端封装报文后通过隧道向目的端VTEP发送封装报文,目的端VTEP对接收到的封装报文进行解封装。(3)封装UDP头部在VXLAN头部之上,再封装一个UDP头部。源端口是VTEP的UDP端口号,目的端口是默认的VXLANUDP端口4789。(4)封装IP头部最后,在UDP头部之上,再封装一个IP头部。源IP地址是发送方的VTEPIP地址,目的IP地址是接收方的VTEPIP地址。(5)发送数据包VXLAN数据包通过底层物理网络发往目的VTEP,然后进行解封装,取出原始数据包,并将其传递给目标虚拟机。安装运维OpenvSwitch虚拟交换机1.配置服务器网络环境首先使用CentOS8.ova模板机创建两台名称为node1、node2的服务器,两台服务器网卡及IP地址配置如表5-3所示。表5-3网卡地址及所属网络服务器名称网卡名称

连接到网络网络模式IP地址node1ens160VMnet1仅主机ens192VMnet4自定义网络ens256VMnet8nat模式不配置IP地址node2ens160VMnet1仅主机ens192VMnet4自定义网络其中node1和node2服务器的ens160网卡用于登录管理主机,ens192网卡分别配置了/24和/24,用于VXLAN虚拟化网络的跨主机通信,node1服务器的ens256用于内部网络与外部网络互联,也就是说,node2节点的虚拟机访问外部网络也要通过node1节点的ens256网卡,配置完成后,查看node1服务器的网卡和IP地址配置,如图5-35所示。图5-35任务5-2node1服务器IP地址查看node1服务器的网卡和IP地址配置,如图5-36所示。图5-36任务5-2node2服务器IP地址安装运维OpenvSwitch虚拟交换机2.安装OpenvSwitch虚拟交换机OpenvSwitch虚拟交换机比LinuxBridge虚拟网桥的功能强大,在本任务中,使用在OpenvSwitch虚拟交换机连接虚拟网卡。在node1和node2服务器上,都需要安装OpenvSwitch工具,用于创建OpenvSwitch虚拟交换机。这里以服务器node1服务器为例,服务器node2和node1的安装方法一致。在node1服务器的安装步骤如下。(1)下载OpenvSwitch登录官网/download/,如图5-37所示。图5-36任务5-2node2服务器IP地址(2)源码安装OpenvSwitch①下载解压源码下载最新版openvswitch-3.2.1.tar.gz后,上传到node1和node2服务器的/opt/目录下,使用tar-xfopenvswitch-3.2.1.tar.gz解压软件,命令如下。[root@node1opt]#tar-xfopenvswitch-3.2.1.tar.gz②安装源码编译安装的必要支持组件在进行源码编译安装时,需要一些组件支持,安装如下。[root@node1opt]#yuminstallmakeautoconfautomakelibtoolopensslopenssl-develpython38-y③检查文件,配置安装参数对源码编译安装前,需要检查源文件、设置安装位置等参数,命令如下。[root@node1opt]#cdopenvswitch-3.2.1#进入软件目录[root@node1openvswitch-3.2.1]#./configure#配置安装参数④编译安装使用make命令编译源码文件,使用makeinstall进行安装,命令如下。[root@node1openvswitch-3.2.1]#make&&makeinstall

⑤设置环境变量OpenvSwitch虚拟交换机默认安装路径为/usr/local/share/openvswitch/scripts/。所以在/root/.bashrc文件添加以下配置,将OpenvSwitch的执行目录添加到PATH环境变量中,配置如下。exportPATH=$PATH:/usr/local/share/openvswitch/scripts/然后使用source读取/root/.bashrc文件,命令如下。[root@node1openvswitch-3.2.1]#source/root/.bashrc

⑥启动OpenvSwitch添加了PATH环境变量后,就可以在任何目录执行OpenvSwitch的相关命令了,启动OpenvSwitch管理程序的命令如下。[root@node1~]#ovs-ctlstart

安装运维OpenvSwitch虚拟交换机3.创建OpenvSwitch虚拟网桥根据拓扑图5-34所示,在服务器node1上创建OpenvSwitch虚拟网桥br1和br2、在服务器node2上创建OpenvSwitch虚拟网桥br3和br4,命令如下。[root@node1~]#ovs-vsctladd-brbr1#在服务器node1上创建虚拟交换机br1[root@node1~]#ovs-vsctladd-brbr2#在服务器node1上创建虚拟交换机br2[root@node2~]#ovs-vsctladd-brbr3#在服务器node2上创建虚拟交换机br1[root@node2~]#ovs-vsctladd-brbr4#在服务器node2上创建虚拟交换机br2创建完成后,在服务器node1上查看虚拟网桥,结果如图5-38所示。图5-38任务5-2服务器node1的虚拟网桥从结果中可以看出,在服务器node1上,创建了两个虚拟网桥,分别是br1和br2,在br1上,默认添加了一个接口为br1,类型为internal,是虚拟网桥的回环接口,类似于主机上的lo接口,在br2网桥上同样默认接口为br2。在服务器node2上查看虚拟网桥,如图5-39所示。图5-39任务5-2服务器node1的虚拟网桥从结果中可以看出,在服务器node2上,创建了两个虚拟网桥,分别是br3和br4,在br3上,默认添加了一个接口为br3,在br4网桥上同样默认接口为br4。配置相同VXLAN虚拟机的跨主机互访1.配置跨主机互访(1)在服务器node1上创建名称空间和虚拟网卡[root@node1~]#ipnetnsaddvm1#添加网络名称空间vm1[root@node1~]#ipnetnsaddvm2#添加网络名称空间vm2[root@node1~]#iplinkaddveth1typevethpeernameveth11#添加成对虚拟网卡[root@node1~]#iplinkaddveth2typevethpeernameveth22#添加成对虚拟网卡[root@node1~]#iplinksetveth1netnsvm1#将veth1移动到vm1名称空间[root@node1~]#iplinksetveth2netnsvm2#将veth2移动到vm2名称空间(2)在服务器node2上创建名称空间和虚拟网卡[root@node2~]#ipnetnsaddvm3#添加网络名称空间vm1[root@node2~]#ipnetnsaddvm4#添加网络名称空间vm2[root@node2~]#iplinkaddveth1typevethpeernameveth11#添加成对虚拟网卡[root@node2~]#iplinkaddveth2typevethpeernameveth22#添加成对虚拟网卡[root@node2~]#iplinksetveth1netnsvm3#将veth1移动到vm1名称空间[root@node2~]#iplinksetveth2netnsvm4#将veth2移动到vm2名称空间(3)配置虚拟机IP地址,启动网络设备4台虚拟机的IP地址规划如表5-3所示。

表5-3IP地址及所属VXLAN服务器名称虚拟机名称IP地址所在VXLAN网关node1vm1/24VXLAN1054node1vm2/24VXLAN2054node2vm3/24VXLAN1054node2vm4/24VXLAN2054配置vm1虚拟机的IP地址如下。[root@node1~]#ipnetnsexecvm1bash#进入名称空间vm1[root@node1~]#ipaddradd/24devveth1#配置网卡IP地址[root@node1~]#iplinksetveth1up#启动网卡配置vm2虚拟机的IP地址如下。[root@node1~]#ipnetnsexecvm2bash#进入名称空间vm2[root@node1~]#ipaddradd/24devveth2#配置网卡IP地址[root@node1~]#iplinksetveth2up#启动网卡配置vm3虚拟机的IP地址如下。[root@node1~]#ipnetnsexecvm3bash#进入名称空间vm1[root@node1~]#ipaddradd/24devveth1#配置网卡IP地址[root@node1~]#iplinksetveth1up#启动网卡配置vm4虚拟机的IP地址如下。[root@node1~]#ipnetnsexecvm4bash#进入名称空间vm4[root@node1~]#ipaddradd/24devveth2#配置网卡IP地址[root@node1~]#iplinksetveth2up#启动网卡(4)绑定虚拟网桥和网卡[root@node1~]#ovs-vsctladd-portbr1veth11#绑定虚拟网桥br1和veth11[root@node1~]#ovs-vsctladd-portbr2veth22#绑定虚拟网桥br2和veth22[root@node1~]#iplinksetbr1up#启动网桥br1[root@node1~]#iplinksetbr2up#启动网桥br2[root@node1~]#iplinksetveth11up#启动veth11网卡[root@node1~]#iplinksetveth22up#启动veth22网卡[root@node2~]#ovs-vsctladd-portbr3veth11#绑定虚拟网桥br3和veth11[root@node2~]#ovs-vsctladd-portbr4veth22#绑定虚拟网桥br4和veth22[root@node2~]#iplinksetbr3up#启动虚拟网桥br3[root@node2~]#iplinksetbr4up#启动虚拟网桥br4[root@node2~]#iplinksetveth11up#启动虚拟网卡veth11[root@node2~]#iplinksetveth22up#启动虚拟网卡veth22(5)建立VXLAN10隧道①服务器node1上建立VXLAN10隧道在主机1上添加VXLAN10接口,配置如下。[root@node1~]#ovs-vsctladd-portbr1VXLAN10--setinterfaceVXLAN10type=VXLANoptions:remote_ip=options:key=10以上配置在虚拟网桥上br1上添加了VXLAN10接口,设置接口为VXLAN类型,VXLANid是10,隧道远端的IP地址是。②服务器node2上建立VXLAN10隧道在主机2上添加VXLAN10接口,配置如下。[root@node2~]#ovs-vsctladd-portbr3VXLAN10--setinterfaceVXLAN10type=VXLANoptions:remote_ip=options:key=10以上配置在虚拟网桥上br3上添加了VXLAN10接口,设置接口为VXLAN类型,VXLANid是10,隧道远端的IP地址是。(6)建立VXLAN20隧道在主机1上添加VXLAN20接口,配置如下。[root@node1~]#ovs-vsctladd-portbr2VXLAN20--setinterfaceVXLAN20type=VXLANoptions:remote_ip=options:key=20以上配置在虚拟网桥上br2上添加了VXLAN20接口,设置接口为VXLAN类型,VXLANid是20,隧道远端的IP地址是。②服务器node2上建立VXLAN20隧道在主机2上添加VXLAN20接口,配置如下。[root@node2~]#ovs-vsctladd-portbr4VXLAN20--setinterfaceVXLAN20type=VXLANoptions:remote_ip=options:key=20以上配置在虚拟网桥上br4上添加了VXLAN20接口,设置接口为VXLAN类型,VXLANid是20,隧道远端的IP地址是。配置完成后,在服务器node1上,查看网桥及接口信息,如图5-40所示。从结果中发现,在br1添加了VXLAN10接口,br2添加了VXLAN20接口,与配置一致,在服务器node2上,查看网桥及接口信息,如图5-41所示。图5-41任务5-2服务器node2虚拟网桥br3和br4的VXLAN接口信息从结果中发现,在br3添加了VXLAN10接口,br4添加了VXLAN20接口,与配置一致。图5-40任务5-2服务器node1虚拟网桥br1和br2的VXLAN接口信息配置相同VXLAN虚拟机的跨主机互访2.测试与抓包分析(1)启动VXLAN_sys_4789接口在服务器node1和node2上,会生成创建和管理VXLAN隧道的虚拟网络接口VXLAN_sys_4789,需要在每个主机上都启动这个接口,配置如下。[root@node1~]#iplinksetVXLAN_sys_4789up[root@node2~]#iplinksetVXLAN_sys_4789up(2)测试网络连通性在服务器node1上测试虚拟机vm1与服务器node2上的vm3的连通性,如图5-42所示。在服务器node1上测试虚拟机vm2与服务器node2上的vm4的连通性,如图5-43所示。图5-42任务5-2测试VXLAN10隧道虚拟机网络连通性从结果中发现,属于VXLAN10网络的vm1和vm3、属于VXLAN20网络的vm2和vm4都可以正常通信,VXLAN隧道配置成功了。图5-43任务5-2测试VXLAN20隧道虚拟机网络连通性(3)抓包分析VXLAN数据封装在服务器node2上使用tcpdump工具抓取ens192接口流量,写出数据到文件1.txt下,命令如下。[root@node2~]#tcpdump-nn-t-e-iens192-w1.txt抓取连接虚拟机vm2的veth11接口流量,写入2.txt,命令如下。[root@node2~]#tcpdump-nn-t-e-iveth11-w2.txt然后在服务器node1上删除的arp表项和vm1的的arp表项,命令如下。[root@node1~]#arp-d[root@node1~]#ipnetnsexecvm1arp-d再次测试虚拟机vm1与vm2的网络连通性。[root@node1~]#ipnetnsexecvm1ping-c4测试完成后,使用sz命令将1.txt文件上传到windows桌面,使用wireshark抓包工具打开1.txt,如图5-44所示。从结果中看出,服务器node1要通过ARP协议获取的mac地址,vm1通过ARP协议获取的mac地址,然后vm1再与vm2进行通信,点开第5条icmp协议,查看具体的VXLAN封装,如图5-45所示。图5-44任务5-2虚拟机vm1与虚拟机vm2之间的流量从结果中看出,从vm1到vm2的icmp测试报文源地址是,目标地址是,在经过br1网桥的VXLAN10接口时,在报文头部封装了VNI为10的标识和目标端口为4789的udp头部,最后经过服务器node1的ens192接口()发往服务器node2的ens192接口()。图5-45任务5-2VXLAN10隧道数据封装从结果中看出,从vm1到vm2的icmp测试报文源地址是,目标地址是,在经过br1网桥的VXLAN10接口时,在报文头部封装了VNI为10的标识和目标端口为4789的udp头部,最后经过服务器node1的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论