四·Openstack Neutron 网络详解

(本文所有提及OSP=OpenStack Platform)

1 IPV4 网络

1)TCP/IP 标准遵循RFC1122 中指定的四层网络模型:

● 应用层: 每一应用具有用于通信的规范,以便客户端和服务器可以跨平台通信。
● 常见的协议包括SSH,(提供服务器远程登录)、HTTPS(提供安全Web 访问)、NFS 或CIFS(提供文件共享),以及SMTP(提供电子邮件递送服务
● 传输层: TCP 和UDP 两种传输层协议。TCP 是可靠连接导向型通信协议,而UDP 属于无连接数据报协议。应用通过交换TCP 或UDP 数据包通信。/etc/services 文件中可以找到常用和已注册的端口列表
● 网络层: 互联网或网络层将数据从源主机传送到目标主机。每一主机具有IP地址和前缀,用于确定网络地址。路由器用于连接多个网络, 可确保在这些网络中进行流量路由
● 链路层:链路层或介质存取层提供与物理介质的连接。最常见的网络类型是有线以太网(IEEE 标准802.3)和无线局域网(IEEE 标准802.11)。每一物理设备都有一个硬件地址(或称为MAC地址),用于标识局域网络段中数据包的目的地

2)软件定义型网络:

● 软件定义型网络(SDN)是一种网络模型,它允许网络管理员通过抽象多个网络层来管理网络服务
● SDN 断开处理流量的软件(即控制平面) 与路由流量的底层机制(即数据平面) 的关联
● SDN实现控制平面与数据平面之间的通信。例如,可通过将OpenFlow 项目OpenDaylight 项目两者结合来提供此类实施
● SDN 不改变网络中使用的底层协议; 而是通过应用来调配网络。TCP/IP 等网络协议及以太网标准依赖于管理员针对不同的应用进行手动配置

3)以太网标头:

● 每个网络数据包包含一个标头,其长度为14 个八位字节,由发出该数据包的来源MAC 地址以及目标MAC 地址和以太网帧(Ethernet II 或IEEE 802.2LLC) 组成
● 以太网帧也可编有IEEE802.1Q 标签,后者定义虚拟局域网(VLAN)的标识符。
● 以太网域属于第2 层网络

4)网桥:

● 网桥是连接多个以太网络段的网络设备
● 网桥可以连接多个设备,每个设备可以发送以太网帧到其他设备,而无需通过路由器删除和替换帧
● 网桥将流量隔离起来,在大多情形中,交换机知道哪些MAC 地址可通过哪些端口进行访问,交换机监控网络活动,并且维护MAC 学习表

5)广播域:

● 广播域是计算机网络的逻辑划分,其中的所有节点可以通过数据链路层的广播来互相访问
● 广播域可以在同一LAN 段内,也可以桥接到其他LAN 段
● 属于网络段的任何设备都可以发送广播帧 后者将重复到该网段中的所有其他设备

6)通用路由封装(GRE) :

● 封装协议中的通用路由封装(GRE) 协议由Cisco Systems 开发,在互联网网络上的虚拟点对点链路(隧道) 内封装各种网络层协议点对点连接是两个节点或端点之间的连接GRE 协议用于在其他网络基础上运行网络
● 现有TCP/IP 网络内的两个端点可以通过GRE 隧道进行配置
● GRE 数据封装在一个标头中,后者又封装在底层TCP/IP 网络的标头中

7)VXLAN 隧道

虚拟可扩展局域网 (VXLAN) 是一种网络虚拟化技术, 它可以解决与大型云计算部署相关的扩展问题。它将扩展能力增加到最多1600 万个逻辑网络,并允许在IP 网络间邻接第2 层链路
VXLAN 协议封装L2 网络并将它们作为L3 网络上的隧道

8)虚拟局域网VLAN :

● 管理员可以将一个第2 层网络分区,创建互相隔离的多个不同广播域,这样数据包可以通过一个或多个路由器仅在它们之间传递。此类分离被称为虚拟局域网(VLAN)
● VLAN 提供传统上在LAN 配置中仅通过路由器提供的分段服务VLAN 解决了扩展性、安全性和网络管理等问题
● VLAN拓扑中的路由器提供广播过滤、安全性、地址摘要和通信流管理
● VLAN 也可帮助在一个物理基础架构上创建多个第3 层网络。例如,如果将DHCP 服务器插入到交换机上,它将服务于该交换机上配置了DHCP 的任何主机
● 通过使用VLAN, 网络可以轻松分割,这样一些主机将不使用该DHCP 服务器,而会获得本地链路的地址或者从其他DHCP 服务器获得地址

2 管理网络接口

1)使用ip 命令管理接口:
ip 命令是在Linux 中管理网络设备的主要工具
ip link 子命令可以修改第2 层设置,如MAC地址、混杂模式,或者使接口启动或停止
ip address 子命令可以修改第3 层设置,如IP 地址和IP 子网掩码

$  ip link                         #Lists all network interfaces.
$  ip link set device up|down  #Enables or disables a network link.
$  ip link set device promisc on|off  #Enables or disable promiscuous mode.
$  ip address show dev device  #Lists the details of a given device.
$  ip address flush dev device  #Removes the network settings of a givendevice.
$  ip address add IPADDR/IPMASK dev  #Adds an IP address to a given interface.devi ce
$  ip address del IPADDR/IPMASK dev  #Deletes an IP address from a given interface.device

3 Linux 网桥简介

● 网桥是连接两个以太网络段的设备。数据包通过网桥时,它基于以太网地址而非IP 地址进行转发。数据包在L2 基础上转发,因此所有协议都与网桥兼容网桥的实施多种多样。Linux 默认可以创建并管理网桥,它由brctl 命令进行管理
● 除了Linux 网桥模块外,Open vSwitch 项目还支持虚拟网桥,包括以下功能:
l.支持用于VLAN 的802.1Q 标准
2.多播侦听, 允许智能路由流量,而不是涌向VLAN 中的所有端口
3.精细控制服务质量(QoS)。
4.支持多隧道协议,如GRE、VXLAN 和无状态传输隧道(STT)
5.支持使用C 和Python 编程语言的远程配置协议
6.支持内核用户空间转发

1)使用brctl 命令管理接口:

● 可以使用brctl 命令管理Linux 网桥
● Linux 网桥由内核模块提供,是连接物理接口和虚拟机接口的模拟交换机声明第一个Linux 网桥时,将加载bridge 内核模块
● 由于网桥是内核实施 网络流量管理在内核的内存空间中进行下表列出了brctl 命令提供的- 些可用选项

I.以具备管理特权的用户身份,确保openvswitch 软件包已经安装2.若要创建网桥, 可使用bretl addbr 命令
3.使用brctl addif,将网络设备作为端口添加到网桥
4.使用ip address add命令,为Linux 网桥分配IP 地址。作为参数传递到命令的设备名称就是网桥名称
5.若要验证网桥和接口已正确配置, 可使用brctl show 命令
6.使用ip link set dev bridge name up 命令激活网桥

2)管理永久网桥:

● 网络配置文件可用于创建永久网桥,即系统启动时重新创建的网桥
● 永久网桥的定义方式和网络设备一样,可通过创建名为/etc/sysconfig/networ-scripts/ifcfg-BRIDGE 的文件来定义
● 若要将网络设备设为网桥,配置文件中必须设置TYPE =Bridge 条目,该文件仅定义网桥,而不定义和它连接的设备。如果您不为网桥指定MAC 地址,它会自动生成

4 实施OpenvSwitch

1)Open vSwitch (OVS) 简介:

● Open vSwitch 项目支持多种网络协议和标准,旨在为虚拟化网络提供额外的功能Open vSwitch 支持多种网络协议,如VLAN、VXLAN、GRE 隧道、OpenFlow标准、sFlow 协议,以及Cisco RSPAN 协议
● OpenvSwitch 可以在分布式配置中运行,通过集中控制器调配网桥。管理员可以同时使用Linux 网桥和Open vSwitch 网桥
● Open vSwitch 使用数据库存储网络配置和网络状态。这一数据库可以保存下来,并在不同的主机之间迁移
● Open vSwitch 可以充当在虚拟机的虚拟机监控程序上运行的软件交换机,也可以作为专用交换机硬件的控制堆栈。因此,它已经移植到多种虚拟化平台和交换机芯片组

2)下表列出了一些Open vSwitch 功能:

I.支持NetFlow、sFlow、IPFIX、SPAN 和RSPAN 网络协议
2.支持链路聚合控制协议(LACP)
3.支持适用于网络分区和中继的802.1Q IEEE 标准(VLAN)
4.支持生成树协议(STP)
5.面向应用、用户和数据流的服务质量(QoS) 控制
6.网络接口与负载平衡绑定
7.全面支持IPV6
8.通过C 和Python 绑定的远程配置
9.在内核空间或用户空间实施数据包转发

3)使用命令:

ovs-vsctl
● 可以使用命令管理Open vSwitch 网桥。此命令在openvswitch 软件包ovs-vsct l中提供
● 将网桥连接到外部
● 可以创建、查看和删除网桥和端口。也可以使用ovs-vsct l
● SDN 控制器
● 使用ovs-vsctl 创建的网桥会立即激活并在重启后继续有效

4)Open vSwitch 流模式:

● Open vSwitch 可以像典型的交换机一样运行,维护一个MAC 表并且支持流模式
● 在流模式中,根据数据包匹配标准创建各种规则,从而确定哪一端口用于传出流量。这些规则在创建后可注入到Open vSwitch
● 流模式与交换机或路由器中的网络处理器管理流量的方式类似。创建的规则几乎可以匹配L2、L3 和L4 数据包标头中的任何字段
● 匹配规则后,数据包可以转发到物理或虚拟端口,被丢弃,或者被改写以进一步由其他规则集处理
● 规则按照优先级排序,每一个帧将从最高优先级开始针对规则进行检查。如果帧与某一组标准匹配,则不再进行进一步的规则处理。所有帧由第一个表(table0) 处理,然后可选地重定向到其他表。如果没有匹配的规则,则默认的策略是丢弃该帧
● 若要确定网桥的模式,可使用dump-flows 命令

5)OpenFlow 简介:

● 路由器保存流经网络流量相关的数据包流的路径信息。此信息整理在流表中,它们创建并存储在网络硬件中
● 在2011年之前,只有路由器上运行的本地软件被允许访问此信息。随后制定了OpenFlow 标准,从而允许从远程系统访问流表
● OpenFlow 不是以太网和TCP/IP 标准这样的网络标准。与之不同,它要求中央控制器处理网络流。控制器可用于基本操作,如监控广播流量和构建MAC表,也可用于由软件驱动的高级操作,如监控虚拟机创建和即时调配网络上的网络流

使用ovs-ofctl 命令:
ovs-ofctl 命令行界面是一款用于监控和管理OpenFlow 交换机的工具此工具可用于显示OVS网桥的当前状态,包括功能、配置和表条目等它兼容由Open vSwitch 或OpenFlow 创建的

6)OpenFlow 交换机
● 若要显示OpenFlow 数据库的概览,可使用show 命令: # ovs-ofctl show
● 若要检索网络端口的状态,可使用dump-ports-desc 命令: # ovs-ofctl dump-ports-desc
● 若要显示所有流的条目,可使用dump-flows 命令: # ovs-ofctl dump-flows

7)使用ovs-vsctl 命令实施OVS 网桥:

I.以具备管理特权的用户身份,确认openvswitch软件包已经安装。
2.启动并启用openvswitch 服务。
3.若要创建OVS 网桥,可使用ovs-vsctl add-br 命令。
4.使用ovs-vsctl list bridge 列出OVS 数据库中的网桥属性。若要设置网桥属性,可使用ovs-vsctl set bridge BRIDGE 命令。例如,ovs-vsctl set bridge demo-brothe-config:hwaddr='00:OO:OO:00:OO:00 命令设置demo-br 网桥的硬件地址。
5.从网络接口移除IP 地址,然后将它集成到现有网桥中。使用ipaddress flush dev 清空实例中的所有当前设置。
6.使用ovs-vsctl add-port 命令添加接口到网桥。
7.分配IP 地址到OVS 网桥。使用ip address add 命令分配IP 地址到网桥设备。
8.使用ip link set dev BRIDGE up 命令启动OVS 网桥设备。
9.使用ovs-vsctl show 命令确认网桥是否正确配置。使用ovs-vsctl list-ports 命令列出与网桥连接端口

你可能感兴趣的:(OpenStack)