吴忠捷:如何修炼成一名优秀的网络工程师

原创
网络 通信技术
51CTO《大咖来了》栏目特邀嘉宾吴忠捷讲述如何修炼成为一名优秀的工程师,他从良好的技术水平、规范的设计意识、认真细致的思考、灵活应变的头脑四大要点展开论述。以下内容根据嘉宾演讲内容整理而成。

【51CTO.com原创稿件】我今天想给大家分享一下怎样成为一个优秀的网络工程师。整体有这样几个步骤:第一,良好的技术水平,也就是硬实力,这是一切的基础。第二,规范的设计意识,硬实力有了之后就是规范性的问题,技术不仅要学会,而且还得会用在一个合理的位置。第三,认真细致的思考,细致是一个网络工程师必备的素质。第四,灵活的应变头脑,这主要考验经验的积累和心理素质。到了客户现场之后,作为一个网络工程师,面对任何突发状况都都需要冷静判断、灵活应变。

  一. 良好的技术水平

  1. 技术水平体现在哪里?

  技术水平主要体现在两个方面,一是你对这些理论够不够熟悉,知不知道它的原理,二是在设备上边能不能够把它实现出来。首先对于传统网络里的常用技术,你一定要知道其原理和应用场景,然后对于不同厂商的设备,你也要熟练各自的配置。

  你能不能在思科的设备上知道VLAN怎么配,Trunk怎么配,你能不能在华为的设备上知道OSPF怎么配,BGP怎么配、MPLSVPN怎么实现。你的技术水平是由这两方面构成的。

  2.网络工程师如何获取知识?

  对于学生群体和职场群体我给出两种建议。

  参加工作之前:作为学生,最主要的就是教材。传统网络教材有很多,我主推思科,思科在讲课方面最棒的就是明教教主秦科。把教材上所讲的理论都记熟,然后再通过模拟器做实验来验证这个理论,达到相互巩固的效果。此外,还可以看一些技术博客,同学之间也可以进行良性交流。

  参加工作之后:你可能没有太多空余时间,那么我在这里提供4点建议。

  (1)巡检。不管你是做实施还是做运维,必须要重视巡检。巡检是你提升技术最好的一种方式,参与割接的机会也最多。从巡检中抓出来的东西都是正儿八经的模板,可以套用。另外在巡检之中发现不懂的问题也可以及时去解决。

  (2)重视官方提供的手册案例。因为一般来说,官方的文档都具有一定的权威性。举个例子,你接触了新华三的10512这个交换产品,可以通过百度找到新华三官网链接,点击进入就能找到“相关手册”,可以查看其中的典型配置举例,通过这些案例你能同时熟悉它的场景和命令。

  (3)积累项目实战经验。有机会就多参与实战,多进几回机房,多熬几次夜,多参加几次割接,这样也能够得到一个更好的提升。

  (4)请大佬指点迷津。真正进过机房、上过战场的大佬跟你说的话,还是得仔细听。

  tip:学习思科最好的方式是看教材,而且思科的模拟器多且功能强大,BUG少,把思科学会了,理论学懂了,实验做会了,再通过手册去看华为跟华三就简单了。掌握这个思路以后,不管任何厂商的设备你都可以信手拈来,这是第一步——打好基本功。

  二. 规范的设计意识

  规范的设计意识,意味着能让每一个技术都用到合理的位置,作为网络工程师在设计网络的时候,永远要抓住整个网络设计里的重点。

  1.引子。首先请观察一下图中的这张网络。这个是一个学生的毕业设计,在核心层做dhcp服务,但是下面的PC机不能获取到正确的动态地址,相当于dhcp弄到核心上了,他想通过核心上的dhcp功能给下面这些主机分配这些IP地址,但是分配不到。我先给大家说几个通用的规范之后,我们结合看一下这个设计:它的可取之处和不足之处都在哪儿?它哪些重点没抓住,哪些地方又是亮点?

  2.几个通用规则。

  (1) 二层连接要设计成三角形。这是我个人总结出来的,可能大家不一定认同。在我多年的实践经验中,如果把二层结构设计得太复杂,很有可能造成生成树无法收敛。

  (2) 如果核心不做网关,则尽量在核心上少配置其他的功能。基本上核心层的设计要点都是高效、稳定,所以说核心层通常都只会针对路由、选路等进行配置,除此之外我建议别在核心上弄一些花哨的功能。以上图为例,在核心层做DHCP实际就不太可取。别看它是一个很简单的分配IP的功能,实际上DHCP很占资源。尽量让核心少去接受这些效率又低、功能又不是核心应该承担的东西。

  tip:如果实际需要你用网络设备来实现一些杂七杂八的功能,你可以把它移到汇聚上。汇聚层设备兼备合流和网关功能,我建议诸如生成树、基础的ACL、DHCP等都可以给它配置在汇聚上面。另外,接入层是直面终端的,所以像生成树、端口安全、MAC过滤、802.1X认证,这些都是配置到接入层上的。

  (3)交换路由、防火墙各有职责,不要替用。以上是关于层次的问题,这一条则与设备相关。交换路由主要是针对数据转发,适合交互路由,所以像OSPF、BGP这些路由一般情况下都会把它只放在交换机或者路由器上。而防火墙是安全设备,通常适合配置ACL、安全策略或者NAT,它不太适合交互路由。一般在网络设计过程中,过墙流量遇到防火墙的时候基本上用的是静态路由,也就是说防火墙通常都配置静态路由。所以交换路由和防火墙是各司其职的。

  (4)IP地址使用规则。尽量不要使用192.168开头的地址;三层接口互连使用/30的地址;热备互连对接用/29;必须要注意规划Loopback地址,因为Router-id很重要。

  (5)路由协议使用规则。OSPF的网络类型一般为P2P;配置IGP邻居最好用接口地址;两台设备之间一般来说只建议用一个IGP邻居(活用静默接口);iBGP一般使用Loopback接口作为更新源,而eBGP一般使用物理接口作为更新源,并开启BFD;养成在接口上配置描述的习惯。

  3.方案分析。

  【案例】某分支机构计划建设一套局域网,要求内外网分离。客户采购的网络设备为:一台华为AR3260路由,两台华为S5720交换机,两台华为S3700交换机,一台华为USG6600防火墙,现在设备都已经上架并连接好了。

  【需求】请根据这个结构,满足下列网络建设需求:

  1. 华为AR3260作为连接中心机构网络(内网)的上联设备,与中心结构一侧的网络设备建立了BGP邻居,用于收取总部内网路由。

  2. 连接外网使用USG6600防火墙直接连接,外网使用PPPoE拨号的方式获取IP地址。

  3. 两台S5720作为局域网的网关设备,两台S3700作为局域网的接入层设备。

  4. 局域网需要两个网段,一个只允许访问外网,另一个只能访问内网。

  5. 分支机构总共不超过200个主机。

  【方案】根据需求来逐一看一下3套设计方案。

  【方案1】

  l 分配两个IP网段,VLAN10是10.101.1.0/24,VLAN20是10.102.2.0/24,让10.101.1.0/24访问内网,让10.102.2.0/24访问外网。

  l 10.101.1.0/24只能访问内网,所以在USG6600上就不能对这个网段做NAT;而10.102.2.0/24 只能访问外网,所以在AR3260上,用ACL拒绝这个网段访问内网即可。

  l 两台S5700上做MSTP+VRRP ,SS700-1做VLAN10的根桥,并作为VLAN 10 :10.101.1.0/24的根桥和Master设备,S5700-2 做VLAN 20的根桥,并作为VLAN 20 : 10.102.2.0/24 的根桥和Master设备。

  l AR3260和S5700之间跑OSPF ,做OSPF和BGP的双向重分发;对USG 6600的方向写默认路由即可。

  l 可以考虑把USG 6600和AR3260换个位置,这样AR3260就能支持DMVPN,而防火墙与内网互连也能支持一般的路由功能。

  【问题】:让USG 6600和AR3260互换位置,其目的只是为了适应DMVPN的备用通道,这属于本末倒置,是方案1的不可取之处。而且华为没有DMVPN,有的是DSVPN,而且要另外购买授权才能支持。而且把防火墙跟路由器调换了位置之后,让防火墙又跑OSPF又跑BGP,肯定会成为访问瓶颈。此外,让路由器直接暴露在防火墙外,安全性也下降了。

  【方案2】

  l 分配两个IP网段,VLAN 11: 192.168.1.0/24,VLAN 12 :192.168.2.0/24。让 192.168.1.0/24访问内网,192.168.2.0/24访问外网。

  l 允许访问内网的主机,在USG 6600上写ACL , 拒绝其访问外网。允许访问外网的主机在S5720上写ACL ,拒绝其访问内网。

  l 两台S5700上,做MSTP+VRRP,根桥和Master都在S5700-l 上。

  l 让AR 3260和S5700、 USG 6600之间运行OSPF ,再在USG 6600上以 always的方式注入一个默认路由到网络中。

  【问题】:使用了垃圾IP地址;让防火墙又跑OSPF,又注入静态路由,降低防火墙性能;在S5720上写ACL,又在防火墙上写ACL,增加后期运维难度,且没有好好考虑S5720上是否能支持复杂的ACL。这种方案属于典型的生搬硬套的教科书,用各种技术堆砌,而没有考虑设备特性。

  【方案3】(标准设计)

  l 分配两个IP网段,VLAN10:10.101.1.0/24,VLAN20:10.102.2.0/24,让10.101.1.0/24访问内网,让10.102.2.0/24访问外网。

  l 10.101.1.0/24只能访问内网,所以在USG6600上写静态路由的时候,不写10.101.1.0/24。而10.102.2.0/24只能访问外网,所以在AR3260上不把10.102.2.0/24发到BGP里,让总部收不到这个路由即可。

  l 两台S5700上,做MSTP+VRRP,SS700-1做VLAN10的根桥,并作为VLAN 10 :10.101.1.0/24的根桥和Master设备,S5700-2 做VLAN 20的根桥,并作为VLAN 20 : 10.102.2.0/24 的根桥和Master设备。

  l AR3260和S5700之间跑OSPF,在AR3260上写一条大段的Null0静态路由,再用network把大段路由注入到BGP内。

  三. 认真细致的思考

  假如某客户有两台核心设备Cisco6509现在要换成华为S12708,那么你觉得前期应该做哪些考虑?这个问题考验的就是你是否认真细致。

  如果你只是考虑到:HSRP改为VRRP,PVST改为MSTP,有EIGRP就改成OSPF……是远远不够的。首先,HSRP改VRRP,核心如果有的话肯定要改成VRRP,但是HSRP和VRRP有个最重要的区别就是组播地址,组播地址先要记牢,然后改的过程怎么操作?也要考虑清楚,一般都要执行先关后改的操作步骤;其次,EIGRP改OSPF,两者有本质区别,而且他们的AD值不一样,具体怎么改也是有讲究的;再者,生成树的问题。一个正规的网络是不会允许你把生成树搞到核心上面的。所以考虑问题要全面。

  除了上述的技术问题,还要考虑哪些因素?

  第一,工勘。这包括机房环境的调研、上架位置、空余线缆的长度等等 。比如说Cisco6509和华为S12708都是大型设备,会很占机柜的高度,所以在换之前你要先去机房调研清楚,原先Cisco6509的位置能不能放进S12708,有没有足够的空间。

  第二,测试。新设备来了之后能不能正常启动。一般情况下,设备都是通过物流运输到现场的。万一在运输过程中造成了损坏,万一板卡坏了,万一抬到机架上后发现不能启动,就会造成很大麻烦。所以一定要测试设备能否正常启动,设备软件是否功能正常。

  第三,采集。这个采集主要是针对更换之前的设备。一方面你要把之前设备上面的show run采集出来,在这个例子中就是在换设备前把配置写下来,按照原来Cisco6509的配置来配,当然还要进行配置的翻译,就是说要把思科的命令翻译成华为S12708的命令,这就是采集出来进行配置翻译的过程。另一方面还要采集一下原先的路由信息,也就是show ip route,把路由表给抓取下来,用作设备更换前后的对比。此外,老设备的运行状况,比如CPU、内存利用率、板卡工作是否正常这些信息都需要采集。因此在割接之前一定要把设备巡检一遍,以防你把老设备关机后发现网络要回退,结果回退后设备起不来了。准备工作做得越仔细,后续就用得越轻松。

  Tip:采集结束,割接之前还要进行测试。这包括:新设备硬件功能测试,新设备软件功能升级,思科和华为对同一种设备的协议解释差异。有条件的话可以做一次模拟实验。

  最后需要细致考虑的是,一定要注意配置顺序永远记住网络在交付之前不要锁设备,就是说阻碍你通信或者说阻碍你登录到设备这些东西,一定要最后再配置。与接口认证、AAA、登录源地址限制等操作,一定要等到网络业务正常后再配置。还有一点,如果说有防火墙在里边割接的话,防火墙先全部放通策略,一定要保证网络在畅通无阻的情况下测试通信之后再去增加防火墙的策略。

  四. 灵活的应变头脑

  如何去做到灵活?这与网工的心理素质有一定关系。首先看一个例子。

  某客户的思科ASA防火墙配置了A/S模式的Failover,有一天客户说防火墙的Failover突然裂开了而导致断网,经检查,是因为两台Cisco ASA的软件版本不一致导致的Failover裂开。

  面对这一问题,首先你要做的不是去分析什么原因导致Cisco ASA的软件版本不一致,因为网络断了,当务之急是抢通网络。任何情况,都是先考虑解决断网问题,再进行后续优化。很多时候处理网络故障都可以“就地取材”。在这个例子中,冷静分析如何灵活处理呢?首先,断开版本较低的那台Cisco ASA上的所有连接,解决IP冲突的情况,把网络抢通。然后,把高版本的IOS拷到你的电脑上,然后再灌入到低版本的设备中,问题就解决了。

  要保持灵活的头脑,就必须养成良好的工作习惯和良好的心理素质。收集好正版的 IOS (.bin)、VRP (.CC)、Comware(.ipe)文件,随时带在U盘内便于使用;设备的操作系统

  要经常备份或提示客户备份;收集各种型号设备的配置命令,针对通用配置和模板化的配置最好是抓出来,形成自己的配置思路;任何情况下都要保持冷静;重启设备或断电时要得到客户负责人的提示。

  更多精彩内容请关注51CTO《大咖来了》栏目http://aix.51cto.com/activity/index.html

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

 

责任编辑:张洁 来源: 51CTO
相关推荐

2016-02-25 11:42:19

2019-03-05 09:57:08

php编程语言工程师

2012-11-29 10:05:20

2017-04-14 10:37:21

2021-07-29 11:14:03

DevOpsLinux工程师

2009-02-10 15:39:59

软件评测师软考经验

2017-11-07 18:13:45

开发者故事

2016-10-21 15:57:10

2009-06-16 13:08:05

思科网络工程师CCIE

2011-05-03 08:54:36

2017-09-21 09:44:00

编程程序员软件开发

2016-06-27 10:40:12

软件测试敏捷开发

2014-12-23 09:40:41

CTO

2013-09-25 10:47:25

创新公司员工

2014-05-22 10:43:26

移动开发者优秀

2013-01-07 09:41:48

2014-01-13 11:04:32

2021-05-25 09:51:42

架构运维技术

2021-01-18 09:00:00

人工智能机器学习工程师

2016-01-28 11:18:09

卓越前端工程师
点赞
收藏

51CTO技术栈公众号