推荐设备MORE

临西企业官网建设—广州企业

临西企业官网建设—广州企业

行业新闻

OpenStack Neutron互联网剖析

日期:2021-03-08
我要分享

OpenStack Neutron互联网剖析


OpenStack Neutron互联网剖析 实际上,姑且抛开实际细节不谈,从全局性和宏观经济上了解Neutron的全部运作步骤,也是不繁杂、抽象性的。

本文关键详细介绍了怎样剖析Neutron下的VM互联网数据信息流,并融合这些方式怎样去开展互联网剖析和常见故障处理。限于篇数、自然环境,这里仍未提及Flow Table、br-tun等。大家将在下一次碰面。

总所周知,OpenStack Neutron的高宽比繁杂性和抽象性性,让诸多学习培训和应用者望而却步,不知道所云。虽然这般,但大家不可以挑选躲避。

实际上,姑且抛开实际细节不谈,从全局性和宏观经济上了解Neutron的全部运作步骤,也是不繁杂、抽象性的。

不过便是将传统式的物理学硬件配置机器设备(如网线、网卡、服务器、互换机、路由器器等)依照TCP/IP的4个层级构架(数据信息路由协议层、互联网层、传送层、运用层),根据手机软件程序编写的方法,予以所有虚似化、手机软件化和抽象性化。

其虚似完成的1层到3层(TCP/IP)全部步骤是:

1层的服务器及其VM(由Linux Kernel建立的qbr、tap/tun、veth、iptables这些机器设备各自完成相应作用) 》 2层的互联网机器设备(由OpenvSwitch、dnsmasq建立的qvo、br-int、br-tun、br-ex、qrouter、qdhcp等机器设备各自完成相应作用) 》 再到,3层的传送程序流程(由patch-int/patch-tun等各自完成相应的作用)。

在Neutron虚似互联网中,除Neutron自身指令外,还包含了Linux Bridge的brctl指令;OpenvSwitch的ovs-vsctl、ovs-ofctl指令和L3的NameSpace的ip ns等指令。

至于,DVR、NFV、SDN等这些和Neutron挂钩的伟岸上名词,也不过是效仿了传统式的互联网构架,予以虚似化和自主创新而已。最终,如何去实际完成,那便是构架设计方案和手机软件编号的事情了。

下面,大家将以实践活动且十分好用的方式来走进Neutron的虚似互联网全球中,化抽象性为形象。

OpenStack Neutron互联网联接检测

OpenStack Neutron互联网联接检测,归根结底是VM的互联网联接检测,即与外网地址的互联网联接状况、互联网确诊和常见故障排错等。方式以下:

留意

因为实行的指令輸出信息内容太多,这里予以了省略,但其实不危害了解和学习培训。在必要处,会得出信息内容。

试验自然环境以下:

Host Server/VM:CentOS 7

OpenStack Juno Neutron:VLAN方式

Provider Network:Vlan 102、网段 172.16.102.0/24、 网关172.16.102.254

VM IP:172.16.102.5

必须留意的是,在vlan方式下,vlan tag的变换是在br-int和br-ethx两个网桥勤奋行。即br-int负责从int-br-ethX过来的包(带外界vlan)变换为內部vlan,而br-ethx负责从phy-br-ethx过来的包(带內部vlan)转换为外界的vlan。

另外,在VLAN方式下,沒有br-tun安全通道网桥。

大家将依据下面这张图的步骤(VM数据信息到外网地址),予以剖析:

1.测算储存连接点上

1)实行nova list 查询VM对应的名字和VM_UUID。

VM默认设置储放于相对路径:/var/lib/nova/instances/

# nova list

2)实行nova show $VM_UUID,查询VM所属的openstack pute node信息内容和instance name。

# nova show $VM_UUID

3)查询VM在哪儿个测算连接点上。

# nova-manage vm list | grep vm-name

4)实行virsh list 查询VM情况,实行virsh dumpxml instance-XXXX搜索文档中有关 Bridge 信息内容,搜索tap的ID和网桥 qbrXXXX。

# virsh dumpxml instance- 

/controller

interface type='bridge'

mac address='fa:16:3e:3e:da:f1'/

source bridge='qbrc08d85da⑹9'/  #OVS完成安全性组的网桥

target dev='tapc08d85da⑹9'/  #虚似网卡机器设备

model type='virtio'/  #虚似网卡驱动器

alias name='0'/  #虚似网卡别称

address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/

这里,大家融合1张官方网站的图,来予以分析。

从图中,大家能够了解:

eth0联接的目地机器设备是:tapc08d85da⑹9,别称为0。

TAP机器设备桥接到网桥qbrXX上(都由Linux kernel建立)。qbr机器设备是由于不可以在TAP机器设备上配备iptables完成安全性组(Secur Group)而提升的机器设备。

eth0对应的tapc08d85da⑹9,桥接到的网桥为qbrc08d85da⑹9。

5)实行brctl show查询网桥qbr上的插口信息内容,寻找tap机器设备和qvbXXXX插口。

备注:因为这些网桥均由Linux Kernel建立,因此应用brctl指令

# brctl show

qbrc08d85da⑹98000.3a04f8f4bda2noqvbc08d85da⑹9

tapc08d85da⑹9

这里,能够看到网桥qbrc08d85da⑹9,上面有插口qvbc08d85da⑹9和tapc08d85da⑹9。

这里出現的qvbXXX和qvoXXX是1对veth pair devices,是1对虚似的网卡机器设备或虚似的网线,用来联接Linux bridge网桥和Open vSwitch机器设备。姓名的内涵是q-quantum、v-veth、b-bridge;o-open、vswitch(quantum时代的遗留下)。

6)查询qvb机器设备的驱动器是不是是veth种类。

# lshw -class work|more

7)查询qvb插口的对端peer_ifindex:number。

# ethtool -S qvbc08d85da⑹9

NIC statistics:

peer_ifindex: 15

8)寻找peer_ifindex:number对应的插口qvoXXX。

# ip link | grep 15:

15: qvoc08d85da⑹9:  BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP  mtu 1500 qdisc pfifo_fast master ovs-system state UP mode DEFAULT qlen 1000

link/ether 4e:99:15:01:1b:07 brd ff:ff:ff:ff:ff:ff

qvbXXX和qvoXXX是1对veth机器设备,成对出現的。能够依据ethtool -S 查询对端number,而且依据ip link|number:查询到对应的veth机器设备名字(即qvo)。

qvb是quamtum veth bridge

qvo是quamtum veth open vswitch

qvoXXX机器设备联接到了Open vSwitch机器设备的br-int集成化网桥上

9)根据Open vSwitch 中的指令ovs-vsctl port-to-br qvoXXX查询qvoXXX机器设备隶属的bridge。

# ovs-vsctl port-to-br qvoc08d85da⑹9

br-int

10)查询全部的网桥

# ovs-vsctl list-br

bond-br

br-int

11)查询OVS Bridge上面有哪些端口号

# ovs-vsctl list-ports br-int

int-bond-br

qvo077eac35-ed

qvo1ee66407⑹9

qvo-cf

qvo849c4847⑴e

qvoace90c57-d3

qvob0b730ab⑺9

qvob32e78ae⑺f

qvoc08d85da⑹9

qvodec9ff3a⑼2

qvoe2028755⑶7

qvofb9c19ea⑹a

tap52a2315f⑴9

tap-e1

# ovs-vsctl list-ports bond-br

eth3

phy-bond-br

br-int和phy-bond-br端口号是用来联接Open Vswitch机器设备的br-int和bond-br

(即br-ethX)网桥。此外,VLAN ID的变换是产生在br-int和bond-br网桥的端口号br-int和phy-bond-br上面的。

从br-int进来的数据信息包,其VLAN ID 会被变换为內部的VLAN ID。同理,从互联网出去的数据信息包,历经phy-bond-br,VLAN ID会将內部VLAN ID 转换为外界VLAN ID。

12)根据ethtool -S 指令查询br-int的对端机器设备number;并根据ip link |grep number查询br-int的对端机器设备(即phy-bond-br)。

# ethtool -S br-int

# ip link | grep number

13)查询phy-bond-br联接到的虚似外界网桥。

# ovs-vsctl port-to-br phy-bond-br

bond-br

14)查询外界网桥bond-br(即br-ethX桥)上的端口号:

# ovs-vsctl list-ports bond-br

eth3

phy-bond-br

有关本事例中的bond-br外界网桥和物理学网口ethX的关联是:VM数据信息包要到外界物理学互联网中,务必借助真实的物理学网卡。

这类关系,必须根据手动式方法建立,这里是:

# ovs-vsctl add-port bond-br eth3。

2. 小结

根据上述数据信息通讯步骤,这样全部VM的数据信息路由协议便彻底连通了。从VM的端口号到qvoXXX插口的信息内容及网桥和端口号的联接状况,再融合tcpdump 指令查询互联网总流量和OVS OpenFlow协议书可以清晰的把握和整理Neutron互联网的联接构架,做为互联网剖析的根据,为常见故障清除出示坚实的基本。

本人简介

徐超:就职于9州云信息内容高新科技比较有限企业(上海市),从业OpenStack有关工作中。本人趋向于科学研究CI-CT-CD-CD。

注:

本文源自OpenStack我国小区与云今日头条、ZDNet\Solidot、CSDN、51CTO、infoQ、高新科技茱比莉、特大号、IDC圈等Top协作新闻媒体协同举行的 我要直播间奥斯汀 (openstack/?p=4396)主题活动

维护期(2016.1.19⑵016.1.26)内非协作新闻媒体不可转载,新闻媒体协作请联络: editor@openstack

关心OpenStack 奥斯汀峰会,请关心关心我要直播间奥斯汀 !