云计算openstack共享组件-neutron网络服务7

一、虚拟机获取 ip:

用 namspace 隔离 DHCP 服务

Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 通过 Linux Network Namespace 独立的为每个 network 服务隔离

在二层网络上,VLAN 可以将一个物理交换机分割成几个独立的虚拟交换机。类似地,在三层网络上,Linux network namespace 可以将一个物理三层网络分割成几个独立的虚拟三层网络。

每个 namespace 都有自己独立的网络栈,包括 route table,firewall rule,network interface device 等。

Neutron 通过 namespace 为每个 network 提供独立的 DHCP 和路由服务,从而允许租户创建重叠的网络。如果没有 namespace,网络就不能重叠,这样就失去了很多灵活性。

openstack network list

ip netns list         命令列出所有的 namespace

ip netns exec <network namespace name> <command>        管理 namespace

instance 获取 IP 的过程如下

1. vm 开机启动,发出 DHCPDISCOVER 广播,该广播消息在整个 net 中都可以被收到。

2. 广播到达 veth tap19a0ed3d-fe,然后传送给 veth pair 的另一端 ns-19a0ed3d-fe。dnsmasq 在它上面监听,dnsmasq 检查其 host 文件,发现有对应项,于是dnsmasq 以  DHCPOFFER 消息将 IP(192.168.254.18)、子网掩码(255.255.255.0)、地址租用期限等信息发送给 vm。

3. vm 发送 DHCPREQUEST 消息确认接受此 DHCPOFFER。

4. dnsmasq 发送确认消息 DHCPACK,整个过程结束。

二、VXLAN简介:

overlay network概念:

overlay network 是指建立在其他网络上的网络。overlay network 中的节点可以看作通过虚拟(或逻辑)链路连接起来的。overlay network 在底层可能由若干物理链路组成,但对于节点,不需要关心这些底层实现。

例如 P2P 网络就是 overlay network,隧道也是。vxlan 和 gre 都是基于隧道技术实现的,它们也都是 overlay network。

VXLAN简介:

VXLAN 为 Virtual eXtensible Local Area Network。正如名字所描述的,VXLAN 提供与 VLAN 相同的以太网二层服务,但拥有更强的扩展性和灵活性。与 VLAN 相比,

VXLAN 有下面几个优势:

1. 支持更多的二层网段。

VLAN 使用 12-bit 标记 VLAN ID,最多支持 4094 个 VLAN,这对大型云部署会成为瓶颈。VXLAN 的 ID (VNI 或者 VNID)则用 24-bit 标记,支持 16777216 个二层网段。

(比特是英文 binary digit的缩写。比特是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量。一般来说,n比特的信息量可以表现出2的n次方种选择)

2. 能更好地利用已有的网络路径。

VLAN 使用 Spanning Tree Protocol 避免环路,这会导致有一半的网络路径被 block 掉。VXLAN 的数据包是封装到 UDP 通过三层传输和转发的,可以使用所有的路径。

3. 避免物理交换机 MAC 表耗尽。

由于采用隧道机制,TOR (Top on Rack) 交换机无需在 MAC 表中记录虚拟机的信息。

VXLAN 封装和包格式:

VXLAN 是将二层建立在三层上的网络。通过将二层数据封装到 UDP 的方式来扩展数据中心的二层网段数量。

VXLAN 是一种在现有物理网络设施中支持大规模多租户网络环境的解决方案。VXLAN 的传输协议是 IP + UDP。

VXLAN 定义了一个 MAC-in-UDP 的封装格式。在原始的 Layer 2 网络包前加上 VXLAN header,然后放到 UDP 和 IP 包中。通过 MAC-in-UDP 封装,VXLAN 能够在 Layer 3 网络上建立起了一条 Layer 2 的隧道。

VXLAN Tunnel Endpoint

VXLAN 使用 VXLAN tunnel endpoint (VTEP) 设备处理 VXLAN 的封装和解封。每个 VTEP 有一个 IP interface,配置了一个 IP 地址。VTEP 使用该 IP 封装 Layer 2 frame,并通过该 IP interface 传输和接收封装后的 VXLAN 数据包。

实现方式:

1. Linux vxlan 创建一个 UDP Socket,默认在 8472 端口监听。

2. Linux vxlan 在 UDP socket 上接收到 vxlan 包后,解包,然后根据其中的 vxlan ID 将它转给某个 vxlan interface,然后再通过它所连接的 linux bridge 转给虚机。

3. Linux vxlan 在收到虚机发来的数据包后,将其封装为多播 UDP 包,从网卡发出。

Open vSwitch:

Open vSwitch 中的网络设备:

br-ex:连接外部(external)网络的网桥。

br-int:集成(integration)网桥,所有 instance 的虚拟网卡和其他虚拟网络设备都将连接到该网桥。

br-tun:隧道(tunnel)网桥,基于隧道技术的 VxLAN 和 GRE 网络将使用该网桥进行通信。

tap interface:命名为 tapXXXX。

linux bridge:命名为 qbrXXXX。

veth pair:命名为 qvbXXXX, qvoXXXX

OVS integration bridge:命名为 br-int。

OVS patch ports:命名为 int-br-ethX 和 phy-br-ethX(X 为 interface 的序号)。

OVS provider bridge:命名为 br-ethX(X 为 interface 的序号)。

物理 interface:命名为 ethX(X 为 interface 的序号)。

OVS tunnel bridge:命名为 br-tun。

三、三层网络介绍:

根据网络拓扑,由于虚机访问外网要经过本网段的网关192.168.101.1,然后经过路由的外网接口转发出去,到达192.168.253.3

原文地址:https://www.cnblogs.com/kittywerwer/p/11703598.html

时间: 2024-07-29 14:57:19

云计算openstack共享组件-neutron网络服务7的相关文章

openstack O版 Neutron网络服务

1.创建neutron数据库[[email protected] ~]# mysql -uroot -pdevopsWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 94Server version: 10.1.20-MariaDB MariaDB ServerCopyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab

云计算openstack共享组件(1)——时间同步服务ntp

一.标准时间讲解 地球分为东西十二个区域,共计 24 个时区 格林威治作为全球标准时间即 (GMT 时间 ),东时区以格林威治时区进行加,而西时区则为减. 地球的轨道并非正圆,在加上自转速度逐年递减,因此时间就会有误差在计算时间的时,最准确是使用“原子震荡周期”所计算的物理时钟.这种时钟被称为标准时间即— Coordinated Universal Time(UTC) UTC 的准确性毋庸置疑,美国的 NIST F-1 原子钟 2000 年才将产生 1 秒误差. 随着时间的误差,有些工作是无需进

云计算OpenStack共享组件---Memcache缓存系统(3)

一.缓存系统 1.静态web页面: (1)在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容.之后通过Web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果. (2)为了让静态web页面显示更加好看,使用javascript/

云计算openstack共享组件(2)——Memcache 缓存系统

一.缓存系统 在大型海量并发访问网站及openstack等集群中,对于关系型数据库,尤其是大型关系型数据库,如果对其进行每秒上万次的并发访问,并且每次访问都在一个有上亿条记录的数据表中查询某条记录时,其效率会非常低,对数据库而言,这也是无法承受的. 缓冲系统的使用可以很好的解决大型并发数据访问所带来的效率低下和数据库压力等问题,缓存系统将经常使用的活跃数据存储在内存中避免了访问重复数据时,数据库查询所带来的频繁磁盘i/o和大型关系表查询时的时间开销,因此缓存系统几乎是大型网站的必备功能模块. 缓

云计算OpenStack共享组件---信息队列rabbitmq(2)

一.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求. 排队指的是应用程序通过 队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求. 二.AM

云计算openstack共享组件-消息队列rabbitmq(2)

一.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.   消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求.   排队指的是应用程序通过 队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求.

云计算之openstack(N版)neutron网络服务最佳实践

2.6网络服务 2.6.1neutron的概况 网络服务提供网络,子网以及路由这些对象的抽象概念.每个抽象概念都有自己的功能,可以模拟对应的物理设备:网络包括子网,路由在不同的子网和网络之间进行路由转发. 对于任意一个给定的网络都必须包含至少一个外部网络.不想其他的网络那样,外部网络不仅仅是一个定义的虚拟网络.相反,它代表了一种openstack安装之外的能从物理的,外部访问的试图.外部网络上的IP地址可供外部网络上的任意的物理设备访问,外部网络之外,任何networking设置拥有一个或多个内

openstack M 版 neutron网络组件基础入门

在我们openstack学习当中,网络组件neutron无疑是令很多人很难理解的,可以说要深入理解 了neutron组件,你基本完成了openstack 60%的学习,存储方面只要不涉及到分布式,剩下的基本都比较简单了 相信很多人第一次看到这种图的时候都会被吓一跳,没错,这就是openstack  neutron组件里面涉及到的数据流程,里面涉及到的知识点很多很多 Openstack网络模型中的几个概念网络: Management Network: 管理网络,连接所有节点. External N

openstack Q版部署-----网络服务(neutron)安装部署(7)

一.数据库配置 控制节点创建数据库 CREATE DATABASE neutron;GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron2018';GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron2018'; 二.创建认证信息(控制节点) 先生效一下环境变量 创建neutron用户: ope