虚拟路由器-NSX虚拟网络部署实例(四):虚拟路由器配置演示(下)

  • A+
所属分类:路由器限速

虚拟路由器冗余协议[原理篇]VRRP详解

为什么要使用VRRP技术我们知道,为了实现不同子网之间的设备通信,需要配置路由。目前常用的指定路由方法有两种:

第一种是通过路由协议 :RIP、OSPF动态学习

第二种是通过静态路由: 对终端PC机配置静态路由。

这两种路由各有各的优缺点:

第一种路由可以自动寻找最优路径,邻居路由也可以通过学习来获得路由表,但是动态路由占用线路带宽和CPU处理时间。

第二种路由是不需要CPU处理时间同样也不占用线路带宽,但是这个路由需要对终端的PC机进行配置网关来实现,工作量是比较大的。

对于以上的两种路由在现在来说都是广泛应用的。

我们现在只来分析静态路由的缺点,因为VRRP技术就是使用在静态路由上,而不是动态路由上。

对于静态路由来说,对终端PC机配置默认网关。如果作为默认网关的路由器出现故障,所有使用该网关为下一跳的主机的通信是要中断的。如下图所示;

在上图中,主机A—D都配置了一个默认的网关:10.1.1.1,网关路由的下一跳指向主机所在网段内的一个路由器RouterA,RouterA将报文发送到外网,但是如果现在RouterA坏掉了,那么所有的主机将无法与其他网段进行通信了。

为了解决以上的问题,我们可以加一个路由器RouterB,如下图所示:

当RouterA坏掉时,所有的PC机将网关切换到RouterB上的网关。这样就实现了路由器的备份。这个技术就是VRRP技术---虚拟路由器冗余协议

VRRP简介(转发机制)1. VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)将可以承担网关功能的路由器加入到备份组中,形成一台虚拟路由器,由VRRP的选举机制决定哪台路由器承担转发任务,局域网内的主机只需将虚拟路由器配置为缺省网关

2. VRRP是一种容错协议,在提高可靠性的同时,简化了主机的配置。在具有多播或广播能力的局域网(如以太网)中,借助VRRP 能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息

3. VRRP协议的实现有VRRPv2和VRRPv3两个版本,VRRPv2于IPv4,VRRPv3基 于IPv6

4. VRRP路由器: 所有运行VRRP协议的路由器就叫做VRRP路由器

5. VRRP备份组: 多台路由器被分到一个组中,在这个组中选举出一台主路由器,其他作为备份路由器。平常时候都是主路由器一个工作,备份路由器空闲,当主路由器故障后,从多台备份路由器中选举出一台替代故障的主路由器工作。这一组中的路由器构成了一个备份组。

如下图所示: 有两个路由器,两个网关,从两个路由器中选举出一个路由器作为主路由器,其他的都是备份路由器,主路由器负责发转发数据报,而备份路由器处于空闲状态,当主路由器出现故障后,备份路由器会成为主路由器,代替主路由器实现转发功能。

6. 虚拟路由器:虚拟路由器是VRRP备份组中所有路由器的集合,它是一个逻辑概念,并不是正真存在的。从备份组外面看备份组中的路由器,感觉组中的所有路由器就像一个 一样,你可以理解为 在一个组中: 主路由器+所有备份路由器=虚拟路由器。虚拟路由器有一个虚拟的IP地址和MAC地址。如果虚拟IP和备份组中的某台路由器的IP相同的话,那么这台路由器称为IP地址拥有者,并且作为备份组中的主路由器。

如下图所示: RA、RB和RC都是VRRP路由器,他们构成了一个VRRP备份组,RA为主路由器,RB和RC为备份路由器,这三台路由器从外界来看就像一台一样,这样构成一个虚拟路由器Router Group,虚拟路由器有一个虚拟的IP地址为10.1.1.1(RA主路由器的IP)。RA是IP地址拥有者,也是主路由器。

7. 虚拟IP地址和MAC地址:VRRP组(备份组)中的虚拟路由器对外表现为唯一的虚拟MAC地址,地址格式为00-00-5E-00-01-【VRID】,VRID为VRRP组的编号,范围是0~255.

上图中,三台路由器在一个组中,这个组可以起一个0~255之间的编号。

注意:

1.虚拟路由器具有IP地址。局域网内的主机仅需要知道这个虚拟路由器的IP地址,并将其设置为缺省路由的下一跳地址

2.虚拟路由器的 IP 地址可以是备份组所在网段中未被分配的IP 地址,也可以和备份组内的某个路由器的接口IP 地址相同

3.接口 IP 地址与虚拟IP 地址相同的路由器被称为“IP 地址拥有者” 在同一个 VRRP 备份组中,只允许配置一个IP 地址拥有者

VRRP状态

VRRP路由器在运行过程中有三种状态:

1. Initialize状态: 系统启动后就进入Initialize,此状态下路由器不对VRRP报文做任何处

处理,可以理解为初始化

2. Master状态: 路由器会发送VRRP通告,发送免费ARP报文。

3. Backup状态: 接受VRRP通告。

一般主路由器处于Master状态,备份路由器处于Backup状态。

VRRP选举机制VRRP使用选举机制来确定路由器的状态,运行VRRP的一组路由器对外构成了一个虚拟路由器,其中一台路由器处于Master状态,其他处于Backup状态。所以主路由器又叫做Master路由器,备份路由器又叫做Backup路由器。

优先级选举:

1.VRRP组中IP拥有者。如果虚拟IP地址与VRRP组中的某台VRRP路由器IP地址相同,则此路由器为IP地址拥有者,这台路由器将被定位主路由器。

2.比较优先级。如果没有IP地址拥有者,则比较路由器的优先级,优先级的范围是0~255,大的作为主路由器

3.比较IP地址。在没有Ip地址拥有者和优先级相同的情况下,IP地址大的作为主路由器。

如下图所示: 虚拟IP为10.1.1.254,在VRRP组中没有IP地址拥有者,则比较优先级,很明显RB和RA的优先级要大于RC,则比较RA和RB的IP地址,RB的IP地址大。所以RB为组中的主路由器。

VRRP定时器

①VRRP通告报文时间间隔定时器

1> VRRP备份组中的Master路由器会定时发送VRRP通告报文,通知备份组内的

路由器自己工作正常

2> 用户可以通过设置VRRP定时器来调整Master路由器发送VRRP 通告报文的

时间间隔

3> 如果Backup路由器在等待了3个间隔时间后,依然没有收到VRRP 通告报文,则认为自己是Master路由器,并对外发送VRRP通告报文,重新进行Master路由器的选举

②VRRP抢占延迟时间定时器

1> 为了避免备份组内的成员频繁进行主备状态转换,让Backup路由器有足够的

时间搜集必要的信息(如路由信息),Backup 路由器接收到优先级低于本地优 先级的通告报文后,不会立即抢占成为Master

2> 而是等待一定时间——抢占延迟时间后,才会对外发送VRRP通告报文取代原 来的Master路由器

VRRP报文格式

VRRP只使用VRRP通告报文。

VRRP通告报文使用Ip组播数据包进行封装,组播地址为223.0.0.18,IANA给其分配的协议号为112。

VRRP通告报文的TTL值必须是255,如果VRRP路由器接受到TTL值不为255的VRRP通告报文,必须丢弃。

VRRP组中的主路由器会定期发送通告报文,备份路由器接受,他们通过这种方式来交流选举

VRRP工作过程总结:

1. 路由器使能VRRP 功能后,会根据优先级确定自己在备份组中的角色。优先级高的路由器成为Master 路由器,优先级低的成为Backup 路由器。Master 路由器定期发送VRRP

通告报文,通知备份组内的其他设备自己工作正常;Backup 路由器则启动定时器等待通告报文的到来。

2. 在抢占方式下,当Backup 路由器收到VRRP 通告报文后,会将自己的优先级与通告报 文中的优先级进行比较。如果大于通告报文中的优先级,则成为Master 路由器;否则将保持Backup状态

3. 在非抢占方式下,只要Master 路由器没有出现故障,备份组中的路由器始终保持Master 或Backup 状态,Backup 路由器即使随后被配置了更高的优先级也不会成为Master 路由器

4. 如果Backup 路由器的定时器超时后仍未收到Master 路由器发送来的VRRP 通告报文,则认为Master 路由器已经无法正常工作,此时Backup 路由器会认为自己是Master 路由器,并对外发送VRRP 通告报文。备份组内的路由器根据优先级选举出Master 路由 器,承担报文的转发功能

VRRP基本配置

配置VRRP组 要启用VRRP,最基本的配置就是要创建VRRP组,并为VRRP组配置虚拟IP地址

Vrrp group-number ip ip-address [secondary]

group-number 为VRRP组的编号。即VRID 范围1~255,

ip-address 虚拟IP地址。

Secondary 辅助IP地址

需要在主路由器和备份路由器上配置

配置VRRP优先级

如果希望指定某台路由器称为主路由器,可以手工调整其优先级

Vrrp group-number priority number

Group-number VRRP组号 VIRD

Priority 表示优先级

Number 表示优先级 范围,0~255,默认为100,但是0被保留为特殊用途,255表示IP地址拥有者。

优先级的配置在没有IP地址拥有者的情况下。想让哪台路由器成为主路由器就在哪台路由器上配置

配置VRRP接口跟踪

如上图所示:RA为主路由器,RB为备份路由器,但是当RA上的接口S0发生故障时,RA依然从接口E0发送通告报文,声明自己为主路由器,但是RA实际上已经不能进行转发了。也就是说路由器网路中不能判定路由器接口是否发生了故障。

VRRP接口跟踪机制就是检测接口故障的一种机制。配置了接口跟踪机制的路由器,当自己的接口发生故障时会将自己的路由器优先级降低,从而使自己从主路由器变为备份路由器,然后原来的备份路由器此时将成为主路由器。

Vrrp group-nunmber track interface [priority-decrement]

priority-decrement为降低的优先级数

注意: priority-decrement是降低了多少而不是降低到多少,比如priority-decrement为30,那么此路由器的优先级在原来基础上降低30.

配置VRRP抢占模式

抢占模式: 指当原来的路由器从故障中回复并接入到网络层后,配置了VRRP抢占模式的路由器将夺回原来属于自己的角色(主路由器),如果没有配置,回复之后将保持备份路由器的状态。

推荐使用启用抢占模式

vrrp group-number preempt {delay [Delay-time] }

Delay 取值范围为1~255之间,如果不配置delay时间,那么其默认值为0秒。

delay-time 为延迟抢占的时间即从该路由器发现自己的优先级大于MASTER的优先级开始 经过delay-time这样长的一段时间之后才允许抢占。

在主路由器中配置该命令

配置VRRP定时器

VRRP定时器可以修改通告报文的发送时间

vrrp group-number timers advertise vrrp-advertise-interval

adver_interval为设置定时器adver_timer的时间间隔。MASTER每隔这样一个时间间隔,就会发送一个advertisement报文以通知组内其他路由器自己工作正常,

vrrp-advertise-interval的取值范围为0~254。

在主路由器上配置

配置VRRP定时学习功能

配置此命令的路由器会学习发送通告报文时间,进而计算出失效间隔,否则默认3s,

这条命令对于上面的配置VRRP定时器,在主路由器中配置了发送时间间隔,那么在备份路由器上就需要配置定时学习功能来计算失效间隔,因为失效间隔是发送时间的3倍

vrrp group-number times learn

VRRP负载均衡在一组VRRP组中,主路由器承担数据转发任务的同时,备份路由器的链路将处于空闲状态,这必然造成了带宽资源的浪费。为了避免这种浪费,使用VRRP负载均衡。

VRRP负载均衡

是通过实现将路由器加入到多个VRRP组实现的,使VRRP路由器在不同的组中担任不同的角色。

如下图所示:RA为组35的主路由器,同时又是组36的备份路由器

RB为组36的主路由器,同时又是组35的备份路由器。

在正常状态下,PC1、PC2走RA,PC3和PC4走RB,但是两个路由器一旦出现故障,就将网关切换到备份路由器。RA和RB可以说是相辅相成的。

VRRP并不具备对流量进行监控的机制,它的负载均衡只是通过使用多个VRRP组来实现的。

网站建设、网站维护及优化、网站托管、微信平台托管、电子商务开发、微信商城开发、局域网构架;电脑及周边产品、办公耗材批发;系统集成、安防监控、门禁系统研发安装!
H3CVSR1000虚拟路由器

为了顺应业界发展趋势及应对虚拟化与云计算技术发展中面临的问题,H3C公司基于成熟的Comware V7平台推出新一代的网络功能虚拟化产品,包括:

1、 H3C VSR 1000虚拟路由器产品,运行在标准服务器的虚拟机上,提供和物理路由器相同的功能和体验,包括路由、防火墙、VPN、QOS、及配置管理等,帮助企业建立安全、统一、可扩展的混合云,同时精简分支基础设施。

2、 H3C SecPath VMSG VLB1000产品,提供完善的服务器负载均衡功能,支持丰富的负载均衡调度算法、健康检查算法、会话保持算法,实现对4-7层服务负载分担,以保证服务的响应速度和业务连续性。

3、 H3C SecPath VMSG VFW1000产品,采用ASPF(Application Specific Packet Filter)应用状态检测技术,能够监控和保护虚拟环境的安全,以避免虚拟化环境与外部网络遭受内外部威胁的侵害,为虚拟化数据中心和云计算网络带来全面的安全防护,帮助企业构建完善的数据中心和云计算网络安全解决方案。

NSX虚拟网络部署实例(四):虚拟路由器配置演示(下)

步骤演示

第一步:为虚拟路由器配置默认路由

1、进入VMware vCenter Server的”Networking & Security“ > ”NSX Edges“后,双击Logical Router ”Distributed-Router“后。

2、在”Manage“ > ”Routing“ > ”Global Configuration“中,点击”Edit“。

3、在弹出窗口输入默认网关地址192.168.10.1。

4、在弹出窗口选择”Publish Changes“。当设置被发布后,配置将会马上生效。

技术转移成功案例简介之一:重庆邮电大学可编程虚拟路由器教研网络项目

技术转移成功案例简介

重庆邮电大学可编程虚拟路由器教研网络项目

技术简介

随着新型网络应用的不断涌现,现有的互联网架构在容量、移动性、安全性、扩展性等方面面临着严峻的挑战。为了从本质上应对这些挑战,研究人员近年来提出了许多关于未来网络体系架构及相关算法。在未来互联网的研究过程中,试验床的角色尤为关键,因为新的网络体系架构和相关算法需要在灵活的试验床上进行试验才能得以验证。而作为实验床核心设备的可编程虚拟路由器平台显得尤为重要。

本项目为重邮提供了3台虚拟化可编程虚拟路由器,用于搭建其内部科研教学网络,为其在实验教学的过程中提供了灵活的环境配置能力,提高了其在科研教学环境中实验环境的供给能力,并提高了其资源的使用率。并且,依赖于我们平台的灵活性和高效处理能力,在本平台上,重邮专门设置了一门网络教学课程,培养学生们的实际操作配置能力。

团队介绍

【SDN/NFV核心设备与系统团队】

该团队依托江苏省未来网络创新研究院组建而成,与中科院计算所团队实现无缝对接,主研未来网络体系结构、核心设备与系统、网络业务应用、无线网络关键技术等,是研究院的重点研究方向。

基于SDN以及云的概念,通过软硬件解耦、虚拟化、统一管理等手段,实现了计算资源、存储资源、带宽资源和内存资源的分配与隔离,为试验床提供了网络虚拟化和设备虚拟化的能力,也为第三方虚拟网络应用提供了标准的、开放的接入平台;同时,其开放了虚拟化路由器控制平面、数据平面和管理平面的编程接口,为试验床提供了可自定义和可扩展的编程能力。团队持续推出了相应的硬件产品以及云服务产品。

重邮可编程虚拟路由器教研网络


NSX虚拟网络部署实例(三):虚拟路由器配置演示(上)

NSX虚拟路由将路由功能分布到软件程序中,设计为虚拟交换机提供路由功能,并且可以在虚拟网络中提供动态路由功能。下面是实验拓扑图,虚拟机DB和虚拟机APP建在同一台物理机192.168.250.51上,分别属于不同物理IP网段。在没有部署虚拟路由器的情况下,如果二台虚拟机需要通信,必须通过三层设备NSX Edge才能互通(红色箭头为二台虚拟机间通信线路)。下面将首先演示删除虚拟机DB和虚拟机APP与NSX Edge的通信连接,然后将二台虚拟机绑定到虚拟网络。

ZStack虚拟路由(VirtualRouter)工作流程

Virtual Router(VR,虚拟路由器)是ZStack中一个特别的网络组件。目前ZStack里大部分的网络服务都是由VR提供的。 VR实际上是一个用于提供服务的特殊虚拟机, 它只在用户虚拟机需要网络服务的时候,由ZStack自动创建和管理。今天我们介绍一下ZStack网络服务里VR的工作流程。 当了解该工作流程后,用户可以更好的规划云环境里的网络服务。一旦出现VR创建失败的情况,也可以更快的定位和解决问题。

首先来看一下上图,这个网络环境是ZStack教程里典型内外网分离的网络模型,可用于EIP,Port Forwarding,Security Group,Load Balancer等。 在这个模型里,我们有两台物理机器,左边一台是计算节点,用于创建各种虚拟机;右边一台用于安装ZStack管控节点(Management Node)。 计算节点有两块物理网卡eth0和eth1(如果用户只有一个网卡eth0,可以通过vlan创建一个eth0.x的网卡替代eth1)。 计算节点的eth0和管控节点的网卡相连,这个网络在ZStack里面被称为管理网络(Management-l2)。该网络可以直接连接到公网(Internet或者公司内网)。 在该模型中,公有网络(Public-l2)和Management-l2公用一个eth0。当然为了更好的网络隔离,用户也可以再增加一个独立等网卡eth2, 用于Public-l2(由于管控节点控制计算节点不需要走公有网络,通过网络分离,也可以保护管控节点的安全)。 在我们的例子中,我们需要确保ZStack管控节点可以正确的连接计算节点的eth0(图中的10.0.0.1/24网段,我们需要给网卡配置上正确的IP地址)。 这样在添加计算节点的时候,ZStack就可以通过计算节点eth0上的IP地址部署对应的Agent。 由于Public-l2和Management-l2共享了一个L2,所以在配置网络环境的时候,我们只需要添加Public-l2和Public-l3。 随后在创建VR的时候,管控节点会和VR上的eth0进行通讯,VR的eth0的IP地址将会从用户设置的Public-l3中的IP Range取出一个。 在本例子里面,Publice-l3的IP Range一定是在10.0.0.1/24中的某一段。用户在设置Public-l3的IP Range的时候必须确保设置的IP地址段 不和已有网络中的网络设备冲突,Gateway和NetMask也需要设置正确。

注意:当用户只使用了单台物理机做ZStack部署,并且单台物理机的eth0是从DHCP拿到的IP地址的时候, 如果把eth0作为Public-l2的网卡设备,需要特别关注ZStack给VR分配的IP地址不能和网络中的其他IP冲突。 如果使用没有连接任何网络的ethX作为单节点的Public-l2的网络设备,那么需要在添加L2 Network之前,给ethX设置上相应的IP地址,否则之后无法连通VR的eth0。

在我们的模型里,计算节点上还有一个eth1用于用户VM的私有网络。该eth1可以通过交换机和同一个Cluster内的其他计算节点的eth1相连。 当ZStack添加计算节点的时候,会通过Ansible把KVM Agent安装到计算节点上。当ZStack添加Publice-L2和Private-L2的时候, 会在计算节点上给eth0和eth1创建对应的网桥br_eth0和br_eth1。根据网桥工作原理,ZStack还会把eth0和eth1上的IP地址转移到br_eth0和br_eth1上。

添加完成所有的资源,用户在创建第一个VM的时候,如果用户VM使用了VR的任何一种网络服务(DHCP、DNS、SNAT、Port Forwarding、EIP、Load Balancer), ZStack会自动创建一个VR VM。这也是创建第一个VM的时候速度比较慢的原因之一。

ZStack创建VR VM的过程如下:

ZStack 根据 VR 模版创建一个VR VM,该VM有两个网卡,一个连接到br_eth0负责连接管控节点和公网(如果有独立的Public-l2,会多创建一个网卡),另一个连接到br_eth1负责连接用户VM。

ZStack 给VR指定两个特定的IP地址并注入VR VM中。

VR 启动的最后会调用一个初始化的脚本把注入的IP地址设置到eth0和eth1上面

ZStack管控程序在创建VR之后就会轮询的用ssh尝试连接VR

如果ssh连接成功,ZStack管控程序就会通过Ansible 安装和部署VR的管控程序

VR Agent启动后,ZStack管控程序就会通过HTTP post命令给VR,例如设置即将启动的用户VM的IP地址,DNS之类。

VR启动成功后,ZStack就会创建用户VM。用户VM的eth0通过br_eth1的网桥连接到VR的eth1上,并且可以和未来的用户VM通讯。 用户VM访问公网的时候,通过VR的SNAT服务中转。用户VM需要EIP、Port Forwarding还有Load Balancer等服务的时候,也都是在VR上进行对应的配置。

用户在使用ZStack的时候,有时候会遇到VR创建失败的情况。经过分析,其中大多数失败原因都是因为网络配置导致的。具体来看,VR启动失败的故障可能有:

创建VR VM失败:找不到合适的Host。可能是没有处于Connected状态的Host,或者Host上的空闲资源(CPU,内存)不足以启动VR。

VR 操作系统启动失败:虚拟化软件错误或者硬盘连接错误(NFS网络不稳定)

ZStack ssh VR 失败:ZStack管控节点无法连接VR。通常原因有:IP地址配置不对;交换机没有允许对应的IP连接;使用了特别的vlan,但是交换机没有设置Truck模式。

ZStack Ansible部署VR Agent失败:部署VR的时候可能会连接Internet下载VR需要的系统库,但是这步在0.9之后就不需要从互联网上下载系统库了,所以通常不会出错。

VR Agent 启动失败:可能是使用了不匹配的VR Image。例如ZStack 0.9 需要使用 VR 0.9版本的Image,如果用户没有更新VR Image的话,会导致HTTP 404的错误。

上述错误中,最常见的错误是3。大家可以对照解决。

在VR启动后,用户再启动同一Private L3上的VM的时候ZStack通常不会再次创建VR(除非是使用了独立的负载均衡功能)。 如果在用户VM运行的过程中,发生了VR连接错误,它的影响会是什么?我们该如何恢复呢?下表例举了在多计算节点和不同存储类型的情况下如何恢复失联VR的方法。VR失效原因VR失效影响恢复VR方法VR VM网络失联,但是virsh list还可以看到VR 是running状态扁平网络:外网通讯中断、无法创建新VM、内网连接不影响;扁平网络:无法创建新VM,网络连接不影响从ZStack UI中的Virtual Router中delete VR VM, 再去Instance的界面重新创建一个用户VMVR VM 所在Host挂掉,之后手动重启Host非扁平网络:外网通讯中断、无法创建新VM;扁平网络:无法创建新VM,网络不影响从ZStack UI中的Virtual Router中再次Start VR VMVR VM 所在Host挂掉,之后Host无法重启,使用网络共享主存储非扁平网络:外网通讯中断、无法创建新VM、内网不影响;扁平网络:无法创建新VM,网络连接不影响使用zstack-cli UpdateVmInstance 把VR VM的状态改成 Stopped,再从ZStack UI中的Virtual Router中再次Start VR VMVR VM 所在Host挂掉,之后Host无法重启,使用本地主存储非扁平网络:外网通讯中断、无法创建新VM;扁平网络:无法创建新VM,网络连接不影响使用zstack-cli UpdateVmInstance 把VR VM的状态改成 Stopped,从ZStack UI中的Virtual Router中delete VR VM,然后再去Instance的界面创建一个新的用户VM

未来ZStack的VR还会提供HA的功能,当一个VR失效的时候,会自动启动一个VR接管之前VR的网络服务。 通常虚拟路由已经可以满足大多数用户正常的网络要求,但是如果用户对网络性能有更高的要求,ZStack也可以集成商业虚拟机交换机,甚至是物理交换机的网络服务。 用户可以在创建L3网络的时候,选择不同网络服务的提供方。


【技术干货】重启OpenstackJuno版本的虚拟路由

一、通过neutron router-list命令查看router04的路由器对应的UUID。

UUID为:18a9989c-112d-4ec0-b471-f71a6093428a

二、查看路由所处位置:

neutron l3-agent-list-hosting-router router04 或者router04_UUID。

三、显示虚拟路由router04详细信息:

neutron router-show router04或者router04_UUID。

这里我们会获取这个虚拟路由的ID:

18a9989c-112d-4ec0-b471-f71a6093428a

四、连接到node-1服务器:

查看这个虚拟路由器的ip地址信息:

ip netns exec qrouter-18a9989c-112d-4ec0-b471-f71a6093428a ip a

五、关闭这个虚拟路由器:

neutron router-update18a9989c-112d-4ec0-b471-f71a6093428a

--admin_state_up False

六、开启虚拟路由器:neutron router-update 18a9989c-112d-4ec0-b471-f71a6093428a

--admin_state_up True

七、重新查看这个虚拟路由器的ip地址信息:

ip netns exec qrouter-18a9989c-112d-4ec0-b471-f71a6093428a ip a

八、这个文章中的两个关键命令是重启虚拟路由器及其接口的语句:

neutron router-update 18a9989c-112d-4ec0-b471-f71a6093428a --admin_state_up False和

neutron router-update 18a9989c-112d-4ec0-b471-f71a6093428a --admin_state_up True

当一个项目中的虚拟路由器发现外网接口是DOWN或者不能正常工作的时候,可以通过这个命令实现重启,使虚拟路由器的接口恢复正常的工作,项目中的虚拟机系统网络正常。


虚拟路由器

编辑\电子义务维修基地 宣传部 刘逸伦 杨瑞佳

虚拟路由器

Virtual Router

解释:在软、硬件层实现物理路由器的功能仿真,属于一种逻辑设备。每个VR应该具有逻辑独立的路由表和转发表,这样就使不同VPN间的地址空间可以重用,并保证了VPN内部路由和转发的隔离性。

简介: 虚拟路由器以虚求实最近,一些有关IP骨干网络设备的新技术突破,为将来因特网新服务的实现铺平了道路。虚拟路由器就是这样一种新技术,它使一些新型因特网服务成为可能。通过这些新型服务,用户将可以对网络的性能、因特网地址和路由以及网络安全等进行控制。以色列RND网络公司是一家提供从局域网到广域网解决方案的厂商,该公司最早提出了虚拟路由的概念。

在一个物理路由器上,可以形成多个逻辑上的虚拟路由器,每个虚拟路由器都单独地运行各自的路由协议实例,并且都有自己专用的I/O端口、缓存、地址空间、路由表和网络管理软件。虚拟骨干路由器,可以为客户提供成本低廉的专用骨干网控制和安全管理功能。控制和管理虚拟路由设备的软件是采用模块化设计的,如果这些软件运行在真正的、多进程的操作系统上(如:UNIX),那么它还支持多实例,也就是说它可以同时支持多个虚拟路由器。每个虚拟路由器的进程与其它路由器的进程都是相互分开的,其使用的内存也受到操作系统的保护,从而保证了数据的高度安全性;同时,还消除了由于软件模块的不完善所造成的与其它虚拟路由器之间的数据碰撞的可能性。

许多载波级路由器与高速的SONET/SDH网络连接进行分组转发时,都是靠硬件来实现线速性能的。而对于使用虚拟路由功能的系统而言,这些硬件功能都可以被逻辑细分;还可以灵活地将其配置给某一个专用的虚拟路由器。具有虚拟路由功能的软件模块,可以完全控制数据分组发送和接收的物理端口及交换路径。虚拟路由器的分组缓存和交换表的大小,受到其所占用资源大小的限制,之所以这样做,是为了保证虚拟路由器之间不会相互影响。虚拟路由技术使得每个虚拟路由器各自单独地执行路由协议软件实例(如:OSPF,BGP)和网络管理软件的实例(如:SNMP或命令行),因此,用户对每个虚拟路由器都可以独立地进行监视和管理。独立运行网络协议实例,使得每个虚拟路由器都拥有一个完全独立的IP地址域,相互之间不会产生任何冲突。每个虚拟路由器都可以作为一个单独运行的实体来进行管理。其提供的基于用户的安全模块,可以保证属于某个虚拟路由器的所有网络管理功能和信息都只对具有权限的用户开放。另外,每个虚拟路由器的分组转发路径也都是相互独立的,这使得管理员可以分别为每个虚拟路由器单独配置性能。

通过虚拟路由器,大的通信突发数据流只会对本路由器产生影响,而不会影响到其它的路由器,从而为终端用户能够得到稳定的网络性能提供了保障。此外,虚拟路由器同时还提供独立的策略和IETFDS(Internet Engineering Task Force Differentiated Service)能力,使虚拟路由器可以为终端用户提供完全的客户化服务。通过给虚拟路由器的I/O端口进行配置,可以对接收的分组进行计数,这样就能够保证数据量不会超越预先确定的协议;同时虚拟路由器还可以根据数据分组的服务等级不同,将其数据分组分配到不同的队列中,以实现不同的服务质量。

目前,虚拟路由器已经得到了实际的应用。Nortel的Accelar1000路由交换机就使用虚拟路由端口在VLANs之间路由,虚拟路由器端口能够配置每个VLAN,在IP子网或VLANs之间实现路由。Accelar1000路由交换机支持虚拟路由器端口,且不降低其性能。

如果你觉得我们的推送还不错,欢迎您将我们推荐给他人,欢迎您将此图文消息转发到朋友圈,也可以将我们的公众号推荐给您的亲人或朋友

日益重要的虚拟路由器商品PC可满足基本需求

现在,“虚拟”事物的概念已经被大家所熟悉。例如最常见的虚拟机,在用户看来它们就像 是真正的计算机,它具有实际的硬盘驱动器和内存。然而,在现实中,这些元素并没有真实存在。只是,虚拟操作系统环境(通常是指VMware vSphere、Citrix Xen Server或者微软Hyper-V)向我们呈现了这些元素。

虚拟路由器也是如此。虚拟路由器具有物理路由器的所有组成部分,并且,它们的工作方式也相同。但是,与虚拟机一样,虚拟路由器并不是具有物理连接且真实存在的设备。

为了理解虚拟路由器,重要的是要了解物理路由器的元素。在其最简单的形式中,路由器通过协议来连接两个局域网,该协议会部署和了解子网络,并在这些子网络之间进行路由,即可路由的协议。此外,路由器还会通过广域网(WAN)连接不同地理位置的子网络。

因此,虚拟路由器需要三个组件:LAN接口、WAN接口和路由代码—用于确定哪些流量需要穿过WAN以及如何相应地对其进行封装。

在20世纪90年代,当WAN路由第一次成为连接不同地理位置的企业LAN的可行方法时,路由世界还处于“狂野西部”阶段。我们可能会认为目前的网络很复杂,但其实就基本路由而言,这已经相当简单,互联网和路由器都是通过IP运行。

连接位置不像第一代路由器那么简单

然 而,对于早期路由器,并没有那么简单。很多这些路由器通过私有WAN(而不是互联网)连接,并且,可能运行很多数量的可路由协议,例如DECNet、 Novell的IPX,甚至还有Banyan VINES。(例如当时,思科的营销团队就声称他们的产品通过十几个协议进行路由)。因此,这可能需要非常高的处理能力和内存来处理这些协议,特别是相对 于当时的计算机能力。

WAN连接也不简单。广域接口通常是高级别数据控制或者帧中继,这些需要专门的硬件接口,而只有专用路由器中才有这种接口。

而现在,我们的世界已经变得非常简单。我们不仅只使用单个协议来路由,而且CPU已经显著提升,内存也是如此--即使是在标准的商用服务器。

限制,WAN接口(通过有线供应商和DSL提供商部署)已经成为又一个标准以太网连接。并且,随着10千兆以太网卡逐渐普及—甚至在现成的服务器中,为处理偶尔超过100 Mbps的互联网速度提供带宽并不是挑战。

商品PC可很好地满足基本路由需求

这意味着什么?现在具有两个以太网连接的商品PC的性能水平已经完全可以满足基本路由器要求(对于简单的分支机构级路由器)。并且,这个商品PC不需要是真实的PC—它可以被虚拟化。

在虚拟化成为主流技术之前,Vyatta公司(现在属于Brocade)就构建了可在标准戴尔PC运行的企业级路由器。而最近,思科、惠普等供应商也在其平 台部署了代码,以允许在单台物理服务器生成多个独立的路由器。这意味着,虚拟化方法将在多租户环境特别有吸引力,因为每个租户都可以拥有专门的路由器,尽 管是虚拟路由器。

(来源:TechTarget中国)
漫谈虚拟路由方案 前言——关于虚拟路由

SDN,抑或是OpenFlow,能否为路由市场开辟一个新的时代?以OpenvSwitch为代表的开源软件交换机,已经推动SDN界发展了一段路程,但是,开源的、基于软件的路由器或路由方案却显得很少。为此,本文介绍了三种比较成体系的虚拟路由方案,并对其中一款做一个架构简述。本文所介绍的虚拟路由方案主要是:OpenContrail,Vyatta,RouteFlow。OpenContrail

OpenContrail包含OpenContrail控制器和OpenContrail虚拟路由。

OpenContrail控制器是一个逻辑上集中但是物理上分布的SDN控制器,为虚拟网络提供管理,控制和分析功能。

OpenContrail vRouter是一个分布式的路由服务,运行在虚拟服务器的hypervisor上,将网络从一个数据中心的网络的物理路由器和交换机扩展成一个虚拟的基于虚拟服务器主机之间通讯的overlay网络。

在OpenContrail中,虚拟路由器和hypervisor紧密结合,借助MPLS over GRE/UDP或VXLAN实现Overlay网络。penContrail的跨数据中心虚拟化是借助MPLS L3 VPN或者EVPN实现的,这种技术比较成熟可靠。OpenContrail虚拟路由器从概念上和现在vSwitch非常接近,但是它提供路由以及更高层的服务(使用vRouter替代vSwitch)。OpenContrail架构:

可以看到其中包含的分布式的控制器和vRouter。OpenContrail提供了完善的东西南北向接口。北向接口提供的REST接口能被供应商使用,或是集成至OpenStack之类的系统(ONOS也提供了类似功能的北向接口);南向接口主要是用于虚拟或物理网络环境的通讯;东西向接口可以与其他控制器通讯。在OpenContrail中使用了多种协议,如BGP、XMPP、Netconf等,在图中可以看到它们的用途。

实际上,控制器包含三个组件,可以部署在不同物理节点上的组件:配置节点、控制节点和分析节点。

配置节点:作为中介,在上层应用和下层基础间提供转换,即利用底层基础实现上层应用的功能。

控制节点:主要负责网络的信息同步,确保环境中的信息一致。

分析节点:提供的功能有点类似于统计分析,把收集回来的系统数据进行分析并进行展示。关于虚拟路由功能:

虚拟路由器是一个用户空间进程,在Linux中运行,是一个本地的,轻量控制平面。并且每个虚拟路由器都会连接至少两个控制节点,提供了路由的冗余。

虚拟路由器主要依靠XMPP接受来自控制节点上的配置状态,并实现这些配置状态,同时兼顾事件和日志等汇报工作。关于XMPP:

XMPP基于XML,原叫Jabber,OpenContrail系统使用XMPP作为一个计算节点和控制节点之间的通用信息总线。
RouteFlow:

RouteFlow是由巴西CPQD公司开发的一套虚拟IP路由服务。目前的网络设备大多是专有软件运行在专有硬件上,价格高昂,难以被编程,一定程度上限制了创新。RouteFlow的开发动机就是在开源路由工具的基础上,结合开放api,在商用硬件上实现一个性能良好的,可定制的开放路由方案。
与传统的路由架构比较:

现有方案:

Routeflow方案:

可以看到,控制逻辑位于控制器,分离数据平面与控制平面。这样一来,硬件架构就可以进一步简化。系统组成:

架构图:

一套完整的Routeflow包含以下几个主要组件:RF-Controller,RF-Server,RF-Slave

系统的关键特性:

1.分离的数据平面与控制平面

2.松耦合的架构

3.不变的路由协议堆栈

4.容易扩展为多控制器

5.支持多种虚拟化技术

6.支持多种交换机RF-Controller:

这是一个基于Openflow控制器的应用,为Openflow API扮演一个proxy的角色,同时与Openflow datapath相互作用,与RF-Server协同工作,接收flow相关的命令并通过OVS为VM传送数据。RF-Server:

它作为Routeflow的核心,它负责的工作主要有管理VM,配置虚拟环境(virtual environment),接收来自RF-Controller的事件(如packet-in),使VM与Openflow交换机关联起来决定VM的数据包的传输,请求在Openflow交换机中安装或修改一个flow。RF-Slave:

它作为daemon在基于Linux的VM中运行,还负责把VM注册到RF-server并配置VM,通过Linux netlink事件监听ARP与IP表的更新,把路由更新(routing updates)转换为flow规则,把ARP entry转换为flow规则,它还可以发送flow updates至RF-Server。

它主要配置接口,启用、关闭路由引擎,执行对接口配置和ARP或路由表的清理。Routeflow所依赖的一些软件:Quagga:

Quagga是由一个日本开发团队编写的一个以GNU版权方式发布的软件。该项目自1996年运作至今。

借助Quagga可以实现一台功能完备的路由器。Quagga能够同时支持RIPv1、RIPv2、RIPng、OSPFv2、OSPFv3、BGP-4和 BGP-4+等诸多TCP/IP协议。

Quagga的特性主要有:

模块化设计:它使用了模块化的架构,一种协议对应一个模块。

运行速度快:基于模块化的架构,速度很快。

可靠性高:可以在工作期间进行故障诊断和修复。

支持Ipv6:Quagga不仅支持Ipv4,还支持Ipv6。

容易上手:Quagga的配置方式和Cisco的IOS几乎完全相同。

在Routeflow中提供基本的路由功能。

软件官网:http://www.nongnu.org/quagga/MongoDB:

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

特点:高性能、易部署、易使用,存储数据非常方便。

主要功能特性有:

面向集合存储

无模式

动态查询

支持索引

支持复制和故障恢复

使用BSON格式储存数据

能自动处理碎片,以支持云计算层次的扩展性

支持Python,Java等多种语言的绑定

在Routeflow中主要为RF-Serve储存数据。

软件官网:https://www.mongodb.org/Vyatta:

Vyatta公司在2002年提供了开源版本的虚拟路由,后来博科收购了Vyatta虚拟路由,后来更是推出了Vyatta控制器,野心不小,目的是能控制所有博科的硬件设备和符合ODL标准的相关硬件。目前Vyatta的相关资料并不多,但是博科提供了Vyatta 5400的60天免费试用。

试用链接:http://www1.brocade.com/forms/jsp/vyatta-download/index.jsp?src=WS&lsd=Banner&lst=BRCD&cn=SDN-GDG-14Q1-EVAL-WS-Vyatta-Download&gcn=&ggeo=

但是,出现了一个社区版fork,叫VyOS,可以参考官网:http://vyos.net/wiki/Main_Page

VyOS支持的平台从KVM、XEN、VMware、Hyper-V到VirtualBox。支持IPv4和IPv6 BGP,OSPFv2及OSPFv3(尚不完全),RIP等,关于详细的特性信息可以看这里:http://vyos.net/wiki/Feature_list结语:

目前市面上可供选择的虚拟路由方案并不多,只有像Juniper收购的OpenContrail,Brocade的Vyatta。所属Juniper的OpenContrail,的确在整体上都是非常给力的,但是Juniper似乎没有好好地维护开源版的文档及软件源,部署有相当大的困难。

Brocade的Vyatta只有60天的试用,始终不是最好的研究对象,但生产环境可以考虑下。也可以考虑使用下由社区主导的VyOS。只剩CPQD的RouteFlow比较适合研究,但是要应用到生产环境就得花点功夫,文档并不多。

在如今的虚拟路由市场,竞争并不健康,在传统网络硬件供应商的割据下,并不利于学术研究。本文在介绍其他两种方案的同时对Routeflow的架构做了大体的介绍,希望本文能对各位研究者有所帮助。

发表评论

您必须才能发表评论!