初窥Huawei_Campus 解决方案(二)
华为NCE自动驾驶网络控制器初体验
关键内容概览
理解
华为园区网解决方案技术集成度非常高,结合多种当前比较时髦的技术,比如VXLAN、业务随行、SDN等。当我们第一次操作控制器完成虚拟园区网解决方案时,会感觉到非常难受,不知道自己在做什么!但当我们把VXLAN、业务随行、SDN等知识点都认真学过一遍之后,你会发现通过控制器完成虚拟园区网网络的部署其实并不是很难,大家在学习华为虚拟园区网解决方案的时候一定要把基础学好,这样就不会觉得特别难了。不看PPT了,凭着自己的感觉写一下对虚拟化园区网的理解,水平有限,如果有理解有误的地方,欢迎大家批评指正。
主机虚拟化与网络虚拟化
虚拟网络与虚拟系统的对应关系:
如果抛开策略联动 、业务随行等功能的配置,最关键的技术点无非就是三个网,从前到后分别是Underlay、Fabric、Overlay。三个网之间一层叠着一层,最底层是underlay,中间Fabric、最上面是overlay,其实这与传统的系统虚拟化结构是类似的,最底层是物理硬件,中间是虚拟化层、最上层是虚拟机,对应关系如下所示:
网络虚拟化 | 系统虚拟化 | 作用 |
---|---|---|
Underlay | 物理硬件,如服务器; | 最底层的支撑 |
Fabric | 中间的虚拟化层,如vmware vsphere | 资源池化 |
Overlay | 虚拟主机 | 虚拟网络 |
- 最底层区别
- 系统虚拟化是最底层是通过物理内存、CPU、硬盘组成
- 网络虚拟化最底层是网络的连通性,保持路径畅通,为Fabirc提供虚拟化的基础,其实就是静态或动态路由;
- 中间层的区别
- 系统虚拟化的中间层是通过kvm、hyper-v、vmware vsphere这种软件实现资源的池化,最终的体现是虚拟的CPU、内存等;
- 网络虚拟化的中间层是通过EVPN + EVPN实现的,最终的体现是虚拟隧道;
- 最高层的区别
- 系统虚拟化的最高层是建立在虚拟CPU、内存之上的虚拟主机;
- 网络虚拟化的最高层是建立是在隧道的基础上,由VXLAN和VRF形成的实例或虚拟网络;
三个网络
Underlay网络的建立概述
在园区网当中,交换机是主角。假如说我们使用A、B、C三台交换机组建underlay网络,我们需要在交换机上的vlan-if接口上配置IP地址,在三个节点上跑OSPF,以保持这三台交换机Lookback接口之间的畅通。为什么这个Lookback接口这么重要?是因为我们后续的Fabirc网络是要调用这个lookback接口的IP地址的,后续所有的“故事”正是从这个Lookback接口开始展开。
Fabirc网络的建立概述:
三个节点的LOOKBACK接口已经能够相互通信了,说明最底层的网络已经组建完成了。我们现在要通过LOOKBACK接口起EVPN进程或称之为MP-BGP,起EVPN的目的是什么呢?其它为了帮助后面的主角VXLAN,我们要将EVPN和VXLAN在配置当中结合起来,怎么是结合起来?简单理解就是VXLAN在需要用到EVPN的时候就要声明一下,EVPN要先于VXLAN运行,前期要收到VNI、VTEP的源IP,将之组成到一起形成3类路由信息发往EVPN的对端,对端的EVPN收到之后将里面的关键信息交给本地的VXLAN进程,然后结合underlay形成的路由最终形成一条VXLAN隧道。从这方面来看,EVPN存在的意义就是为了帮助VXLAN。
Overlay网络的建立概述:
如果说underlay是打地基,那Fabric就是在地基之上修了公路,那么车呢?VXLAN形成的隧道是公路,从这个隧道由VXLAN封装之后通过的数据包就是车呀!在分布式网关当中,这些数据通常都是三层实例产生的,分布式网关之间的通信也是三层实例之间的通信。
另外,不管实例都多少个,我们都可以利用VXLAN形成的隧道进行通信,也就是说一个隧道可以跑多个实例的数据(包括二层、三层实例),而实例之间又可以通过VNI相互隔离,也就说同组实例之间的数据是相互隔离的,我们又可以运行多个组,一个组即对应一个虚拟网络,多个组之间就会有多个虚拟网络,在一个VXLAN隧道当中可以跑多个虚拟网络的数据,这便是一网多用,可见实例和VXLAN结合到一起就可以完成一网多用的功能。
关于隔离
一句话概括一下,无论是集中式还是分布式,业务的隔离是第一是依赖VXLAN当中的NVI(二层或三层),第二是依赖虚拟实例VRF。
谈虚拟化必谈隔离,无论是网络虚拟化、主机虚拟化,主机虚拟化的隔离比较复杂,我们这里面不谈,我们主机主要说一下在虚拟园区网当中是如何形成网络的隔离的呢?这个问题看起来有点复杂,但是实际上并不复杂,我们先回答一个基础的问题,不VLAN是如何在一台物理设备上实现隔离的呢?答案是通过TAG,数据帧在交换机内部都是携带数据帧的,数据帧只会根据自己的TAG在交换机内部有规划的流动。而在虚拟化园区网络当中,依然是这个原理,TAG变成了VNI,广播边界变成了BD。
那你可能会说,通过VLAN也没有实现隔离呀?你看,如果我们一台核心交换机创建两个网络的网关,那么不同的网段通过这台核心交换机就能通信了,这也没实现隔离呀!如果把眼光再抬高一点,你会发现其实已经隔离了,核心交换机本身就是边界,成员就是两个网段,那个网段的数据包只能在这个边界当中活动,那这个边界成本也太高了!不高不高,你难道忘了交换机是支持VRF功能的,如果我们在物理核心交换机配置VRF,然后把两个网段的网关配置在VRF当中,其实也就相当于把两个网段的互联路由压缩进了VRF,变得彻底与根实例隔绝,两个网段的路由转发和数据帧流动全都压缩在一个VRF空间当中,这两个网络对应的VRF其实就是VN,即虚拟网络。在一台物理核心交换机我们可以配置多个VRF,那就是多个VN,不同的VN之间是看不到路由的,就是通过这样的方式实现了VN的隔离。
在分布式网关的场景,网关并不会存在于根实例,而是会存在三层的虚拟实例当中,不同的站点的实例通信时利用三层的NVI,RR上并不需要实例,RR上仅仅需要EVPN进行反射即可,一般还要开启反射IRB这种特殊的路由信息,关于分布式网关在这里面就不详细说了,我们之前专门在章节讨论过分布式网关的大概原理以及配置实现过程。
关于扭曲
我们在使用传统的方法配置网络设备的时候,习惯了第一步、第二步、而且每做一步基础上都会现象产生,虽然敲配置麻烦一些,但胜在踏实。但当我们通过控制器去操作配置的网络的时候,会发现图形界面的设备与我们日常的配置思路并不是完全重合的,我们会感觉到很难受,我把这种难受称为扭曲感,我认为种这种扭曲感产生的关键原因是开发人员与一线工程师之间对知识点理解的巨大差异,所以我们在控制器上进行操作时,最好有一些心理准备。
说到这种扭曲感,我们来举一个例子,就拿配置IP地址这么简单的事情来说,很多网络工程师都认为IP地址是配置在接口上的,配置IP地址一般也会先进入到接口视图;但在内核的开发人员看来,IP地址并不属于某一个接口,而是在内核上全局生效的!
其它
控制器有前有点像铠甲的锻造者,锻造铠甲的各项功能的时候并不需要有人来穿着,无论任何人只要与铠甲完全合体之后就能拥有铠甲的全部功能。我们可以把控制器看做是是铠甲勇士的锻造者,在创建underlay、Fabirc、overlay的时候并不需要有具体的网络实体参与,当我们做完三张网络之后,物理实体只要与这套网络当中角色合体,就能拥有对应的功能。
从整体来看,在控制器上完成三张网络只需要两步:
- 锻造underlay、Fabric是、overlay,三者组成到一起实际上一套完整的网络。
- 找到对应的实体与上述网络完成合体
关于实验
介绍
我们会用这张图为例子来展示并说明华为园区网解决方案的基本配置,这张图使用分布式网关。
如果我们曾经做过VXLAN的分布式网关的话,我们就会大概知道基本的配置思路,第一阶段我们要把underlay配置好,然后配置EVPN,再配置VXLAN的分布式网关,第一阶段完成之后VN就基本形成了。第二阶段就是业务随行、准入之类的了。
1. 规划准备阶段
- 创建站点并导入设备
- 将设备恢复出厂设置之后加入到站点当中
- 定义vxlan的资源池:与VXLAN相关的VLAN、BD、VNI(三者尽量保持一致)
- 定义全局资源池:VXLAN域内设备的环回接口地址池、互联VLAN地址池、互联IP
- 创建radius服务器、创建Portal服务器、做portal、mac & 8021q的认证模板
从前期规划阶段就感觉到了扭曲感,明明我们还没有开始配置VXLAN,但已经把VXLAN的关键参数规划好了。上面这些配置有点儿难以理解的地方是在创建认证服务器和认证模板这个地方,但如果你完整的做过AAA相关的实验,那这个地方也不会觉得陌生。我们之前的传统的认证都是在网络设备上配置模板,通过模板指向服务器,在当前campus当中,这一步变得非常简单,控制器只能充当radius和portal服务器,并且我们在控制上创建模板,当我们给网络设备规定好角色之后,那认证相关的配置就会自动生成并下发到策略执行点设备。
园区网内部的设备多种多样,我们在创建AAA服务器的时候也要一块创建两个,基于网页的portal服务器和radisu服务器,portal服务器主要完成网页的认证,而radius服务器主要完成802.1x和mac相关的认证。同样的,服务器有两个,那认证模板同时也要有两个。
那还有一个问题,radius和portal服务器创建完成了,那数据呢?radius服务器该有用户呀!创建用户是第三阶段的事情,当然如果你现在就做也可以,但建议还是到第三阶段再操作。由于控制器就是raidus服务器,我们创建用户的并不在raidus配置视图,而在用户管理视图,这不重要了,重要的是你要理解,虽然我们在别的视图当中创建了用户,但实际上终端上线的时候得先联系的radius模块,然后radius模块再去查找用户数据库。
这一阶段是最简单,但是也很重要,有一些关键的地方需要注意一下:
- 一定要将设备恢复出厂设置,否则后续的设备上线很有可能遇到问题。
- 导入设备之后别忘了把设备加入到站当中当中
- 以上所有操作基本上都属于规划阶段,网络设备还没上线,所以也看不出什么效果!检查一遍,看别忘了点击“确认”就可以了
2. 网络设备上线
我们有七台设备需要上线,核心设备一台,两台汇聚、两台接入、还有两台旁挂AC,那如何让他们上线?这里说的上线到底指什么?网络设备的上线就是指这些设备能主动联系到控制器,那怎么样才能让他们主动联系到控制器呢?这其实得借助DHCP服务器, 所以你看图中会有一台AR1设备,AR1设备并不被控制器纳管,这个AR1有点像BIOS芯片的作用,完成的都是最基础的“自举”工作,那AR上要做一些什么配置呢?
- AR1的基础基础
- DHCP服务器,要通过选项指定控制器的地址
- 保证七台设备的dhcp discover报文都能顺利的到达AR1
3. VXLAN_Fabirc
Fabric 这个新名词让人很迷惑,什么是Fabric?fabric又如何理解呢?
- 我们前面已经把所有的设备都上线了,那每台设备的角色是什么呢?搞成什么架构呢?目前还不知道,所以我们要在控制器上先整体的架构先搞出来,哪一台设备当spine,哪一台当leaf,使用集中式网关还是分布式网关,都要从Fabric当中进行规定。
- 把整体架构搞完之后,还要规定underlay的一些配置,比如说OSPF和BGP的配置(如果是分布式还得规定哪一台是RR),也得在Fabric这一小节进行规定一下,此外还会用到我们在第一阶段规划的资源池,这一步完成之后是会下发的,我们就可以进入到设备当中查看一下了,比如OSPF、BGP、EVPN、互联VLAN啥的。
- 外部网络实例:上述搞的仅仅是域内网络,那园区网还得上网呀,所以我们接下来还要搞一下外部网络,在我们这张图上外部网络已经设置好了,我们仅仅需要在Border设备上与之对接就可以了,但值得一提的是在与外部网络对接的话我们可以把与外部网络对接的VLAN接口或三层子接口直接以三层独占的方式创建在三台实例当中,这个实例是什么实例?其实这个实例就是指的业务实例,我们明明还没有搞业务实例呀?没错,我们还没有开始搞业务实例,当前我们可以先把业务实例所对应的外部网络创建好,创建好之后并不会部署,要在业务实例部署的时候这里面的配置的外部外部实例才会一块儿部署下去。假设我们业务VN有OA和RD,那当前的外部网络有两条线路,A电信、B联通,我们希望OA走电信,RD走联通,那我们在部署外部网络的时候就可以在控制器上创建OA实例,然后把与电信对接的三层接口放到OA实例当中;再创建RD实例,将与联通对接的实例放到这个RD当中,注意,在这里面我们还可以顺便把静态路由做下,出口设备上网都会默认路由的呀!很好理解。注意,再强调一遍,我们这仅仅在控制器上创建,目前这些配置并没有直接下发部署。
- DHCP实例:在上一个步骤当中,我们已经在逻辑上创建了两上实例,接下来干什么呢?对了,业务的网段也就是我们上一个步骤所说的RD和OA两个部门的业务DHCP还没有设置,其实已经设置好了,业务网段的DHCP服务器也已经在AR1上配置好了,我们只需要在Border设备上通过三层接口与之对接就可以了,创建好之后,你会发现它也是以实例的方式存在于Border设备上的。值得一提的是,这一步做完之后是直接下发的,我们可以去设备上验证一下;
- 接入管理:在Fabric当中我们还要搞接入管理,这个接入管理其实非常简单,就是让你选择一下“认证控制点(认证执行点)”,我们选择图中的ACC1和ACC2,没错,就是两台边缘设备,这意味着将我们在第一个阶段配置地两个认证模板下发到这两台设备;在选择完认证控制点之后,还会让你选择一下在哪些接口上激活认证?这个接口连接是什么设备?使用哪个模板?这一步没啥好说的,哪个接口上连接了设备就在哪个接口上激活,激活意味什么呢?激活在哪些接口上调用mac或802.1认证。
4. VXLAN_VN
终于到了VXLAN的配置!我们在使用的分布式的网关,如果我们前面已经基本理解了VXLAN分布式网关,这一小节的配置就会非常简单了。
我们前面已经提过了,我们有两个业务OA和RD,那我们就创建两组VN,注意,我们说的是创建两组VN,而不是两个VN,这句话很好理解。假如说A、B、C三出站点当中都有RD业务的话,那当我们创建了RD之后,选三个站点,三个站点上就会同时创建RD,RD是以三层VPN实例的方式存在于A、B、C三个站点上的。、
- 基础配置:在创建VRF的时候,还会让你选择第三阶段创建的DHCP资源和外部网络资源,DHCP是通用的,直接中继到AR1设备上;而外部网络你还记得吗?我们也可以创建了RD和OA,那个还没部署呢!就等着这一步进行调用,调用之后一块下发进行部署,此时的RD和OA与外部网络之间是是什么关系呢?取决我们在创建外部网络的时候指定的模式,如果是三层独占,那大概就是虚拟网络与VN是两个单独的VRF,相互之间通过内部接口通信。
- 指定用户网关,我们已经创建好VN了,现在指定VLAN,也要把网关也指定上;DHCP因为在AR1上所以我们直接选择中继。实际上这个网关接口在创建好之后自动加入了VN实例当中。
- 用户接入,这一步骤没啥好说的,就是用户从哪些设备进行接入,就是我们在第三阶段在“接入管理”当中的配置,注意这里的VLAN选择“动态VLAN”,动态VLAN指的是当前不加入任何VLAN,当用户认证完成之后下发VLAN。
- 配置VN互通,其实是ACC当中的VRF之间相互指路由,在VRF路由表当中的IBGP路由条目当中体现。
5. 业务随行及准入认证
-
业务随行(就是搞一搞安全策略)
- 创建安全组RD、OA
- 安全组之间的策略搞一搞,这个地方要选择设备(策略执行点设备)
- 缺省策略:禁止
- 反向规则:打开,别忘记点击部署
-
准入认证(实际上创建到了RADIUS数据库当中,其实就是创建一个关系型数据库)
-
创建用户组和用户
-
认证规划把常用的协议全给它选上
-
创建授权结果:将安全组,VLAN关联上
-
创建授权规划:将授权结果、与用户关联上(别忘记把账号匹配给选上)
用户账号 用户组 VLAN 安全组(表示策略) IP地址 张三 OA 12 OA 目前没有 李四 RD 14 RD 目前没有
-