-
1.单向晶闸管检测可用万用表的R×1k或R×100挡测量任意两极之问的正、反向电阻,如果找到一对极的电阻为低阻值(100Ω~lkΩ),则此时黑表笔所接的为控制极,红表笔所接为阴极,另一个极为阳极。晶闸管共有3个PN结,我们可以通过测量PN结正、反向电阻的大小来判别它的好坏。测量控制极(G)与阴极[C)之间的电阻时,如果正、反向电阻均为零或无穷大,表明控制极短路或断路;测量控制极(G)与阳极(A)之间的电阻时,正、反向电阻读数均应很大;测量阳极(A)与阴极(C)之间的电阻时,正、反向电阻都应很大。2.检查发光数码管的好坏先将万用表置R×10k或R×l00k挡,然后将红表笔与数码管(以共阴数码管为例)的“地”引出端相连,黑表笔依次接数码管其他引出端,七段均应分别发光,否则说明数码管损坏。3.测整流电桥各脚的极性万用表置R×1k挡,黑表笔接桥堆的任意引脚,红表笔先后测其余三只脚,如果读数均为无穷大,则黑表笔所接为桥堆的输出正极,如果读数为4~10kΩ,则黑表笔所接引脚为桥堆的输出负极,其余的两引脚为桥堆的交流输入端。4.双向晶闸管的极性识别双向晶闸管有主电极1、主电极2和控制极,如果用万用表R×1k挡测量两个主电极之间的电阻,读数应近似无穷大,而控制极与任一个主电极之间的正、反向电阻读数只有几十欧。根据这一特性,我们很容易通过测量电极之间电阻大小,识别出双向晶闸管的控制极。而当黑表笔接主电极1。红表笔接控制极时所测得的正向电阻总是要比反向电阻小一些,据此我们也很容易通过测量电阻大小来识别主电极1和主电极2。5.判断晶振的好坏先用万用表(R×10k挡)测晶振两端的电阻值,若为无穷大,说明晶振无短路或漏电;再将试电笔插入市电插孔内,用手指捏住晶振的任一引脚,将另一引脚碰触试电笔顶端的金属部分,若试电笔氖泡发红,说明晶振是好的;若氖泡不亮,则说明晶振损坏。6.判别结型场效应管的电极将万用表置于R×1k挡,用黑表笔接触假定为栅极G的管脚,然后用红表笔分别接触另外两个管脚,若阻值均比较小(5~10 Ω),再将红、黑表笔交换测量一次。如阻值均大(∞),说明都是反向电阻(PN结反向),属N沟道管,且黑表笔接触的管脚为栅极G,并说明原先假定是正确的。若再次测量的阻值均很小,说明是正向电阻,属于P沟道场效应管,黑表笔所接的也是栅极G。若不出现上述情况,可以调换红、黑表笔,按上述方法进行测试,直至判断出栅极为止。一般结型场效应管的源极与漏极在制造时是对称的,所以,当栅极G确定以后,对于源极S、漏极D不一定要判别,因为这两个极可以互换使用。源极与漏极之间的电阻为几千欧。7.三极管电极的判别对于一只型号标示不清或无标志的三极管,要想分辨出它们的三个电极,也可用万用表测试。先将万用表量程开关拨在R×100或R×1k电阻挡上。红表笔任意接触三极管的一个电极,黑表笔依次接触另外两个电极,分别测量它们之间的电阻值,若测出均为几百欧低电阻时,则红表笔接触的电极为基极b,此管为PNP管。若测出均为几十至上百千欧的高电阻时,则红表笔接触的电极也为基极b,此管为NPN管。在判别出管型和基极b的基础上,利用三极管正向电流放大系数比反向电流放大系数大的原理确定集电极。任意假定一个电极为c极,另一个电极为e极。将万用表量程开关拨在R×1k电阻挡上。对于:PNP管,令红表笔接c极,黑表笔接e极,再用手同时捏一下管子的b、c极,但不能使b、c两极直接相碰,测出某一阻值。然后两表笔对调进行第二次测量,将两次测的电阻相比较,对于:PNP型管,阻值小的一次,红表笔所接的电极为集电极。对于NPN型管阻值小的一次,黑表笔所接的电极为集电极。8.电位器的好坏判别先测电位器的标称阻值。用万用表的欧姆挡测“1”、“3”两端(设“2”端为活动触点),其读数应为电位器的标称值,如万用表的指针不动、阻值不动或阻值相差很多,则表明该电位器已损坏。再检查电位器的活动臂与电阻片的接触是否良好。用万用表的欧姆挡测“1”、“2”或“2”、“3”两端,将电位器的转轴按逆时针方向旋至接近“关”的位置,此时电阻应越小越好,再徐徐顺时钟旋转轴柄,电阻应逐渐增大,旋至极端位置时,阻值应接近电位器的标称值。如在电位器的轴柄转动过程中万用表指针有跳动瑚象,描踢活动触』点接触不良。9.激光二极管损坏判别拆下激光二极管,测量其阻值,正常情况下反向阻值应为无穷大,正向阻值在20kΩ~40kΩ。如果所测的正向阻值已超过50kΩ,说明激光二极管性能已下降;如果其正向阻值已超过90kΩ,说明该管已损坏,不能再使用了10.判别红外接收头引脚万用表置R×1k挡,先假设接收头的某脚为接地端,将其与黑表笔相接,用红表笔分别测量另两脚电阻,对比两次所测阻值(一般在4~7k Q范围),电阻较小的一次其红表笔所接为+5V电源引脚,另一阻值较大的则为信号引脚。反之,若用红表笔接已知地脚,黑表笔分别测已知电源脚及信号脚,则阻值都在15kΩ以上,阻值小的引脚为+5V端,阻值偏大的引脚为信号端。如果测量结果符合上述阻值则可判断该接收头完好。11.判断无符号电解电容极性先将电容短路放电,再将两引线做好A、B标记,万用表置R×100或R×1k挡,黑表笔接A引线,红表笔接B引线,待指针静止不动后读数,测完后短路放电;再将黑表笔接B引线,红表笔接A引线,比较两次读数,阻值较大的一次黑表笔所接为正极,红表笔所接为负极。12.测发光二极管取一个容量大于100“F的电解电容器(容量越大,现象越明显),先用万用表R×100挡对其充电,黑表笔接电容正极,红表笔接负极,充电完毕后,黑表笔改接电容负极,将被测发光二极管接于红表笔和电容正极之间。如果发光二极管亮后逐渐熄灭,表明它是好的。此时红表笔接的是发光二极管的负极,电容正极接的是发光二极管的正极。如果发光二极管不亮,将其两端对调重新接上测试,还不亮,表明发光二极管已损坏。13. 光电耦合器检测万用表选用电阻R×100挡,不得选R×10k挡,以防电池电压过高击穿发光二极管。红、黑表笔接输入端,测正、反向电阻,正常时正向电阻为数十欧姆,反向电阻几千欧至几十千欧。若正、反向电阻相近,表明发光二极管已损坏。万用表选电阻R×1挡。红、黑表笔接输出端,测正、反向电阻,正常时均接近于∞,否则受光管损坏。万用表选电阻R×10挡,红、黑表笔分别接输入、输出端测发光管与受光管之间的绝缘电阻(有条件应用兆欧表测其绝缘电阻,此时兆欧表输出额定电压应略低于被测光电耦合器所允许的耐压值),发光管与受光管问绝缘电阻正常应为∞。14.光敏电阻的检测检测时将万用表拨到R×1kΩ挡,把光敏电阻的受光面与入射光线保持垂直,于是在万用表上直接测得的电阻就是亮阻。再把光敏电阻置于完全黑暗的场所,这时万用表所测出的电阻就是暗阻。如果亮阻为几千欧至几十干欧,暗阻为几至几十兆欧,说明光敏电阻是好的。15.测量大容量电容的漏电电阻用500型万用表置于R×10或R×100挡,待指针指向最大值时,再立即改用R×1k挡测量,指针会在较短时间内稳定,从而读出漏电电阻阻值。
-
如图,R1是公司的出口路由器,如果我们希望实现PC1可以访问Internet上的server1,通常是在R1和ISP设备上配置静态路由或者跑动态路由协议,但是运营商的路由器不可能给我们配置,另一个原因就是企业都是使用的是私网地址,运营商在路由器上写了去往所有的私网地址的黑洞路由,所以无法访问的。二、补充公网地址:由运营商分配给用户,不同的站点之间是不可以重复使用,公网地址可以用来上网,使用是付费的私网地址:用户自己规划,不同的站点之间是可以重复使用的,不可以用来上网,使用是免费的要想实现访问server1必须在出口路由器配置NAT(网络地址转换)技术,方能访问NAT也分为几种1. NO-PAT 2. NAPT 3.Easy-IP(一)NO-PAT第一种NAT叫做NO-PAT,地址池转换模。我们需要向运营商购买公网IP地址,也就是购买宽带,企业购买的宽带会比家庭用户的费用会高,因为企业的公网IP地址是静态的,家庭用户的是动态的。购买到的公网IP地址需要配置在NAT地址池中。比如我们向中国电信购买了2个公网IP地址,202.1.1.100-202.1.1.101,那么我们需要把这两个IP地址配置到NAT地址池中除此之外,还需要配置ACL,最后在出口(也就是连接ISP的接口调用)那么这里为什么需要配置ACL呢?在实际环境当中,并不是所有的员工需要上网,因为我们需要通过ACL把不需要上网的流量给筛选掉。这样配置完就可以了上网了但是有一个问题:no-pat是有多少个主机需要上网就需要用掉多少个公网IP地址,如果有100台主机需要上网,那么就需要申请100个公网IP地址,这肯定是不可能的。所以这种NAT现网中用的非常少(二)NAPT第二种NAT叫做NAPT,在转换IP地址的时候一起把传输层的端口号也一起转换了,这样可以实现,即使只有一个公网地址也可以让大量的主机同时上网,因为我们端口号范围是0-65535在配置的时候只需要在后面去掉no-pat这个参数即可,其他配置方式和no-pat一模一样(三)Easy-IP第三种NAT是Easy-IP,上面两种方式有一个共同的特点,那就是需要配置NAT地址池,换言之,需要有额外的公网IP地址,而且还得是静态的,在一些场景下,可能满足不了这个条件。比如说家庭场景或者说小型门店,肯定不会去申请静态的公网IP地址,因为这样费用太高了当这种情况就可以配置Easy-IP了,Easy-IP和NAPT一样,转换IP地址和端口号,适用于没有静态公网地址的场景,像我们的PPPoE就是这一种场景Easy-IP的原理为:在转换地址的时候直接转换出接口的IP地址,因为出口地址也属于公网地址,配置也是很简单当然,也需要和NAPT一样,需要先配置好ACL综上所述三种NAT方式解决的问题是如何让内部主机访问Internet上的主机,反之,要是Internet上的用户想主动访问内部的主机,比如HTTP服务器,该如何实现呢?
-
VPN(Virtual Private Network,虚拟专用网)是一种在公用网络上建立专用网络的技术。它之所以称之为虚拟网,主要是因为VPN的两个节点之间并没有像传统专用网那样使用端到端的物理链路,而是架构在公用网络如Internet之上的逻辑网络,用户数据通过逻辑链路传输。按照VPN协议分,常见的VPN种类有:IPsec、SSL、GRE、PPTP和L2TP等。其中IPsec是通用性较强的一种VPN技术,适用于多种网络互访的场景。IPsec VPN是指采用IPsec实现远程接入的一种VPN技术,通过在公网上为两个或多个私有网络之间建立IPsec隧道,并通过加密和验证算法保证VPN连接的安全。IPsec VPN保护的是点对点之间的通信,通过IPsec VPN可以在主机和主机之间、主机和网络安全网关之间或网络安全网关(如路由器、防火墙)之间建立安全的隧道连接。其协议主要工作在IP层,在IP层对数据包进行加密和验证。相对于其他VPN技术,IPsec VPN安全性更高,数据在IPsec隧道中都是加密传输,但相应的IPsec VPN在配置和组网部署上更复杂。IPsec的工作原理大致可以分为4个阶段:识别“感兴趣流”。网络设备接收到报文后,通常会将报文的五元组等信息和IPsec策略进行匹配来判断报文是否要通过IPsec隧道传输,需要通过IPsec隧道传输的流量通常被称为“感兴趣流”。协商安全联盟(Security Association,以下简称SA)。SA是通信双方对某些协商要素的约定,比如双方使用的安全协议、数据传输采用的封装模式、协议采用的加密和验证算法、用于数据传输的密钥等,通信双方之间只有建立了SA,才能进行安全的数据传输。识别出感兴趣流后,本端网络设备会向对端网络设备发起SA协商。在这一阶段,通信双方之间通过IKE协议先协商建立IKE SA(用于身份验证和密钥信息交换),然后在IKE SA的基础上协商建立IPsec SA(用于数据安全传输)。数据传输。IPsec SA建立成功后,双方就可以通过IPsec隧道传输数据了。IPsec为了保证数据传输的安全性,在这一阶段需要通过AH或ESP协议对数据进行加密和验证。加密机制保证了数据的机密性,防止数据在传输过程中被窃取;验证机制保证了数据的真实可靠,防止数据在传输过程中被仿冒和篡改。如图所示,IPsec发送方会使用加密算法和加密密钥对报文进行加密,即将原始数据“乔装打扮”封装起来。然后发送方和接收方分别通过相同的验证算法和验证密钥对加密后的报文进行处理得到完整性校验值ICV。如果两端计算的ICV相同则表示该报文在传输过程中没有被篡改,接收方对验证通过的报文进行解密处理;如果ICV不相同则直接丢弃报文。MPLS VPN:使用场景在运营商骨干网络上提供L3VPN业务,利用BGP协议发布路由信息,在骨干网内部使用MPLS转发VPN报文。概念CE(Consumer Edge):用户边缘路由器,与运营商网络直接相连的路由器。感知不到VPN的存在,一个CE设备只能对应一个VPN主要功能就是将VPN客户的路由通告给PE,以及从PE学习同一个VPN下其他站点的路由PE(Provider Edge):运行商(骨干网)边缘路由器,与用户网络相连的路由器。负责VPN业务接入,处理VPN-IPV4路由使用VRF对VPN客户进行隔离通过与客户设备CE进行路由协议,以便获取客户路由,并将路由生成VPNv4前缀放入MPLS VPN骨干网传递到对端PEP(Provider):骨干网路由器,与PE或其他P相连。负责快速转发数据不知道VPN客户网络,以及客户的路由。只负责在骨干网内运载标签数据VRF(Virtual Router Forwarding):PE上的虚拟路由器(路由进程)。一张独立的路由表,包括独立的地址空间一组归属于这个VRF的接口的集合,一组只用于本VRF的路由协议一个VPN对应一个VRFRD(Route-Distinguisher):路由标识符BGP进程用该字段区分不同VPN,有了RD后就可以解决不同VPN之间的IP地址重叠问题,VPN用户的IP地址不再是整个系统全局唯一,而是VPN内唯一即可。RT(Route-Target)每个VRF表达自己的路由输出和输出方式,主要用于控制VPN路由的发布和安装策略。
-
我还真的去输入想要创作的第一个进去了,真的是无语
-
一位有着蓝紫色长发的女子,长发飘飘。每一根发丝看上去都是那样的柔顺,头上长着一对粉嫩的兔耳,额前像有一块红宝石,闪闪发光。她是一个漫画中的人,高高瘦瘦,落落大方,穿着梦幻紫色的连衣裙,一双水晶似的高跟鞋引人注目,粉色的双眼中又有些妩媚。双手在胸前祈祷,若有所思。整个人飘在半空中。
yd_223960923vip
发表于2022-12-12 19:56:39
2022-12-12 19:56:39
最后回复
yd_223960923vip
2022-12-12 19:56:39
38 0 -
使用场景IPsec VPN:连通的是两个局域网,如分支机构与总部(或华为云VPC)之间、本地IDC与云端VPC的子网;即IPsec VPN是网对网的连接。SSL VPN:连通的是一个客户端到一个局域网络,如出差员工的便携机访问公司内网。连接方式IPsec VPN:要求两端有固定的网关设备,如防火墙或路由器; 管理员需要分别配置两端网关完成IPsec VPN协商。SSL VPN:需要在主机上安装指定的Client软件,通过用户名/密码拨号连接至SSL设备。IPsec VPN和SSL VPN在使用场景和连接方式上有什么区别?_虚拟专用网络 VPN_常见问题_适用于经典型VPN_组网与使用场景_华为云 (huaweicloud.com)
-
VPN简介VPN(全称:Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公共网络中建立专用的数据通信的网络技术,可以为企业之间或者个人与企业之间提供安全的数据传输隧道服务。在VPN中任意两点之间的链接并没有传统专网所需的端到端的物理链路,而是利用公共网络资源动态组成的,可以理解为通过私有的隧道技术在公共数据网络上模拟出来的和专网有同样功能的点到点的专线技术,所谓虚拟是指不需要去拉实际的长途物理线路,而是借用了公共Internet网络实现的。VPN应用场景 只能企业员工登录公司服务器 要求在任何网络下都能够登录 权限管理 VPN的作用 VPN的功能是帮助公司的远程用户(出差,在家)、公司的分支机构、商业合作伙伴及供应商等公司和自己的公司内部网络之间建立可信的安全连接或者是局域网连接,确保数据的加密安全传输和业务访问,对于运维工程师来说,还可以连接不同的机房为局域网来处理相关事宜。 VPN的分类 根据不同的划分标准,VPN可以按几个标准进行分类划分: 按VPN的协议分类 VPN的隧道协议主要有三种, PPTP,L2TP和IPSec。其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议; IPSec是第三层隧道协议,也是最常见的协议。L2TP和IPSec配合使用是目前性能最好,应用最广泛的一种。 按VPN的应用分类 Access VPN (远程接入VPN):客户端到网关,使用公网作为骨干网在设备之间传输VPN的数据流量 Intranet VPN (内联网VPN):网关到网关,通过公司的网络架构连接来自同公司的资源 Extranet VPN (外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接 按所用的设备类型进行分类: 路由器式VPN:路由器式VPN部署较容易,只要在路由器上添加VPN服务即可; 交换机式VPN:主要应用于连接用户较少的VPN网络; 防火墙式VPN:防火墙式VPN是最常见的一种VPN的实现方式,许多厂商都提供这种配置类型 ————————————————原文链接:https://blog.csdn.net/Yosigo_/article/details/117736283
-
VPN、EVPN、HVPN、IPsec、SSL VPN和VPN相关的概念一网打尽。VPN VPN(Virtual Private Network)我们运用VPN技术,可以实现利用公有网络实现私有的数据通信,相当于我们在通信节点之间,跨公有网络建立一个私有的、专用的虚拟通信隧道,而且基于不同的VPN技术,我们还能让这个通信隧道具有安全性、可信任、可靠性、完整性检验等特点。VPN有两个显著的特点:专用型、虚拟性。由于VPN是在公有网络上临时建立的安全专用虚拟网络,用户就节省了租用专线的费用,在运行的资金支出上,除了购买VPN设备,企业所付出的仅仅是向企业所在地的ISP支付一定的上网费用,也节省了长途电话费,因此VPN价格低廉。EVPN EVPN(Ethernet Virtual Private Network)是下一代全业务承载的VPN解决方案。EVPN统一了各种VPN业务的控制面,利用BGP扩展协议来传递二层或三层的可达性信息,实现了转发面和控制面的分离。EVPN解决传统L2VPN的无法实现负载分担、网络资源的消耗较高等不足,同时也可以对L3VPN业务进行承载,降低了协议的复杂程度。EVPN还将IP VPN流量均衡和部署灵活的优势引入到了以太网中。种种优势使其广泛应用于大型数据中心二层网络互连场景。HVPN HVPN(Hierarchy VPN)是应用在分层结构网络中的VPN技术。常规的BGP/MPLS IP VPN是一种平面网络模型,对网络中的所有PE(Provider Edge,网络边缘设备)的性能要求相同,如果部分PE设备的性能不高,将影响整个网络的性能,限制接入用户的规模。为解决此类问题,HVPN技术应用而生,它可以将平面网络模型转变为分层网络模型,从而逐级降低对设备的性能要求,同时提高网络的可扩展性,有利于大规模网络的规划和设计。IPsec IPsec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,它是VPN(Virtual Private Network,虚拟专用网)中常用的一种技术。 由于IP报文本身没有集成任何安全特性,IP数据包在公用网络如Internet中传输可能会面临被伪造、窃取或篡改的风险。通信双方通过IPsec建立一条IPsec隧道,IP数据包通过IPsec隧道进行加密传输,有效保证了数据在不安全的网络环境如Internet中传输的安全性。SSL VPN SSL VPN是采用SSL(Security Socket Layer)/TLS(Transport Layer Security)协议来实现远程接入的一种轻量级VPN技术。SSL VPN充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,可以为应用层之间的通信建立安全连接。因为SSL协议内置于浏览器中,使用SSL协议进行认证和数据加密的SSL VPN可以免于安装客户端。移动办公用户使用终端(如便携机、PAD或智能手机)与企业内部的SSL VPN服务器建立SSL VPN隧道以后,就能通过SSL VPN隧道远程访问企业内网的Web服务器、文件服务器、邮件服务器等资源。智能云网 智能云网社区是华为专为开发者打造的“学习、开发、验证、交流”一站式支持与服务平台,该平台涵盖多领域知识。目前承载了云园区网络,云广域网络,数通网络开放可编程,超融合数据中心网络,数通网络设备开放社区共五个场景。为了响应广大开发者需求,还提供了开发者交流、API 体验中心、多媒体课件、SDK工具包、开发者工具以及远程实验室共六大工具,让开发者轻松开发。欢迎各位前来体验。《戳我了解更多》
-
一、概述VPN (Virtual Private Network) 是虚拟私有网,它通过在公网上创建一个专用并且加密的网络通道(隧道)进行通讯,在实际的应用中可以帮助远程用户、公司分支机构、商业伙伴及供应商等之间建立一个安全可信的网络连接.实际上使用VPN的目的及作用就是从网络层面打通两个或多个异地网络,就好像在同一个局域网一样,并且是加密安全的.使用vpn的一些场景:穿墙,看外面的世界本地网络访问公司内网资源,比如在家里或出差的同事要访问到公司内部的网络设备、服务器资源两个或以上的异地网络互通,比如多个IDC机房、多个分支机构之间内网互通以及数据传输VPN软件有很多,有商业的、开源的,openvpn就是其中一个非常好的开源vpn软件,在生产环境中使用也非常稳定及可靠,其主要特点:开源、跨平台、易于使用、稳定与安全性,对于中小型企业来说用openvpn架设vpn服务器是个不错的选择,而不去考虑商业的vpn软件,有一定成本优势。呵呵,做运维就是这样,总是用一些开源的软件搭建一套还不错的系统.二、使用openvpn实现访问远程网络有这样的需求:有些同事不在公司或在外面出差但又要访问公司内网的服务器资源,一般的做法是做端口映射,但是随着端口映射的数量越来越多带来一些问题:管理比较麻烦、不是很安全、配置繁琐。对于这种需求可以使用vpn打通自己(本地)的网络与公司的网络,这样就像是在公司内网访问服务器一样并且是安全的.因此用openvpn来搭建vpn服务器,规划如下:环境说明:目的是让你所在的本地网络能够通过vpn服务器访问公司内网(172.16.0.0/24、172.16.2.0/24、10.10.10.0/24)中的主机用公司内网中的一台(172.16.0.100)作为openvpn服务器,然后在防火墙上做外网端口映射, 发布在外网(因为没有公网地址,只能这样做)公司网络中的172.16.0.0/24、172.16.2.0/24、10.10.10.0/24网段已经是互通的1、部署openvpn服务端(172.16.0.100)openvpn需要tun模块支持,所以先检查是否支持tun模块# ls /dev/net/tun /dev/net/tun # 如果有表示支持停掉selinux# setenforce 0setenforce: SELinux is disabled开启路由转发,编辑 /etc/sysctl.conf 文件将 net.ipv4.ip_forward = 0 改为 net.ipv4.ip_forward = 1,然后执行:# sysctl -p安装openvpn及相关包# curl http://mirrors.aliyun.com/repo/epel-6.repo -o /etc/yum.repos.d/epel-6.repo --silent # 添加阿里的EPEL源# yum install openssl openvpn easy-rsa lzo -y openssl包 程序包lzo包 用来进行数据压缩easy-ras包, 提供了一些证书生成脚本、模板配置文件等可以看下装了哪些东西# rpm -ql openvpn# rpm -ql easy-rsa创建相关目录# mkdir /var/log/openvpn # 放openvpn相关日志文件# mkdir /etc/openvpn/easy-rsa # 放easy-rsa包提供的相关工具# mkdir /etc/openvpn/ccd # openvpn客户端的配置目录,后面会用到将easy-ras包提供的工具复制到 /etc/openvpn/easy-rsa# cp /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ -r # cd /etc/openvpn/easy-rsa# ls // 可以看到就是一堆脚本,主要是用来生成证书build-ca build-key build-key-server clean-all list-crl openssl-1.0.0.cnf sign-req whichopensslcnfbuild-dh build-key-pass build-req inherit-inter openssl-0.9.6.cnf pkitool varsbuild-inter build-key-pkcs12 build-req-pass keys openssl-0.9.8.cnf revoke-full修改 openssl-1.0.0.cnf 文件中 default_crl_days值,调大为3650或者更大,默认是30,单位是天, 3650天也就是表示为10年。这步不做的话如果服务端开启了crl-verify(吊销证书)功能,30天后全部客户端会连不上,因为有效期默认是30天,这个坑其它地方不会告诉你vim openssl-1.0.0.cnf找到 并改成 default_crl_days = 3650编辑 /etc/openvpn/easy-rsa/vars文件,找到下面的变量修改成你指定的值,后面生成证书的时候会应用这些变量值 (不做这步也可以,它会应用默认的变量值)export KEY_COUNTRY="CN" # 国家export KEY_PROVINCE="GD" # 省份export KEY_CITY="GZ" # 城市export KEY_ORG="MY_ORG" # 组织/公司export KEY_EMAIL="vpn@qq.com" # 邮箱export KEY_OU="vpn" # 单位 export KEY_NAME="openvpn" # 服务器名称然后执行# source vars # 这一步会导入vars文件中的变量作为当前的环境变量# ./clean-all # 清除旧的keys目录下的文件生成CA(证书颁发机构),一直回车即可# ./build-ca Generating a 2048 bit RSA private key............................................................................+++..................+++writing new private key to 'ca.key'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [CN]:State or Province Name (full name) [GD]:Locality Name (eg, city) [GZ]:Organization Name (eg, company) [MY_ORG]:Organizational Unit Name (eg, section) [vpn]:Common Name (eg, your name or your server's hostname) [openvpn CA]:Name [openvpn]:Email Address [vpn@qq.com]:会在 /etc/openvpn/easy-rsa/keys 目录下生成ca.crt、ca.key两个证书文件# ls /etc/openvpn/easy-rsa/keys/ | grep caca.crt ca.key生成服务器证书./build-key-server vpnserver # 起个名字叫vpnserver,后面会用到 (注:必须是唯一的、尽量是有意义的名称)Generating a 2048 bit RSA private key................................+++.....+++writing new private key to 'vpnserver.key'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [CN]:State or Province Name (full name) [GD]:Locality Name (eg, city) [GZ]:Organization Name (eg, company) [MY_ORG]:Organizational Unit Name (eg, section) [vpn]:Common Name (eg, your name or your server's hostname) [vpnserver]:Name [vpn]:Email Address [vpn@qq.com]:Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []: # 这里是设置连接vpn的时候要不要输入账号和密码,如果不设置就直接回车(可选)An optional company name []:Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnfCheck that the request matches the signatureSignature okThe Subject's Distinguished Name is as followscountryName :PRINTABLE:'CN'stateOrProvinceName :PRINTABLE:'GD'localityName :PRINTABLE:'GZ'organizationName :PRINTABLE:'MY_ORG'organizationalUnitName:PRINTABLE:'vpn'commonName :PRINTABLE:'vpnserver'name :PRINTABLE:'vpn'emailAddress :IA5STRING:'vpn@qq.com'Certificate is to be certified until Apr 29 06:26:49 2026 GMT (3650 days)Sign the certificate? [y/n]:y # 输入y1 out of 1 certificate requests certified, commit? [y/n]y # 输入yWrite out database with 1 new entriesData Base Updated它会在 /etc/openvpn/easy-ras/keys 目录下生成三个证书文件# ls /etc/openvpn/easy-rsa/keys/ | grep vpnservervpnserver.crtvpnserver.csrvpnserver.key生成客户端证书,客户端会用证书来连接服务端./build-key vpnclient --- 表示为vpnclient这个客户端生成证书,后面会用到 (注:必须是唯一的、尽量是有意义的名称)Generating a 2048 bit RSA private key.......+++....................+++writing new private key to 'vpnclient.key'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [CN]:State or Province Name (full name) [GD]:Locality Name (eg, city) [GZ]:Organization Name (eg, company) [MY_ORG]:Organizational Unit Name (eg, section) [vpn]:Common Name (eg, your name or your server's hostname) [vpnclient]:Name [vpn]:Email Address [vpn@qq.com]:Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:An optional company name []:Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnfCheck that the request matches the signatureSignature okThe Subject's Distinguished Name is as followscountryName :PRINTABLE:'CN'stateOrProvinceName :PRINTABLE:'GD'localityName :PRINTABLE:'GZ'organizationName :PRINTABLE:'MY_ORG'organizationalUnitName:PRINTABLE:'vpn'commonName :PRINTABLE:'vpnclient'name :PRINTABLE:'vpn'emailAddress :IA5STRING:'vpn@qq.com'Certificate is to be certified until Apr 29 06:30:42 2026 GMT (3650 days)Sign the certificate? [y/n]:y --- 输入y1 out of 1 certificate requests certified, commit? [y/n]y --- 输入yWrite out database with 1 new entriesData Base Updated它会在 /etc/openvpn/easy-ras/keys 目录下生成三个证书文件# ls /etc/openvpn/easy-rsa/keys/ | grep vpnclientvpnclient.crtvpnclient.csrvpnclient.key上面是交互式的生成证书,还可以使用非交互式的方式生成证书View Code最后创建Diffie Hellman文件,这步需要一点时间,等它执行完就行# ./build-dh查看生成的Diffie hellman秘钥文件# ls /etc/openvpn/easy-rsa/keys | grep 'dh'dh2048.pem配置openvpn,编辑/etc/openvpn/server.conf文件,添加如下:local 172.16.0.100 # 监听的ipport 1999 # 监听的端口,默认1194,我设置1999,根据你的需求改就行proto tcp # 使用的协议,默认udp,因为经常要通过vpn传文件对可靠性要求比较高,所以用tcpdev tun # 使用tun(隧道)模式,openvpn有两种模式,一种是TUN,另一种是TAPca /etc/openvpn/easy-rsa/keys/ca.crt # 这四条都是指定证书的路径,要确保路径存在或文件能够访问cert /etc/openvpn/easy-rsa/keys/vpnserver.crtkey /etc/openvpn/easy-rsa/keys/vpnserver.key dh /etc/openvpn/easy-rsa/keys/dh2048.pemserver 10.8.0.0 255.255.255.0 # 设置成server模式并给客户端分配的ip段,服务端会用其中.1和.2两个ip,这个网段不要和你的内网冲突ifconfig-pool-persist ipp.txt # 当vpn断开或重启后,可以利用该文件重新建立相同的IP地址连接push "route 172.16.0.0 255.255.255.0" # 这三条是给客户端推的路由,客户端连上后会根据这个添加路由,vpn服务器后端有几个网段就写几个push "route 172.16.2.0 255.255.255.0" # 这些路由的作用是告诉客户端去另一个子网都转发给TUN接口,类似于静态路由push "route 10.10.10.0 255.255.255.0" client-config-dir /etc/openvpn/ccd # 客户端的个性配置目录,比如针对每个客户端推送不同的路由、配置不同的ipkeepalive 10 120 # 每10秒ping一次,如果超过120s认为对方已经down了,需要重连commpress lz4-v2 # 在vpn链接上启用压缩,服务端开启客户端也必须开启max-clients 100 # 最多有几个vpn客户端可以连user nobody # 启动openvpn的用户和组,建议用nobodygroup nobody commpress lz4-v2 # 开启压缩script-security 2 # 脚本安全级别,2就行了,用于执行外部的脚本(可选)client-to-client # 允许vpn客户端之间通信 duplicate-cn # 允许多个客户端使用同一个证书登陆,生产环境建议为每个用户都生成自己的证书 persist-key # 通过keepalived检测后重新启动vpn,不重新读取keys,保留第一次使用的keys persist-tun # 通过keepalived检测后重新启动vpn,一直保持tun或tap设备是linkup status /var/log/openvpn/openvpn-status.log # openvpn的状态日志文件 log /var/log/openvpn/openvpn.log # openvpn的日志文件writepid /var/run/openvpn/server.pid # pid文件verb 3 # 日志级别mute 20 # 如果连续出现20条相同的日志,只记录一条然后启动openvpn# service openvpn start# chkconfig --add openvpn# chkconfig --level 35 openvpn on会看到有个tun0接口并且添加了两条路由# ifconfig tun0tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:2499142 errors:0 dropped:0 overruns:0 frame:0 TX packets:2719489 errors:0 dropped:45 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:895142072 (853.6 MiB) TX bytes:1093625277 (1.0 GiB)# route -n | grep tun0 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun010.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0启动了一个tun0网络接口,ip是10.8.0.1,P-t-P:10.8.0.2 是点到点的意思添加了两条路由,一个是主机路由 (UH),另一个是静态路由 (UG),表示去10.8.0.0网段的数据包下一跳是10.8.0.2添加一条SNAT规则,让源地址是10.8.0.0/24网段的地址进来转换成vpn服务器的内网地址(172.16.0.100),这样vpn客户端访问公司内网服务器的时候伪装成vpn服务器去访问# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 172.16.0.100 # service iptables save# service iptables start# chkconfig --level 35 iptables on如果不用上面的SNAT方式,还有种做法是在所有公司内网中的主机或服务器上添加回程路由,这样才能回包给vpn客户端# route add 10.8.0.0 MASK 255.255.255.0 172.16.0.100 // 如果是windows# ip route add 10.8.0.0/24 via 172.16.0.100 // 如果是linux如果数量少还好,但很多的话就比较麻烦,所以推荐用SNAT的方式,到了这里openvpn服务端已经配好了,客户端可以连了。2、客户端连接vpn服务器openvpn支持linux、window、mac等多种客户端,如果是windows客户端先安装openvpn-gui,一直下一步就行,默认会安装在C:\Program Files\OpenVPN进到config目录,创建一个vpnclient目文件夹,把服务器上的 /etc/openvpn/easy-rsa/keys下的ca.crt、vpnclient.crt、vpnclient.key三个证书文件拉下来放进去然后添加一个vpnclient.ovpn的文件,这个文件用来连接openvpn服务端vpnclient.ovpn文件的内容是client # 设置为client模式dev tun # 设置为tun模式,必须和服务端一致proto tcp # 使用的协议,必须和服务端一致remote 183.6.133.212 1999 # 指定openvpn服务器的地址和端口resolv-retry infinitenobindpersist-keypersist-tunca ca.crtcert vpnclient.crtkey vpnclient.keyremote-cert-tls serverauth-nocache # 不在内存中缓存密码commpress lz4-v2 # 启动压缩,必须和服务端一致 verb 3 然后连接openvpn,点击运行选 Connect ,如果出现绿色图标说明vpn连接成功了.连接成功后会启一个网络连接,可以看到分配的ip地址是10.8.0.10 / 30以太网适配器 本地连接 2: 连接特定的 DNS 后缀 . . . . . . . : 描述. . . . . . . . . . . . . . . : TAP-Windows Adapter V9 物理地址. . . . . . . . . . . . . : 00-FF-0A-6B-5D-9D DHCP 已启用 . . . . . . . . . . . : 是 自动配置已启用. . . . . . . . . . : 是 本地链接 IPv6 地址. . . . . . . . : fe80::bca0:7a3d:716c:5769(首选) IPv4 地址 . . . . . . . . . . . . : 10.8.0.10(首选) 子网掩码 . . . . . . . . . . . . : 255.255.255.252 获得租约的时间 . . . . . . . . . : 2017年10月18日 3:43:41 租约过期的时间 . . . . . . . . . : 2018年10月18日 3:43:41 默认网关. . . . . . . . . . . . . : DHCP 服务器 . . . . . . . . . . . : 10.8.0.9 DHCPv6 IAID . . . . . . . . . . . : 469827338 DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-1C-F4-C8-B2-34-E6-D7-6C-5E-88 ........客户端还会添加路由,可以看下路由表,下面这些是服务端配置推送给客户端的路由,其实就是告诉客户端去这些网段都通过vpn服务器,类似于静态路由> route PRINT -4IPv4 路由表===========================================================================活动路由:网络目标 网络掩码 网关 接口 跃点数10.8.0.0 255.255.255.0 10.8.0.9 10.8.0.10 2010.8.0.8 255.255.255.252 在链路上 10.8.0.10 27610.8.0.10 255.255.255.255 在链路上 10.8.0.10 27610.8.0.11 255.255.255.255 在链路上 10.8.0.10 27610.10.10.0 255.255.255.0 10.8.0.9 10.8.0.10 20172.16.0.0 255.255.255.0 10.8.0.9 10.8.0.10 20172.16.2.0 255.255.255.0 10.8.0.9 10.8.0.10 20测试,ping下公司内网中的主机,看下是否能够访问,如果可以说明ok了C:\Users\Administrator ping 172.16.0.104正在 Ping 172.16.0.104 具有 32 字节的数据:来自 172.16.0.104 的回复: 字节=32 时间=6ms TTL=63172.16.0.104 的 Ping 统计信息: 数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 6ms,最长 = 6ms,平均 = 6msC:\Users\Administrator> ping 172.16.2.1正在 Ping 172.16.2.1 具有 32 字节的数据:来自 172.16.2.1 的回复: 字节=32 时间=7ms TTL=253172.16.2.1 的 Ping 统计信息: 数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 7ms,最长 = 7ms,平均 = 7msC:\Users\Administrator> ping 10.10.10.2正在 Ping 10.10.10.2 具有 32 字节的数据:来自 10.10.10.2 的回复: 字节=32 时间=6ms TTL=12610.10.10.2 的 Ping 统计信息: 数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 6ms,最长 = 6ms,平均 = 6ms如果是linux客户端和windows一样,先安装openvpn# curl http://mirrors.aliyun.com/repo/epel-6.repo -o /etc/yum.repos.d/epel-6.repo --silent # 添加阿里的EPEL源,有的话不用做.# yum install openvpn -y创建相关目录# mkdir /etc/openvpn/keys # 放客户端的相关证书# mkdir /var/log/openvpn # 放日志的目录将服务器上 /etc/openvpn/easy-rsa/keys 下的ca.crt、vpnclient.crt、vpnclient.key这些证书文件拉下来放到 /etc/openvpn/keys# ls /etc/openvpn/keysca.crt vpnclient.crt vpnclient.key编辑客户端的配置文件/etc/openvpn/client.conf,内容如下client # 设置为clinet模式dev tun # 使用tun模式,必须和服务端一致proto tcp # 使用的协议,必须和服务端一致remote 183.6.133.212 1999 # 指定openvpn服务端的ip和端口,有需要可以使用多个做高可用.resolv-retry infinitenobindpersist-keypersist-tunca /etc/openvpn/keys/ca.crtcert /etc/openvpn/keys/vpnclient.crtkey /etc/openvpn/keys/vpnclient.keyremote-cert-tls serverauth-nocacheuser nobodygroup nobodystatus /var/log/openvpn/openvpn-status.loglog /var/log/openvpn/openvpn.logwritepid /var/run/openvpn/client.pid # 指定pid文件commpress lz4-v2 # 压缩数据,必须和服务端配置一样verb 3mute 20启动openvpn客户端# service openvpn start# chkconfig --add openvpn# chkconfig --level 35 openvpn on客户端启动后只有进程,因为它作为客户端去连服务端,不需要提供端口# ps aux | grep vpnnobody 4236 0.1 0.3 46916 3232 ? Ss 01:36 0:00 /usr/sbin/openvpn --daemon --writepid /var/run/openvpn/client.pid --cd /etc/openvpn --config client.conf --script-security 2同样也会有个tun0网络接口# ifconfig tun0tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.14 P-t-P:10.8.0.13 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)此时我们可以看下路由表,下面这些路由就是根据服务器的配置(push)推送过来的,目的是通知客户端根据这个来添加路由,实际上就是告诉客户端去这些网段都转发给tun0接口,也就是vpn服务器,类似静态路由# route -n | grep tun010.8.0.13 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 # 主机路由172.16.2.0 10.8.0.13 255.255.255.0 UG 0 0 0 tun0 # 去172.16.2.0 下一跳(网关)是10.8.0.1310.8.0.0 10.8.0.13 255.255.255.0 UG 0 0 0 tun0 # 去10.8.0.0 下一跳(网关)是10.8.0.13172.16.0.0 10.8.0.13 255.255.255.0 UG 0 0 0 tun0 # 去172.16.0.0 下一跳(网关)是10.8.0.1310.10.10.0 10.8.0.13 255.255.255.0 UG 0 0 0 tun0 # 去10.10.10.0 下一跳(网关)是10.8.0.13最后测试,ping下公司内网中的主机,看下是否能够访问,如果可以说明ok了# ping 172.16.0.104 # 可以通公司内网172.16.0.0段中的主机PING 172.16.0.104 (172.16.0.104) 56(84) bytes of data.64 bytes from 172.16.0.104: icmp_seq=1 ttl=63 time=7.52 ms^C--- 172.16.0.104 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 327msrtt min/avg/max/mdev = 7.524/7.524/7.524/0.000 ms# ping 172.16.2.1 # 可以通公司内网172.16.2.1段中的主机PING 172.16.2.1 (172.16.2.1) 56(84) bytes of data.64 bytes from 172.16.2.1: icmp_seq=1 ttl=253 time=205 ms--- 172.16.2.1 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 768msrtt min/avg/max/mdev = 205.701/205.701/205.701/0.000 ms# ping 10.10.10.2 # 可以通公司内网10.10.10.0段中的主机PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data.64 bytes from 10.10.10.2: icmp_seq=1 ttl=126 time=5.86 ms^C--- 10.10.10.2 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 755msrtt min/avg/max/mdev = 5.865/5.865/5.865/0.000 ms数据包的走向是:客户端访问公司内网主机 ----- 通过路由转发 ---- vpn服务器(tun0) ---- SNAT ----- 公司内网主机要点小结:vpn的作用就是让两个网络可以互通,就好像在同一个局域网里面一样openvpn配置好了后可以把它看成一个路由器,需要有点网络方面的知识才好理解其它功能及需求:1、如何给客户端指定配置,比如不同的客户端不同的ip地址、推送不同路由等先在server.conf中指定 client-config-dir目录,能够让openvpn访问的到client-config-dir /etc/openvpn/ccd # 确保/etc/openvpn/ccd存在在/etc/openvpn/ccd目录下编辑一个与客户端同名的文件,比如想给vpnclient的这个客户端指定配置,那么就是/etc/openvpn/ccd/vpnclient,这些配置可以是ifconfig-push 10.8.0.9 10.8.0.10 # 指定客户端的IP地址,如果想固定客户端的ip可以这样做push "route 172.16.0.0 255.255.255.0" # 推送指定的路由,不同的客户端推送不同的路由可以这样做 iroute 172.16.20.0 255.255.255.0 # 忽略路由push "dhcp-option DNS 202.96.128.166" # 推送DNS..........2、openvpn服务端怎么做高可用如果vpn服务器只有一台的话就是个单点,如果有需求可以做高可用,做法是准备两台openvpn服务器,它们相关证书、配置都一样(可以做一个然后复制到另一个),然后在客户端的配置文件中指定两个remoteremote 第一个vpn服务器ip 端口remote 第二个vpn服务器ip 端口然后测试下模拟挂掉一个,能不能用、对使用有没有什么影响3、怎么给客户端推送指定的DNS可以在服务端server.conf或者ccd下面配置文件指定推送给客户端的dnspush "dhcp-option DNS 202.96.128.166" push "dhcp-option DNS 202.96.128.167"这种场景一般是要用到远程内网中的dns,用的不多4、怎么给客户端生成证书通过build-key生成客户端证书对于生成证书需要考虑的问题:是为每个用户生成证书、还是多个客户端使用一个证书? 如果是多个客户端用同一个证书登陆,优点是省事,缺点是如果想吊销这个证书那么就会影响所有的用户, 如果是每个用户都有自己的证书,优点是管理方便,缺点是麻烦(官方推荐为每个用户生成一个证书,每个用户用自己的证书连接vpn,虽然麻烦了点)5、如何把客户端的默认网关指向vpn服务器push "redirect-gateway def1 bypass-dhcp"需要的注意的是,如果这样配置会导致所有的流量都经过vpn服务器,这样的vpn服务器的压力会比较大,一般用的不是很多,除非必须要这么做三、吊销证书吊销证书是指让客户端的证书无效,那么被吊销证书的用户就不能连上vpn了。有这个样的场景,某个同事之前给他分配了vpn客户端,可以连vpn,现在它离职了,不想在让他在用vpn了,这时可以吊销它的证书。例如:吊销客户端 ( vpnclient ) 的证书.# cd /etc/openvpn/easy-rsa# source ./vars# ./revoke-full vpnclient # 通过revoke-full脚本吊销证书, 吊销vpnclient这个客户端的证书 执行后将看到下面的提示,表示证书已经被吊销Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnfRevoking Certificate 03.Data Base UpdatedUsing configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnfclient02.crt: C = US, ST = CA, L = SanFrancisco, O = Fort-Funston, OU = MyOrganizationalUnit, CN = client02, name = EasyRSA, emailAddress = me@myhost.mydomainerror 23 at 0 depth lookup:certificate revoked # 出现error 23 表示证书已经被吊销了需要注意的是到这步还没有彻底完成,此时客户端仍然可以连上。当通过 revoke-full 脚本吊销客户端的证书后它会在keys(我这里是/etc/openvpn/easy-rsa/keys)目录生成一个crl.pem(吊销证书列表 )文件,所以还需要在openvpn服务器的配置文件 /etc/openvpn/server.conf 添加:crl-verify /etc/openvpn/easy-rsa/keys/crl.pem # 指定crl.pem文件的路径,必须存在并能够被启动openvpn的用户有权限读取,否则会报cannot read错误然后重启openvpn服务# service openvpn restartShutting down openvpn: [ OK ]Starting openvpn: [ OK ]最后测试被吊销证书的客户端能不能连上vpn服务,如果不能连上说明成功.此外,还可以通过查看/etc/openvpn/easy-ras/keys/index.txt文件,了解vpn客户端的吊销状态.R 开头的表示reovke,说明是吊销状态,V表示是正常的CN=vpnclient,表示客户端vpnclient已经被吊销# cat /etc/openvpn/easy-rsa/keys/index.txtV 270929154610Z 01 unknown /C=US/ST=CA/L=SanFrancisco/O=Fort-Funston/OU=MyOrganizationalUnit/CN=vpnserver/name=EasyRSA/emailAddress=me@myhost.mydomainV 270929154708Z 02 unknown /C=US/ST=CA/L=SanFrancisco/O=Fort-Funston/OU=MyOrganizationalUnit/CN=client01/name=EasyRSA/emailAddress=me@myhost.mydomainR 271005070515Z 171008142938Z 03 unknown /C=US/ST=CA/L=SanFrancisco/O=Fort-Funston/OU=MyOrganizationalUnit/CN=vpnclient/name=EasyRSA/emailAddress=me@myhost.mydomain那么问题来了,又想恢复这个被吊销的客户端(vpnclient)呢? 同样可以在openvpn服务器的配置文件/etc/openvpn/server.conf注释或取消: crl-verify /etc/openvpn/easy-rsa/keys/crl.pem # 注释或取消掉这行重启openvpn,客户端测试,如果能连上说明成功了,又可以连了四、故障与排错如果不成功,需要从各个方面排查:检查openvpn服务器端口和进程是否正常检查tun0接口和路由表是否正常检查证书的路径是否能够正常访问查看openvpn服务器日志(重点)检查防火墙是否做了限制,是否放通了openvpn的ip或端口使用tcpdump一节一节的抓包,看包到了那个环节原文链接:https://www.cnblogs.com/huangweimin/articles/7638943.html
-
虚拟路由器即Virtual Router,是一种软件功能。它提供了一个基于云的虚拟路由器,部署在x86服务器硬件的虚拟机实例上,在虚拟化平台上提供路由、交换、安全和VPN等功能,为用户提供网络通信服务。为什么需要虚拟路由器?随着企业业务越来越丰富,客户为了节约网络成本、业务快速上线,越来越多的企业开始在私有云或公有云上,通过部署VPC(Virtual Private Cloud,专有网络)的方式将企业网络和IT设施进行云化和虚拟化;此外,企业依赖的传统重要应用(例如Office、Salesforce等)也逐渐被应用提供商改以SaaS云化方式提供,据统计,未来将有85%的企业应用采用云的方式部署。伴随着业务云化不断深化发展,应用数量和流量激增,传统企业WAN网络已经无法满足企业基础设施和企业业务云化的要求,传统企业WAN网络面临诸多挑战:分支访问云应用从总部/DC绕行,延迟大,易产生性能瓶颈企业业务云化带来更大WAN网络带宽需求,专线成本逐年攀升企业无法在公有云网络与企业内网络实施一致的安全和管理策略传统企业WAN网络状态无感知,管理运维难度大为了解决上述问题,顺应网络设备云化和虚拟化的发展趋势,虚拟路由器应运而生。虚拟路由是NFV(Network Function Virtualization,网络功能虚拟化)的一种形式,其中传统的基于硬件的网络设备的功能被转换为可以在标准商业现成硬件上运行的软件,优点是降低硬件成本,不再需要专有硬件平台。虚拟路由器将IP路由功能从特定硬件中解放出来,可以更加自由的在网络中移动。它可以部署在企业总部、PoP接入点(Point of Presence 入网点)和云环境中,扩展企业网络到云内部,实施与企业内部网络一致的安全和管理策略,支持混合链路接入WAN网络,通过基于应用的智能选路,优化企业的云访问路径,提升企业访问云服务的体验。虚拟路由器是如何工作的?虚拟路由器工作原理与传统路由器相同。它运行着路由协议实例,有自己专用的I/O端口、缓存、地址空间、路由表和网络管理软件,可以连接设备在网络之间转发数据包。随着网络的不断发展,虚拟路由器的基本架构也在不断演进。
-
英文全称:Network-as-a-Service 中文意思:网络即服务 随着网络技术、硬件技术的发展,网络的规模随之扩大,硬件设备比如路由器、交换机、vpn、防火墙等部署和使用就成了网络工程师最头疼的问题,手动配置不仅仅浪费人力、物力、财力,更重要的是容易出错。所以结合现在云计算技术,可以将网络云化,客户可以按需配置自己的网络,这个就跟云服务器一样,没内存了,我就加内存,没带宽了,我就加带宽 NaaS 的本质是构建看起来更像公共云的网络连接:自助服务、按需和动态。有一些解决方案专注于将自己嵌入到客户管理的现有公共云基础设施中,其他解决方案在战略性、密集连接的数据中心构建专用的高性能传统网络,还有一些在他们自己的云中构建自己的专用软件只是为了连接。每种方法都有自己的优缺点,必须权衡这些优缺点才能选择最合适的方法。每个解决方案的通用性是它是软件和硬件的混合物,可为客户创建一个自助服务平台,其强大之处在于它使网络运营商能够轻松集成和保护许多不同的网络。 为什么需要 NaaS? 在传统网络模式中,通信服务提供商会投入非常大的成本在网络基础设施、网络集成上,运营流程和网络域是紧密耦合的,新的网络元素必须与业务和运营支持系统 (B/OSS) 集成,支持特定服务或网络相关功能的离线系统集合,例如订单管理。这种集成既麻烦又昂贵,推出新服务通常需要 12 到 18 个月,相比之下,云提供商不断集成和测试新功能,在数小时内推出新服务,通信服务提供商的问题变得更加清晰。 传统运营也阻碍了通信服务提供商为企业提供他们想要的灵活的、类似云的服务。订单处理是分散的,技术人员必须手动访问多个 OSS 系统来收集和关联他们设计和提供服务所需的信息。这会导致服务执行过程缓慢且容易出错,并且可能需要数周甚至数月才能激活(甚至修改)服务。因此,通信服务提供商 在很大程度上仅限于长期合同附带的静态服务产品。 许多同样的问题会对故障解决过程产生负面影响,技术人员必须手动关联来自多个不同监控系统的事件和警报,这会减慢故障排除和补救工作,并使服务水平协议 (SLA) 面临风险。 种种问题就促使了 NaaS 的发展,NaaS 运营模型能够提供自动化的端到端服务设计和激活,以及闭环中的持续服务监控和优化。 NaaS 利用模型驱动的抽象来解耦 OSS 和网络层,网络的所有功能和资源(虚拟和物理)都汇总并发布在服务目录中,行业标准 API 用于将这些汇总的功能公开给 B/OSS 层。 NaaS 消除了服务实现过程中的人工干预。服务订单管理协调服务激活过程,编排自动化服务设计和供应,此外,整个服务生命周期都在闭环中进行管理,使用客户意图、策略、分析和人工智能来提供持续的服务保证和优化。 NaaS 优点 1、管理网络类型多样 NaaS 可以完全管理的不仅仅是广域网,局域网、安全、无线和 VOIP 等服务都可以被管理。 2、减少维护时间 NaaS 大大减少了工程师用于支持和维护网络的时间,不再需要花更多精力去管理网络,可以腾出更多时间去管理核心业务或未来的技术需求。 3、降低成本 NaaS 减少了项目总体支出,因为网络相关的硬件、软件、基础设施、支持和维护都是外包的。 4、安全性增强 NaaS 使用了许多新技术,例如 SD-WAN,以允许流量通过点对点网络链接和公共互联网安全移动,可以进一步保护网络安全。 5、可扩展的集中管理 NaaS 云管理功能可以提供网络域(数据中心、企业园区和 WAN)的统一管理,使组织能够轻松扩展网络。可以实施添加的托管服务来监督所有网络操作。 6、可持续性 有效的 NaaS 计划有助于缓解与旧硬件资源相关的安全和成本相关担忧。设备的再利用和适当的处置很重要,但成本很高,可持续再利用和报废是 NaaS 产品的关键属性,使组织能够更轻松地实现可持续发展目标。
-
https://support.huaweicloud.com/vpn_faq/zh-cn_topic_0187565709.html使用场景IPsec VPN:连通的是两个局域网,如分支机构与总部(或华为云VPC)之间、本地IDC与云端VPC的子网;即IPsec VPN是网对网的连接。SSL VPN:连通的是一个客户端到一个局域网络,如出差员工的便携机访问公司内网。连接方式IPsec VPN:要求两端有固定的网关设备,如防火墙或路由器; 管理员需要分别配置两端网关完成IPsec VPN协商。SSL VPN:需要在主机上安装指定的Client软件,通过用户名/密码拨号连接至SSL设备。
-
首先创建gre隧道2、创建IKE提议 [AR 1]ike proposal 1 # 创建IKE提议 [AR 1-ike-proposal-1]encryption-algorithm 3des-cbc # 指定加密算法 [AR 1-ike-proposal-1]authentication-algorithm md5 # 认证算法 [AR 3]ike proposal 1 # 创建IKE提议 [AR 3-ike-proposal-1]encryption-algorithm 3des-cbc # 指定加密算法 [AR 3-ike-proposal-1]authentication-algorithm md5 # 认证算法 3、配置IKE对等体 [AR 1]ike peer number v2 # 创建number的对等体 [AR 1-ike-peer-numberone]pre-shared-key simple 5201314 # 共享密钥 [AR 1-ike-peer-numberone]ike-proposal 1 [AR 3]ike peer number v2 # 创建number的对等体 [AR 3-ike-peer-numberone]pre-shared-key simple 5201314 # 共享密钥 [AR 3-ike-peer-numberone]ike-proposal 1 4、配置IPSec提议 [AR 1]ipsec proposal 1 [AR 1-ipsec-proposal-1]esp encryption-algorithm 3des # esp的加密算法 [AR 3]ipsec proposal 1 [AR 3-ipsec-proposal-1]esp encryption-algorithm 3des # esp的加密算法 5、配置IPSec文件 [AR 1]ipsec profile gre [AR 1-ipsec-profile-gre]ike-peer number [AR 1-ipsec-profile-gre]proposal 1 [AR 3]ipsec profile gre [AR 3-ipsec-profile-gre]ike-peer number [AR 3-ipsec-profile-gre]proposal 1 6、对GRE隧道进行保护 [AR 1]interface Tunnel 0/0/0 [AR 1-Tunnel0/0/0]description XXXXX # XXXXX可以自定义 [AR 1-Tunnel0/0/0]tunnel-protocol gre [AR 1-Tunnel0/0/0]source 200.1.1.1 [AR 1-Tunnel0/0/0]destination 200.2.2.2 [AR 1-Tunnel0/0/0]ipsec profile gre # 对GRE隧道进行保护 [AR 3]interface Tunnel 0/0/0 [AR 3-Tunnel0/0/0]description XXXXX [AR 3-Tunnel0/0/0]tunnel-protocol gre [AR 3-Tunnel0/0/0]source 200.2.2.2 [AR 3-Tunnel0/0/0]destination 200.1.1.1 [AR 3-Tunnel0/0/0]ipsec profile gre # 对GRE隧道进行保护 ———————————————— 版权声明:本文为CSDN博主「ZXW_NUDT」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/ZXW_NUDT/article/details/115481067
-
VPN(Virtual Private Network,虚拟专用网)是一种在公用网络上建立专用网络的技术。它之所以称之为虚拟网,主要是因为VPN的两个节点之间并没有像传统专用网那样使用端到端的物理链路,而是架构在公用网络如Internet之上的逻辑网络,用户数据通过逻辑链路传输。按照VPN协议分,常见的VPN种类有:IPsec、SSL、GRE、PPTP和L2TP等。其中IPsec是通用性较强的一种VPN技术,适用于多种网络互访的场景。IPsec VPN是指采用IPsec实现远程接入的一种VPN技术,通过在公网上为两个或多个私有网络之间建立IPsec隧道,并通过加密和验证算法保证VPN连接的安全。IPsec VPN保护的是点对点之间的通信,通过IPsec VPN可以在主机和主机之间、主机和网络安全网关之间或网络安全网关(如路由器、防火墙)之间建立安全的隧道连接。其协议主要工作在IP层,在IP层对数据包进行加密和验证。相对于其他VPN技术,IPsec VPN安全性更高,数据在IPsec隧道中都是加密传输,但相应的IPsec VPN在配置和组网部署上更复杂。IPsec的工作原理大致可以分为4个阶段:识别“感兴趣流”。网络设备接收到报文后,通常会将报文的五元组等信息和IPsec策略进行匹配来判断报文是否要通过IPsec隧道传输,需要通过IPsec隧道传输的流量通常被称为“感兴趣流”。协商安全联盟(Security Association,以下简称SA)。SA是通信双方对某些协商要素的约定,比如双方使用的安全协议、数据传输采用的封装模式、协议采用的加密和验证算法、用于数据传输的密钥等,通信双方之间只有建立了SA,才能进行安全的数据传输。识别出感兴趣流后,本端网络设备会向对端网络设备发起SA协商。在这一阶段,通信双方之间通过IKE协议先协商建立IKE SA(用于身份验证和密钥信息交换),然后在IKE SA的基础上协商建立IPsec SA(用于数据安全传输)。数据传输。IPsec SA建立成功后,双方就可以通过IPsec隧道传输数据了。IPsec为了保证数据传输的安全性,在这一阶段需要通过AH或ESP协议对数据进行加密和验证。加密机制保证了数据的机密性,防止数据在传输过程中被窃取;验证机制保证了数据的真实可靠,防止数据在传输过程中被仿冒和篡改。如图所示,IPsec发送方会使用加密算法和加密密钥对报文进行加密,即将原始数据“乔装打扮”封装起来。然后发送方和接收方分别通过相同的验证算法和验证密钥对加密后的报文进行处理得到完整性校验值ICV。如果两端计算的ICV相同则表示该报文在传输过程中没有被篡改,接收方对验证通过的报文进行解密处理;如果ICV不相同则直接丢弃报文。MPLS VPN:使用场景在运营商骨干网络上提供L3VPN业务,利用BGP协议发布路由信息,在骨干网内部使用MPLS转发VPN报文。概念CE(Consumer Edge):用户边缘路由器,与运营商网络直接相连的路由器。感知不到VPN的存在,一个CE设备只能对应一个VPN主要功能就是将VPN客户的路由通告给PE,以及从PE学习同一个VPN下其他站点的路由PE(Provider Edge):运行商(骨干网)边缘路由器,与用户网络相连的路由器。负责VPN业务接入,处理VPN-IPV4路由使用VRF对VPN客户进行隔离通过与客户设备CE进行路由协议,以便获取客户路由,并将路由生成VPNv4前缀放入MPLS VPN骨干网传递到对端PEP(Provider):骨干网路由器,与PE或其他P相连。负责快速转发数据不知道VPN客户网络,以及客户的路由。只负责在骨干网内运载标签数据VRF(Virtual Router Forwarding):PE上的虚拟路由器(路由进程)。一张独立的路由表,包括独立的地址空间一组归属于这个VRF的接口的集合,一组只用于本VRF的路由协议一个VPN对应一个VRFRD(Route-Distinguisher):路由标识符BGP进程用该字段区分不同VPN,有了RD后就可以解决不同VPN之间的IP地址重叠问题,VPN用户的IP地址不再是整个系统全局唯一,而是VPN内唯一即可。RT(Route-Target)每个VRF表达自己的路由输出和输出方式,主要用于控制VPN路由的发布和安装策略。
-
为了方便一些熟悉命令行但不熟悉netconf报文的工程师能快速理解netconf报文,并与对应的命令行联系起来,下面给出一套分析方法。本次我们以下发L3VPN业务到NE8000M8设备为例说明~相关配置的命令行可以在华为support网站上查看NE8000M8产品文档。那不多说,我们先来直观感受一下cli命令行和Netconf报文的区别吧。CLI命令行ip vpn-instance 5G-RAN ipv4-family route-distinguisher 100:1 vpn-target 100:11 export-extcommunity vpn-target 100:11 import-extcommunity bgp yang-mode enable bgp 100 ipv4-family vpn-instance 5G-RAN import-route direct import-route static peer 2.2.2.2 as-number 100 interface GigabitEthernet 0/5/0.1 ip binding vpn-instance 5G-RAN ip address 20.1.2.9 255.255.255.0Netconf报文<bgp xmlns="urn:huawei:yang:huawei-bgp"> <global> <yang-enable>true</yang-enable> </global> </bgp> <network-instance xmlns="urn:huawei:yang:huawei-network-instance"> <instances> <instance xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge"> <name>5G-RAN</name> <bgp xmlns="urn:huawei:yang:huawei-bgp"> <base-process> <afs> <af> <type>ipv4uni</type> <ipv4-unicast> <import-routes> <import-route> <protocol>direct</protocol> <process-id>0</process-id> </import-route> <import-route> <protocol>static</protocol> <process-id>0</process-id> </import-route> </import-routes> </ipv4-unicast> </af> </afs> <peers> <peer> <address>2.2.2.2</address> <remote-as>100</remote-as> </peer> </peers> </base-process> </bgp> <afs xmlns="urn:huawei:yang:huawei-l3vpn"> <af> <type>ipv4-unicast</type> <route-distinguisher>100:1</route-distinguisher> <tunnel-policy>LDP</tunnel-policy> <vpn-targets> <vpn-target> <value>100:11</value> <type>export-extcommunity</type> </vpn-target> <vpn-target> <value>100:11</value> <type>import-extcommunity</type> </vpn-target> </vpn-targets> </af> </afs> </instance> </instances> </network-instance> <ifm xmlns="urn:huawei:yang:huawei-ifm"> <interfaces> <interface> <name>GigabitEthernet0/5/0.1</name> <ipv4 xmlns="urn:huawei:yang:huawei-ip"> <addresses> <address xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge"> <ip>20.1.2.9</ip> <mask>255.255.255.0</mask> <type>main</type> </address> </addresses> </ipv4> </interface> </interfaces> </ifm> <ifm xmlns="urn:huawei:yang:huawei-ifm"> <interfaces> <interface xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge"> <name>GigabitEthernet0/5/0.1</name> <type>GigabitEthernet</type> <description>connect to pe2</description> <vrf-name>5G-RAN</vrf-name> </interface> </interfaces> </ifm>是不是觉得Netconf报文太长了,没关系,下面我们来分段解析我们的报文,并推导出我们报文对应的命令行。1. 模块一(使能使用YANG接口下发BGP配置)<bgp xmlns="urn:huawei:yang:huawei-bgp"> <global> <yang-enable>true</yang-enable> </global> </bgp>Netconf报文报文解析对应命令行<bgp xmlns="urn:huawei:yang:huawei-bgp">…</bgp>这一层报文表示此模块配置是依据huawei-bgp.yang模型的结构内容,是对bgp的配置。bgp yang-mode enable<global> <yang-enable>true</yang-enable></global> <global>表示对全局的配置。<yang-enable>表示是否使用yang接口下发配置。2. 模块二(创建VPN实例5G-RAN,并配置VPN路由引入,引入静态路由和直连路由,配置BGP对等体。)<network-instance xmlns="urn:huawei:yang:huawei-network-instance"> <instances> <instance xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge"> <name>5G-RAN</name> <bgp xmlns="urn:huawei:yang:huawei-bgp"> <base-process> <afs> <af> <type>ipv4uni</type> <ipv4-unicast> <import-routes> <import-route> <protocol>direct</protocol> <process-id>0</process-id> </import-route> <import-route> <protocol>static</protocol> <process-id>0</process-id> </import-route> </import-routes> </ipv4-unicast> </af> </afs> <peers> <peer> <address>2.2.2.2</address> <remote-as>100</remote-as> </peer> </peers> </base-process> </bgp> ……(模块三配置) </instance> </instances> </network-instance>Netconf报文报文解析对应命令行<network-instance xmlns="…: huawei-bgp"><instances><instance xmlns:… > <name>5G-RAN</name> …… </instance></instances></network-instance>这几层报文表示创建一个名为5G-RAN的L3VPN实例(instance),并开始配置。bgp 100 ipv4-family vpn-instance 5G-RAN<bgp xmlns=…><base-process> <afs> <af> <type>ipv4uni</type> …… </af> </afs> </base-process></bgp>这几层报文是对bgp的相关配置:1. <af>(address family)表示开始bgp地址族配置。2. <type>表示配置bgp实例的地址族类型。由于这几层报文在instance的下一层,所以这一段配置的是5G-RAN的bgp路由引入。<ipv4-unicast><import-routes><import-route> <protocol>direct</protocol><process-id>0</process-id></import-route> <import-route> <protocol>static</protocol> <process-id>0</process-id> </import-route> </import-routes></ipv4-unicast><af>的内层报文,由于之前type类型为ipv4地址族,所以继续配置ipv4单播选项,引入静态路由和直连路由。1. <import-routes>可引入多个路由。2. <import-route>引入一条路由。3. <protocol>引入的路由协议类型。4. <process-id>引入路由协议的id。bgp 100 ipv4-family vpn-instance 5G-RAN import-route direct import-route static<peers><peer><address>2.2.2.2</address><remote-as>100</remote-as></peer></peers><peer>配置bgp对等体。<address>配置对等体连接地址,<remote-as>配置对等体AS号。bgp 100 ipv4-family vpn-instance 5G-RAN import-route direct import-route static peer 2.2.2.2 as-number 1003. 模块三(配置VPN实例5G-RAN的 RT和RD值)<network-instance xmlns="urn:huawei:yang:huawei-network-instance"> <instances> <instance xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge"> <name>5G-RAN</name> ……(模块二配置) <afs xmlns="urn:huawei:yang:huawei-l3vpn"> <af> <type>ipv4-unicast</type> <route-distinguisher>100:1</route-distinguisher> <tunnel-policy>LDP</tunnel-policy> <vpn-targets> <vpn-target> <value>100:11</value> <type>export-extcommunity</type> </vpn-target> <vpn-target> <value>100:11</value> <type>import-extcommunity</type> </vpn-target> </vpn-targets> </af> </afs> </instance> </instances> </network-instance>Netconf报文报文解析对应命令行<afs xmlns="…: huawei-l3vpn"> <af> <type>ipv4-unicast</type> …… </af></afs>这几层报文是对地址族相关配置:1. <af>(address family)表示开始配置VPN实例的地址族。2. <type>表示配置VPN实例的地址族类型。由于这几层报文在instance的下一层,所以这一段配置的是5G-RAN的地址族。ip vpn-instance 5G-RAN ipv4-family<route-distinguisher>100:1</route-distinguisher><tunnel-policy>LDP</tunnel-policy><vpn-targets> <vpn-target><value>100:11</value><type>export-extcommunity</type> </vpn-target> <vpn-target><value>100:11</value><type>import-extcommunity</type> </vpn-target></vpn-targets><af>的内层报文,开始配置RD和RT(vpn-target)值。ip vpn-instance 5G-RAN ipv4-family route-distinguisher 100:1 vpn-target 100:11 export-extcommunity vpn-target 100:11 import-extcommunity 4. 模块四(创建子接口,配置接口地址并绑定VPN实例)<ifm xmlns="urn:huawei:yang:huawei-ifm"> <interfaces> <interface> <name>GigabitEthernet0/5/0.1</name> <ipv4 xmlns="urn:huawei:yang:huawei-ip"> <addresses> <address xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge"> <ip>20.1.2.9</ip> <mask>255.255.255.0</mask> <type>main</type> </address> </addresses> </ipv4> </interface> </interfaces> </ifm> <ifm xmlns="urn:huawei:yang:huawei-ifm"> <interfaces> <interface xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge"> <name>GigabitEthernet0/5/0.1</name> <type>GigabitEthernet</type> <description>connect to pe2</description> <vrf-name>5G-RAN</vrf-name> </interface> </interfaces> </ifm>Netconf报文报文解析对应命令行<ifm xmlns="urn:huawei:yang:huawei-ifm"> <interfaces> <interface> <name>GigabitEthernet0/5/0.1</name> …… </interface> </interfaces></ifm>这几层报文是对子接口的相关配置:1. <ifm>表示接口配置。2. <interface>表示进入接口视图。3. <name>表示接口的名称。总的来看本段报文表示开始进入某个接口下的配置。interface GigabitEthernet 0/5/0.1<ipv4 xmlns="urn:huawei:yang:huawei-ip"><addresses><address xmlns:… > <ip>20.1.2.9</ip><mask>255.255.255.0</mask> <type>main</type> </address> </addresses></ipv4>这几层报文是配置接口下的ip地址:1. 由<ipv4>可以看出,下面的配置都是关于ipv4的。2. <address>联合上一层的<ipv4>表明是对ip地址的配置。3. 具体到配置<ip>ip地址;<mask>掩码地址。interface GigabitEthernet 0/5/0.1 ip address 20.1.2.9 255.255.255.0<ifm xmlns="urn:huawei:yang:huawei-ifm"> <interfaces> <interface xmlns:......><name>GigabitEthernet0/5/0.1</name> <type>GigabitEthernet</type> <description>connect to pe2</description> <vrf-name>5G-RAN</vrf-name> </interface> </interfaces></ifm>由<ifm>可看出这一部分是对接口的配置:1. <interface>和<name>表示开始配置GigabitEthernet0/5/0.1的接口。2. <vrf-name>表示在此接口下绑定vpn。interface GigabitEthernet 0/5/0.1 ip address 20.1.2.9 255.255.255.0 ip binding vpn-instance 5G-RAN那最后让我们来总结一下怎么分析Netconf转CLI命令行的吧首先要明确,不论是Netconf报文还是CLI命令行,最终目的都是实现业务的配置。Netconf报文内容是基于下发业务的基础之上的;Netconf报文的结构也与命令行相似。所以我们要聚焦在两种下发配置的形式与业务之间的联系,理解每一句命令行或每一层报文与业务之间的相关性之后,就不难将两者之间进行转化。(命令行查询请查看相应设备的产品手册。)1. 从结构上分析比如下面这个表格的情况:配置业务CLI命令结构Netconf报文结构配置某接口下的IP地址interface XXX ip address XXX<ifm> <interfaces> <interface> <name>XXX</name> <ipv4> <addresses> <address> <ip>XXX</ip> <mask>XXX</mask> </address> </addresses> </ipv4> </interface> </interfaces></ifm> 配置接口下的IP地址,大概的业务层次就是:先进入某接口视图,然后配置ip地址、掩码等。不难发现,CLI命令结构的层次和Netconf报文的xml层次也都是按照业务逻辑层次来配置实现的。 2. 从内容上分析Netconf报文的每一层都是按照“<参数名称>参数值or内层内容</参数名称>”这个形式去构建内容的。那么从内容上去理解具体怎么从Netconf报文转化到CLI命令行,实际上也就是从内容上理解,Netconf报文的某些层次具体在配置什么样的内容。下面提供两种方法思路。请注意,这两种方法不是非A即B,而是相辅相成的。 方法一:从<参数名称>的角度理解业务。(推荐先用方法一)我们通过上文中给出的L3VPN的例子,发现很多时候,netconf报文中<>内的参数名称其实与业务配置含义或者说命令行的指令名称是十分相近或者说基本一致的。下面给出几个例子: Netconf报文配置业务类型/具体配置<ifm>……</ifm>接口配置<instance>……</instance>实例配置<interface>……</interface>进入视图<ipv4> <address>……</address><ipv4>配置ipv4地址 但例如“<af>……</af>”这种报文,从参数名称就很难看出在配置什么业务,这种情况,就需要用到方法二了。 方法二:针对无法从<参数名称>看出配置的业务是什么的情况,我们可以通过看“<参数名称>参数值or内层内容</参数名称>”中的“参数值”和整体结构来判断这几层报文在配置什么业务。看下面一个例子:Netconf报文配置业务类型/具体配置<afs> <af> <type>ipv4uni</type> …… </af></afs>通过<af></af>内层内容和参数值:<type>ipv4uni</type>,可以推测出是在配置ipv4地址族相关内容。 3. 看到Netconf报文之后,按照以上两种方式分析,基本上就可以梳理出下发的Netconf报文在配置什么业务,那么相应的命令行根据产品手册也就可以查出来了。 最后我们来看一下Netconf报文中一些前文未提到的部分。(对Netconf报文解释的补充)1. 关于urn:huawei:yang:XXX。例如:<ifm xmlns="urn:huawei:yang:huawei-ifm">表示本层报文其实是根据名为huawei-ifm.yang这个设备yang模型转化而来的。内层的所有配置报文都可以在此设备yang模型中追溯到。2. 关于operation=“XXX”。<instance xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:operation="merge">用来给配置数据指定操作类型。如果未携带“operation”属性,则默认为merge操作。Operation取值如下:merge:在数据库中修改存在或不存在的目标数据,如果目标数据不存在则创建,如果目标数据存在则修改。这是默认操作。create:当且仅当配置数据库中不存在待创建的配置数据时,才能成功添加到配置数据库。如果配置数据存在,则会返回,其中包含一个值“data-exists”。delete:删除配置数据库中指定的配置数据记录。如果数据存在,则删除该数据,如果数据不存在,则返回,其中包含一个值“data-missing”。
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签