https://www.cnblogs.com/charles1ee/p/6629009.html

VLAN介绍

  局域网LAN(多个机器连接一个Hub或者Switch),是一个广播域

  VLAN:一台Switch划分出多个虚拟机的LAN,每个vlan中的主机连接交换机的端口是access口,从而保证了交换机只在同一个vlan中转发包

  IEEE802.1Q标准定义了VLAN Header的格式。他在普通以太网帧结构的SA(src addr)之后键入了4bytes的VLAN tag/Header数据,其中12-bits的VLAN ID。VLAN ID最大值为4096,但是有效值范围是1-4094

带vlan的交换机端口分:

  access口

  trunk口

两台交换机通过一个线连接,线的两头都是trunk口,可以转发多个vlan信息

vlan类型

  基于port的vlan(数据帧种不包含vlan tag,vlan信息从交换机的端口pvid(Port-base Vlan ID)上得知,交换机转发包也基于此)

  基于tagged vlan(数据帧中包含vlan tag,vlan信息从数据帧内包含的vlan信息,交换机需要有对该数据帧拆包/封包的能力,即连接到这种端口的网络设备必须是8021.Q

VLAN不足

1.4kvlan上限:才12个bits的vlan id,代表最多也只能有4096个隔离的网络,你单瞅瞅阿里云也应该明白,只有4096个网络是远不够用的

2.vlan是基于l2的,很难跨越二层的局限(很难跨地域),限制了网络的灵活性,

3.vlan的操作需要人工介入太多

上述三条在小公司,云平台规模不大的情况下,反而 会是一种优势,但是在大规模的云平台下这三点则是缺点

交换机的基础知识

mac地址学习

apr原理

openvswitch+vlan组网

  1.管理网络:用于openstack节点之间通信,假设VLAN ID 范围为50-100.

  2.数据网络:用于虚拟机之间通信,由于valn模式下,租户建立的网络都是具有独立的vlan id,故需要将连接虚拟机的服务器的交互机端口设置为Trunk模式,并且设置所允许的VLAN ID 范围,比如100-300

  3.外部网络:用于连接外部网络。加上VLAN ID 范围为1000-3000

 neutron vlan模式虚拟机网络  

neutron在该计算节点上做的事情:

  创建了OVS Integration bridge br-int。它的四个Access口中,两个打上了内部vlan Tag1,连接接入network1的两个网卡;另外两个端口打上的是vlan tag 2

  创建一对patch port连接br-int和br-eth1

  设置br-int中的flow rules。对从access ports进入的数据帧,加上相应的vlan tag,转发到patch port;从patch port进入的数据帧,将vlan id 101修改为1,102修改为2,再转发到相应的access ports

  设置br-eth1中的flow rules。从patch port进入的数据帧,将内部vlan id 1修改为101,内部vlan id 2修改为102,再从eth1端口发出。对从eht1进入的数据帧做相反的处理

 隔离的概念

 对比阿里云来说,隔离的概念很好理解

 不同的tenant是隔离的

同一tenant下不同的子网也是隔离的

隔离的网络直接可以通过路由来进行通信

neutron openvswitch+gre/vxlan虚拟网络

GRE全称是Generic Routing Encapsulation,是一种协议封装的格式

GRE相对于VLAN的优点:

  1.突破了二层网络的限制,基于IP协议,虚拟的二层真实的三层

  2.数据中心网络在物理级别上支持不了云计算的规模(大量的mac地址表,arp表..)但是使用GRE就可以突破这个问题,基于IP协议,不基于以太网协议

GRE不足:

  1.点对点,所有的计算机节点和网络节点都会建立GRE Tunnel,规模扩大,效率极其的低下

   2.扩大的广播域,GRE不支持组播,一个网络(GRE Tunnel ID一样)中的一个vm发出广播帧后,GRE会将其广播到所有与该节点有隧道连接的节点。

  3.GRE封装的IP包的过滤和负载均衡问题

  目前还是有很多防火墙和三层网络设备无法解析GRE Header,因此他们无法对GRE封装包做合适的过滤和负载均衡

当A(192.168.1.1) ping B(192.168.2.1)时,报文是如下形式的:

从A到RA

 从RA到RB

选自:http://www.cnblogs.com/xingyun/p/4620727.html

VXLAN:

  vxlan主要用于封装,转发2层报文。vxlan全称Virtual eXtensible Local Area Network,简单的说就是扩充了LVAN,其使得多个通过三层连接的网络可以表现的和直接通过一台一台物理交换机连接配置而成的网络一样处在一个LAN种

  它的实现机制是,将二层报文中加上个Vxlan Header,封装在一个UDP包中进行传输。VxLAN header会包括一个24位的ID(称为VNI),含义类似于VLAN id 或者GRE的tunnel id。GRE一般是通过路由器进行GRE协议的封装和解封的,在VXLAN中这类封装和解封的组件有个专有的名字叫做VTEP。相比起VLAN来说,好处在于其突破了VLAN自由4000+子网的限制,同时架设在UDP协议上后其扩展行提高了不少(因为UDP是高层协议,屏蔽了底层的差异,换句话说屏蔽了二层的差异)

报文走向:

选自:http://www.cnblogs.com/xingyun/p/4620727.html

VXLAN和GRE都是虚拟的二层物理的三层,arp广播也可以通过物理的三层取转发,这样效率就低了,于是有SDN和l2population Driver

选自:http://www.cnblogs.com/linhaifeng/p/6619142.html#_label2

关于gre和vxlan二次封装数据包的MTU问题

VXLAN 模式下虚拟机中的 mtu 最大值为1450,也就是只能小于1450,大于这个值会导致 openvswitch 传输分片,进而导致虚拟机中数据包数据重传,从而导致网络性能下降。GRE 模式下虚拟机 mtu 最大为1462。

计算方法如下:

  • vxlan mtu = 1450 = 1500 – 20(ip头) – 8(udp头) – 8(vxlan头) – 14(以太网头)

  • gre mtu = 1462 = 1500 – 20(ip头) – 4(gre头) – 14(以太网头)

可以配置 Neutron DHCP 组件,让虚拟机自动配置 mtu,

#/etc/neutron/dhcp_agent.ini [DEFAULT] dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf#/etc/neutron/dnsmasq-neutron.conf dhcp-option-force=26,1450或1462

重启 DHCP Agent,让虚拟机重新获取 IP,然后使用 ifconfig 查看是否正确配置 mtu。

部分知识点来自http://www.cnblogs.com/linhaifeng/p/6619142.html#_label2

VLAN,GRE,VXLAN的更多相关文章

  1. neutron 中 flat vlan gre vxlan的区别

    In a flat network, everyone shares the same network segment. For example, say 2 tenants are sharing ...

  2. 二:vlan,gre,vxlan

    管理网络:包含api网络(public给外部用,admin给管理员用-是内部ip,internal给内部用-是内部ip) 数据网络 存储网络 IDRAC网络 PXE网络 控制节点相关服务 system ...

  3. Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  4. 虚拟机去混杂模式与 vlan in vxlan 特性

    1. 去混杂模式 1.1 背景 混杂模式(Promiscuous Mode)是指一台机器能够接收所有经过它的数据流,而不论其目的地址是否是它.是相对于通常模式(又称“非混杂模式”)而言的. 这被网络管 ...

  5. [转载]OpenStack OVS GRE/VXLAN网络

      学习或者使用OpenStack普遍有这样的现象:50%的时间花费在了网络部分:30%的时间花费在了存储方面:20%的时间花费在了计算方面.OpenStack网络是不得不逾越的鸿沟,接下来我们一起尝 ...

  6. OpenStack OVS GRE/VXLAN

    https://www.jianshu.com/p/0b52de73a4b3 OpenStack OVS GRE/VXLAN网络 学习或者使用OpenStack普遍有这样的现象:50%的时间花费在了网 ...

  7. 快速简单的了解VLAN(VXLAN)和端口链路类型

    目录 前言 一.VLAN是什么? 1.优点 2.为什么推出VXLAN 二.VXLAN又是什么? 1.优点 三.创建VLAN 四.介绍端口链路类型 五.Access 1.特性 六.Trunk 1.特性 ...

  8. 网络叠加模式VLAN、VxLAN、GRE

    什么是叠加网络 1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装. 2.叠加网络就是使用这种所谓"包内之包"的技术安全地将一个网络隐藏在另一个 网络中 ...

  9. openstack网络基础:网络叠加模式VLAN、VxLAN、GRE

    什么是叠加网络1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装.2.叠加网络就是使用这种所谓“包内之包”的技术安全地将一个网络隐藏在另一个 网络中,然后将网络区段进行迁移 ...

随机推荐

  1. [转载]DB2与ORACLE、MYSQL比较2

    原文地址:DB2与ORACLE.MYSQL比较2作者:欣颖 4.2 Oracle9i  Oracle的产品战略是每12到18个月发布一个主要版本.主要发行版本所遵循的命名战略在PC领域中更为常见,它不 ...

  2. Linux删除文件出现rm: cannot remove `.user.ini': Operation not permitted

    转自:https://blog.csdn.net/sinat_35861727/article/details/79040755 在Linux中rm -rf的威力是十分巨大的,特别是附带了 -f 参数 ...

  3. java struts2入门学习--OGNL语言基本用法

    一.知识点学习 1.struts2中包含以下6种对象,requestMap,sessionMap,applicationMap,paramtersMap,attr,valueStack; 1)requ ...

  4. Xcode之断点调试

    断点类型: 1.异常断点 异常断点是代码出现问题导致编译器抛出异常时触发的断点.它在断点导航器中设置.点击+号,选择Exception Breakpoint选项.如下图3-1所示 Exception选 ...

  5. rsync配置及优化

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  6. PowerDesigner之PDM(物理概念模型)各种属性建立如PK,AK等

    一.PDM概述 PDM(物理数据模型),通俗地理解,就是在PowerDesigner中以图形化的方式展示和设计数据库. PDM中涉及到的基本概念包括: 表: 列: 视图: 主键: 候选键: 外键: 存 ...

  7. 【C#】浅析C#中的日期处理

    1.字符串转化为日期 1.1第一种方式 使用 Convert.toDateTime 方法,该方法有很多重载方法,这里笔者就介绍两个常用的重载方法. 第一种: 使用: Convert.ToDateTim ...

  8. 在Linux上rpm安装运行Redis 3.0.4

    http://www.rpmfind.net搜索redis,找到redis3.0.4的rpm源选做 wget ftp://fr2.rpmfind.net/linux/remi/enterprise/6 ...

  9. stm32开发 - 远离 Keil uVision, 回到 Visual Studio

    学了8051单片机, 学了MSP430系列, 终于开始步入正轨, 开始学习 stm32(ARM Cortex-M3)系列微处理器~ 学51用Keil uVision开发环境, 提一下Keil uVis ...

  10. HDU - 4511 小明系列故事――女友的考验(AC自己主动机+DP)

    Description 最终放寒假了,小明要和女朋友一起去看电影.这天,女朋友想给小明一个考验,在小明正准备出发的时候.女朋友告诉他.她在电影院等他,小明过来的路线必须满足给定的规则:  1.如果小明 ...