Neutron学习笔记1--基本概念

Neutron学习笔记

基本概念

1.涉及的Linux网络技术

  • bridge:网桥,Linux中用于表示一个能连接不同网络设备的虚拟设备,Linux中传统实现的网桥类似于一个hub设备,而ovs管理的网桥一般类似交换机。
  • br-int:bridge-intergration,综合网桥,常用于表示实现主要内部网络功能的网桥。
  • br-ex:bridge-external,外部网桥,通常表示负责跟外部网络通信的网桥。
  • GRE:General Routing Encapsulation,一种通过封装来实现隧道的方式。在openstack中一般是基于L3的GRE,即original pkt/GRE/IP/Ethernet
  • VETH:虚拟Ethernet接口,通常以pair的方式出现,一端发出的数据包,会被另一端接收,可以形成两个网桥之间的通道。
  • qvb:neutron veth,Linux Bridge-side
  • qvo:neutron veth,OVS-side
  • TAP设备:模拟一个二层的网络设备,可以接受和发送二层数据包。
  • TUN设备:模拟一个三层的网络设备,可以接收和发送三层数据包。
  • iptables:Linux上常见的实现安全策略的防火墙软件。
  • Vlan:虚拟局域网,同一个物理局域网下用标签来实现隔离,可用标号为1-4094.
  • VXLAN:一套利用UDP协议作为底层传输协议的Overlay实现。一般认为作为VLAN技术的延伸或替代者。
  • namespace:用来实现隔离的一套机制,不同namespace中的资源之间彼此不可见。

1.1 tap

tap从功能定位上来讲,位于数据链路层,数据链路层的主要协议有:

  1. 点对点协议(point-to-point Protocol)
  2. 以太网(Ethernet)
  3. 高级数据链路协议(High-Level Link Protocol)
  4. 帧中继(Frame Relay)
  5. 异步传输模式(Asynchronous Rransfer Mode)

但在这些以太网协议中tap只与以太网(Ethernet)协议对应。因此,tap有时也被称为“虚拟以太网设备”

1.2 tun

tun是一个网络层(IP)的点对点设备,它启用了IP层隧道功能。

Linux一共支持5中三层隧道(tunnel)如下表:

隧道 简述
ipip IP in IP,在IPV4报文的基础上再封装一个IPV4报文头,属于IPV4 in IPV4
GRE 通用路由封装,定义了在任意一种网络层协议上封装任意一个其他网络层协议的协议,数据IPV4/IPV6 over ipv4
sit 和ipip类似,只不过是一个IPV4的报文头封装IPV6的报文,属于IPV6 overIPV4
isatap 站内自动隧道寻址协议,一般用于IPV4网络中的IPV6/IPV4节点间的通信
vti 全称是Virtual Tunnel Interface,为IPsec隧道提供了一个可路由的接口类型

1.3 iptables

iptables与上面tap/tun等不同,它并不是一个网络设备,通过iptables可以实现防火墙、NAT等功能。虽然实现防火墙和NAT功能是通过iptables相关命令实现的,但是真正实现这些功能的是运行在内核空间的netfilter模块。他们之间的关系可以如下图所示。

iptables与Netfilter

iptables中内置了五张表:nat、filter、mangle、raw和security。

1.3.1 NAT

NAT(网络地址转换),就是从一个IP地址转换为另一个IP地址。分为:静态NAT、动态NAT和端口多路复用三种方案。

静态NAT

静态NAT两个特征:

  1. 私有IP地址和公有IP地址的转换规则是静态指定的。
  2. 私有IP地址和公有IP地址的1:1的,即一个私有IP地址对应一个公有IP地址。
动态NAT

一般公有地址比私有IP地址少时,用动态NAT方案。动态NAT,就是私有IP地址和公有IP地址不是固定的转换关系,而是在ip转换过程中动态分配。但要求同时在线的私有IP地址要少于公有IP地址。动态NAT的三个特征:

  1. 私有IP地址和公有IP地址的转换规则不是静态指定,而是变化的。
  2. 两者之间的转换规则不是静态指定,而是动态匹配。
  3. 私有IP地址要小于公有IP地址的数量。
端口多路复用

当公有IP地址只有一个,而私有IP地址有多个时,不同的私有IP地址通过端口号进行区分,这里的端口号指TCP/UDP端口。端口多路复用特征:

  1. 私有IP地址大于共有IP地址的数量。
  2. 以公有IP地址的IP+端口号来区分私有IP地址。
SNAT(源地址转换)

内部地址要访问公网上的服务时,内部地址会主动发起连接,有路由器或者防火墙上的网关对内部地址做地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换为SNAT,主要用于内部共享IP访问外部。

DNAT(目的地址转换)

当内部网络要提供对外服务时,外部地址发起主动连接,有路由器或防火墙的网关接收这个连接,然后将连接转换到内部,此过程由带有公网IP的网关替代内部服务来接收外部的连接。然后在内部做地址转换。此转换称为DNAT。主要用于内部服务对外发布。

图示如下:

NAT转换
NAT处理作用时刻点
流描述 处理时刻点 NAT类型 NAT说明
1 流从外部到达Linux用户空间(私有IP) PREROUTING DNAT 将目的IP从公有IP转换到私有IP
2 流从Linux用户空间到达外部 POSTROUTING SNAT 将源IP从私有IP转换为公有IP
3 流从Linux内核空间到达外部 OUTPUT DNAT
1.3.2 Firewall

iptables中的Firewall属于网络防火墙,通过制定基于TCP/IP协议的规则来实现其防火墙功能。这些功能有:

  1. in-interface(入网络接口名):数据包从哪个接口进入;
  2. out-interface(出网络接口名):数据包从哪个网络接口输出;
  3. protocol(协议类型):数据包的协议,如TCP、UDP、ICMP等;
  4. source(源地址):数据包的源IP地址(或子网);
  5. destination(目的地址(或子网)):数据包的目的IP地址(或子网);
  6. sport(源端口号):数据包的源端口号;
  7. dport(目的端口号):数据包的目的端口号。
处理时刻点
  • INPUT
  • FORWARD
  • OUTPUT
1.3.3 mangle

mangle表主要用于修改数据包的TOS(服务类型),TTL(生存时间),以及数据包设置Mark标记,以实现QOS(服务质量)调整以及策略路由等应用。

处理时刻点
  • RPEROUTING
  • INPUT
  • FORWARD
  • OUTPUT
  • POSTROUTING

1.4 namespace

namespace是Linux虚拟网络中的一个重要概念,其主要目的就是将Linux的许多全局资源进行资源隔离。Linux可以在一个host中创建多个namespace,使那些原本的Linux全局资源变为namespace范围内的全局资源。并且各个namespace之间资源互不可见、相互透明。

namespace隔离的资源

资源 含义
uts_ns UTS为Unix Timesharing System的简称,包含内存名称、版本、底层体系结构等信息
ipc_ns 所有与进程间通信(IPC)有关的信息
mnt_ns 当前装载的文件系统
pid_ns 有关进程id的信息
user_ns 资源配额的信息
net_ns 网络信息

示意图:

namespace

每个namespace提供了一份独立的网络协议栈,一个设备只能位于一个namespace中,不同namespace中的设备可以通过veth pair进行桥接。

1.5 veth pair

veth pair不是一个设备,而是一对设备,以连接两个虚拟以太网端口。操作veth pair要和namespace配合使用,如图所示。

veth pair

2.Neutron管理的实体:

  • 网络:隔离的L2域,可以是虚拟、逻辑或交换。
  • 子网:隔离的L3域,IP地址块,其中每个机器有一个IP,同一个子网的主机彼此L3可见。
  • 端口:网络上虚拟、逻辑或交换端口。所有这些实体都是虚拟的,拥有自动生成的唯一标识ID,支持CRUD(crud是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete) ),并在数据库中跟踪记录状态。

2.1 网络

隔离的L2广播域,一般是创建它的用户所有。用户可以拥有多个网络。网络是最基础的,子网和端口都需要关联到网络上。

网络上可以有多个子网。同一个网络上的主机一般可以通过交换机或路由器连通起来。

2.2子网

隔离的L3域,子网代表了一组分配了IP的虚拟机。每个子网必须有一个CIDR和关联到一个网络。IP可以从CIDR或者用户指定池中选取。

子网可能会有一个网关、一组DNS和主机路由。不同子网之间L3是互相不可见的,必须通过一个三层网关(路由器)经过L3上进行通信

2.3端口

可以进出流量的接口,往往绑定上若干MAC地址和IP地址,以进行寻址。一般为虚拟交换机上的虚拟接口。

虚拟机挂载网卡到端口上,通过端口访问网络。当端口有IP时,意味它属于某个子网。

3.抽象系统架构

无论哪种具体的网络虚拟化实现,一个简化和抽象后的系统架构可以表述为下图:

抽象系统架构

在启用 DVR 特性(J 版本以后支持)之前,所有流量(东西向、南北向)都需要经过网络节点的转发;DVR 特性则允许东西向流量和带有 Floating IP 的南北向流量不经过网络节点的转发,直接从计算节点的外部网络出去。

参考:
1.深入理解 Neutron -- OpenStack 网络实现
2.深入理解OpenStack Neutron

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • # 图解TCP/IP 标签(空格分隔): 2018招聘 --- ##第1章 网络基础知识 ### ### 1.1 ...
    Kai_a3da阅读 1,402评论 0 2
  • 计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集...
    杵臼凉薄yo阅读 31,928评论 5 51
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,404评论 0 120
  • 第一章 网络工程基础 网络工程的含义 计算机网络:是指将有独立功能的多台计算机,通过通信设备线路连接起来,在网络软...
    Azur_wxj阅读 2,240评论 0 6
  • 顺着缓急不定的时光,逆流而上 河的上方,你的背影 将月光拉的很长很长 风在随着你的心跳,激昂地 撕开遮月的云,把满...
    泰安左眼皮跳跳阅读 299评论 0 10