X

随笔:几年前和HP交换机打交道时的奇葩遭遇

弈心:从事计算机网络工作十一年(新加坡7年,沙特4年),2013年考取CCIE,在新加坡先后任职于AT&T,新加坡交通部,苹果,Equinix,苏格兰皇家银行等大型企业、银行和政府部门。目前供职于“世界第一土豪大学“沙特阿卜杜拉国王科技大学(KAUST),担任Senior Network Engineer,为KAUST校史上第一位也是唯一一位华人IT部门高级职员。2019年6月在知乎发布了华语圈第一本专门为编程零基础的网络工程师量身打造的Python教程《网络工程师的Python之路》。


2013年前后我在新加坡某SI公司任职时曾参与新加坡某政府部门的网络运维项目,所用到的设备均为HP的(那时HP还没有和HPE分家)。笔者是做思科出生的,对HP,和H3C的设备并不熟,当时找HP的售前哥们要了一本他们培训内部人员参加HP ExpertOne系列认证考试其中一项ATP FlexNetwork Solutions (HP0-Y49)的学习教材(下图):


笔者老老实实花了不少时间从头自学,后来在没有题库的情况下硬过了考试,拿到了认证,其实根本没什么用,估计听说过HP的这个 ExpertOne系列认证的人都没几个吧。

对学思科IOS出生的网工来说,HP的设备就是彻头彻尾的奇葩,特别是当项目里要混用Provision和Comware这两大系列交换机的时候,至于为什么, 看看下面笔者当年所做的一些工作笔记你就知道了:

HP的交换机分为Provision和Comware两大系列,前者是HP的亲儿子,简称老大,后者是HP 2010年从H3C/3Com买来的娃,简称老二,HP花重金买来非亲非故的老二的原因之一是它看重了3Com交换机的IMC(Intelligent Management Center)功能,既然老大和老二不是一个爹生的,那么很自然的他俩在交换机的默认出厂配置,性能,协议,兼容性,甚至对一些网络术语的使用上都产生了很多非常奇葩的问题,让很多刚接触HP交换机的网工(尤其是思科背景的网工)感到非常困惑和不适应。

1. 老大和老二都是三层交换机,老二默认开启了IP routing,老大没有

2. Console端口:老大叫Console port,老二叫Aux Port。

3. 老大不支持ISIS路由协议,老二支持。

4. 路由协议的管理距离: 老大老老实实的跟着思科叫AD,并且数值也是按照思科标准走,比如OSPF是110,RIP是120等等,但是老二有自己的标准,它的”管理距离”叫Preference,你在老二上“display ip routing-table”后会看到一个叫”Pre”的东西,就是它了,而且老二的数值标准也和老大不一样,老二的OSPF是150,RIP是100,静态路由是60 ,但是在老二的路由优先级比较中,OSPF的路由是优先于静态路由的!怎么样?够奇葩不?

5. 老大默认开启了TELNET和SSH, 老二则默认关闭SSH,至于TELNET,还要看老二的OS版本,老版本默认关闭,新版本默认开启。并且老二的SSH和TELNE不能并存,SSH开启后,便无法再开启TELNET。

6. 老大和老二默认状态下都没有启用STP,需要手动开启(默认是MSTP)。那么默认不开启STP有什么影响呢?有时候公司里一些闲的蛋疼的用户没事给你把两个in-wall ports拿一根网线连在一起做成一个环路,短短的几秒钟之内就能给公司内网带来一场广播风暴,用惯了出厂默认就开启了PVST+的思科交换机的网工们很难想到这点,弄得环路排错都得搞半天。

7. 老二的STP默认状态下没有使用工业标准的port cost structure,这和老大相反,如果网络内同时使用老大和老二,并都开启了生成树,则必须在老二上敲命令“stp pathcost-standard dot1t”让它强制使用open-standard port cost structure,否则会产生STP链路开销计算的问题。

8. 老大的Trunk port不叫trunkport,叫tagged port, access port不叫access port,叫untagged port. 另外还有个不伦不类的Hybrid Port。老二倒是规规矩矩的跟着行业标准的用Trunk port和access port。

9. 那么老大有Trunking吗?有,但这个Trunking不是我们通常理解的VLAN的trunking,它指的是Link Aggregation Protocol(LACP),这个很奇葩,连弟弟老二都不能理解,思科出生的网工就更不能理解了,什么乱七八糟的命名规则。

10. 那么老二有奇葩的地方吗?当然有,众所周知,LACP分Static和Dynamic两种,但是这个老二居然特立独行,根本不支持Dynamic LACP,也就是说如果你有两台老二相连做LACP,你必须把两台老二配置成active-active的Static LACP,你要配成active-passive或者passive-passive都不可以。

11. 老大默认状况下是不需要任何密码就能让你进入CLI为所欲为的,而且默认TELNET和SSH都是开着的,安全性非常让人堪忧,于是你在老大上照着思科的思路给operator mode(>命令行)和manager mode(#命令行)分别配上了username和password后,接着敲wr mem, 然后自以为高枕无忧的你关掉交换机,等下次再来配置的时候就傻眼了,怎么不用用户名和密码就能直接进managemer mode了?这还有屁的安全性可言?原因很简单,老大的write memory是不会帮你保存诸如username,password, RADIUS shared secret keys, SNMP, 802.1X authenticator security crednetials, SSH client public keys等等这些所有和安全相关的用户名、密匙的配置的,要保存这些东西,你必须在wr mem之前先敲上include-credentials这个命令才行,老二表示这绝对是个奇葩的设定!

12. 老二的loop口只支持/32的子网掩码,你要配个255.255.255.0都不可以,对于这点,老大的优越感油然而生,亲口表示我弟弟太死板了,只要范围合理,哥哥我loop口任何子网掩码都可以配。

这些只是我当年一些印象比较深刻的奇葩点,还有更多的都懒得写了。至于7年后的今天HP的交换机技术发展到什么程度了我丝毫不关心,因为打那以后我发誓以后再也不会碰HP的设备了,专心在思科和网络运维自动化的领域深耕。