修改交换机或在交换机上编程有多困难

修改交换机很困难,因为得设计新的交换芯片。如果买现成的芯片,根据厂家提供的SDK API进行开发,就简单多了。
■网友
目前除了一小部分支持sdn的交换机之外,大多数的交换机是一个封闭的系统,不对外提供api,所以从这个意义上来讲除非是厂商自己,其他人来修改交换机或是在交换机上编程是不可能的。sdn的目的就是要改变这种现状,让交换机变成一个开放的系统,通过对外提供标准的api让对交换机编程成为可能。低端交换机的开发并不是一件困难的事情,买成熟的商业芯片调sdk就OK了,业界基本上也都是这么干的。高端交换机对稳定性和交换容量有要求,门槛略高,对于卖给运营商的,没有在业界积累多年的经历运营商也不会买你的,当然除非你上面有人。至于自己开发和设计交换芯片,大多数的厂家是不这么干的,都买成熟商业芯片。高端交换芯片市场上基本高通一家独大,低端相对多一点,国产的也有。
■网友
我身边的同事最近就在做switch上的事情,干啥我没有去了解,我能体会到的就是,一年多过去了,还是焦头烂额,到最后我们敬爱的satya都亲自下指示了……
■网友
配过cisco Nexus 9000系列交换机,完全支持编程特性。如shell、python、C等语言。
■网友
要在交换机上做二次开发开发,或者也叫应用开发,目前难度肯定是有的。原因:传统设备制造商(相对于后面提到的ONF)生产的设备系统封闭,API及文档都不会提供给用户,也从来没打算让别的厂商或用户参与进来。Switch通常都是在嵌入式专有硬件及平台开发的,逆向去修改几乎不可能,因为很大设计文档你根本拿不到,拿到也会侵权。然而,好在ONF(开发网络组织)已经并且还在致力于制定统一的SDN标准中,包括越来越多的厂商也加入进来了。但是这是个漫长的过程,因为现行网络是基于自主分布式路由报文的,技术更替是个渐进过程。并且集中式的交换技术是否适合大规模、大区域的部署仍是未知数,就目前我所在研究机构情况看,至少在数据中心还是很靠谱的!ps:我们研究机构建立了全球首家OpenFlow测试实验室。再回到上面接着说,由于SDN的出现,为可定义Switch带来了曙光,确实当前一下知名的公司设计并生产了部分这类设备,如NEC、Juniper、Fujitsu、Cisco都有,但是只是基本的OpenFlow协议,各家都试图构建自己的SDN版本,因为大家都心知肚明一个事实:如果SDN革命取得成功,这些大佬就会想PC一样,仅仅成为组装厂,这是大家都不愿意干的。最后,可以看得出,整个SDN工业界都打着自己的小算盘,必然发展缓慢了,但是大家还又不敢怠慢研究,因为你随时都有可能成为下一个NOKIA。
■网友
不知道你说得交换机是不是Switch。如果是的话,我在曾经是学校网络中心的学生助理,我们学校最常见的底层交换机是H3C E126,由于学生宿舍负荷太大,平均每个学期有十几台是出故障要被换掉的,有时候新机子没回来又碰巧遇到故障的,就只能自己拆掉交换机修一修,还好多是电源模块的故障。哦,忘了说了,我大学专业是电子信息工程。说这么多,为的是,交换机上面用的处理芯片真的是很低端啊(不是说质量差,是性能),配的RAM又小!你要现实在上面编程,那就得把整个架构设计都得换掉啊!补充一句,能用E126现在我已经很兴慰了,起码支持远程telnet,或更安全的SSH,妈的,以前那种古板的web界面(居然不支持命令行),只能扛着办公室那台厚重的商务本,还得拿条串口转USB的去到各个机房接console,每次做完下来感觉和慢跑4公里(十圈足球场)的感觉差不多了。学校应该也有人上,只好匿了。
■网友
我感觉题主不太理解交换机编程和编写交换机软件的区别。kitty以及大多数从业者关心的是前者。目前cisco的nx-os系统支持ACI统一架构,可以使用Java及Python接口对交换机进行统一的配置和调度,基于策略进行统一的抽象管理。这件事酷的原因其实都不在代码层面而是在于软件架构和跨架构的协调orchestration方面,比如和云计算系统,SDN系统以及NFV的整合。


推荐阅读