虚拟化网络演进模拟对话

来源:互联网 发布:自己建一个淘宝秒杀群 编辑:程序博客网 时间:2024/06/08 06:31

主题

论述虚拟化环境网络实现的选择和技术发展。其中涉及vlan、vxlan、gre、vngre、sdn、openflow等当前颇具争论的技术。  

 

对话人物

TOM - 技术精湛,认真严谨、但略显保守的网络工程师。虚拟人物,俗称猫兄。

JERRY- 思维灵活、但略为冒进的从事云计算(弹性云)服务售前工程师。虚拟人物,俗称鼠兄。

_@@@@@@@@@_

Kpang:她是真正的网络专家(绝不是砖家),真实人物。通过微博给予了我许多极有价值的建议。

 

对话场景 —— JERRY 和客户沟通需求后,找TOM讨论技术方案。

 

第一天

JERRY : 猫兄,告诉你好消息,今天我谈了一家比较大的企业客户,他们想租赁大量的虚拟机。

TOM   : 租唄,反正我们我们有的是机器资源。

JERRY : 不过,和多数个人站长只租赁单机不同,人家企业用户要求租赁的虚拟机组成独立集群:要求内部互通外,对外隔离。这个容易实现吗?

TOM   : 这有何难! 小菜一碟啦。用iptable 的规则很容易就能把集群和外部隔离开,同时保证内部想通。 基本没什么开发量,一些脚本就能完成。

JERRY : 强呀你,iptable 没啥副作用把。

TOM   : 呵呵。要说有吧,也有点。一是当有新机器再加入集群就需要变更集群中所有机器的iptable规则——没有集中控制;另外iptable扩展性传说不太好。不过问题不大,多数用户都能接受。

JERRY : OK。搞定客户,我请你吃饭。

 

第二天

JERRY : 猫兄,客户基本谈定了。很有可能将他们机房的所有机器和服务搬迁到我们的虚拟机环境啦。哈哈,真是轻松搞定呀。

TOM   : 呵呵,客户当然有这个需求啦,自己维护机房当然又贵又麻烦。

JERRY : 是呀,我告诉他们:'"你们所有服务可以无缝迁移,不需要任何改动。几乎零成本"。我们服务这么便宜、安全,所以他们很是乐意啦。

TOM   : 你告诉人家"无缝迁移"? 那你知道他们都有什么服务吗? 

JERRY : 能有啥呀,无非是什么数据库、办公自动化、系统管理 、dhcp、dns 、 .....

TOM   : 慢着、慢着、如果有dhcp等服务,那是需要在二层网络的协议——因为它用到arp等二层协议,我们iptable控制的可是三层网。也就是说ip层的控制,所以iptable隔离方案是无法支持二层网络。

JERRY : 没太明白啥意思(紧张样)。

TOM   : 简单讲吧,因为如果我们用iptable实现网络划分,实际上划分的是三层网络是,iptable 没法给客户提供一个二层网环境的。所以使用二层网络协议的客户服务都无法无缝迁移过来。

JERRY : 这下麻烦啦,我可承诺过客户,啥都不用改,就能迁移的。我这下可犯错啦。(扇自己嘴...)

TOM   : 这个不怪你,我昨天只想到怎么简单怎么搞,没多从客户角度考虑。其实多数客户IT环境都是二层网络的,所以实现虚拟二层网才是不二选择——二层网更安全,也给客户更大自由。

JERRY : 猫兄,快快想办法吧。客户的需求就是上帝的呼声!

TOM   : 我们可以给客户实施VLAN方案。每个大客户给一个VLAN,VLAN可是一个标准的二层网啦。

JERRY : 好实施吗? 复杂吗? 我可等不起呀。

TOM   : 很好实施,vlan需要的802.1q都是linux的标准模块,在host宿主机中进行配置就可以使用! 其实说白了,就是协议上打vlan tag,一些简单脚本就能完成虚拟vlan配置。不过....(为难样...)

JERRY :不过啥呀?(又紧张样)

TOM :不过在我们的网络环境中是不能让你这么做!

JERRY :为啥(愤怒样)

TOM :因为为了防止广播风暴等缺陷,我们公司的网络环境并非是一个大二层网的,而是通过交换机划分了很多VLAN。大概每十几台机器就划分一个vlan啦。所以

客户集群规模大点时,比如超过我们已划分的vlan组内机器数目限制,那就没办法搞啦。除非...(为难中)

JERRY :别绕圈子,快说除非咋样? 把我们网络环境中的VLAN化大一些,或者搞成大二层是吧? 

TOM   :不是说了吗,二层网络有广播风暴等问题,所以部能搞的太大,所以我们才限制二层网大小的。当然如今新的Trill协议到似乎能解决上述问题,实现真的大二层网络。

JERRY :  那赶快上Trill呀,还等啥。

TOM   :  Trill协议还没有推广开,我们不可能去当吃螃蟹第一人把。

JERRY :  那你刚说除非什么?

TOM   :  我是说 —— 除非在交换机上打开VLAN间对应的trunk,让虚拟vlan广播能跨我们的划分的Vlan边界。这样才能组成更大的虚拟vlan。但是这要操作交换机!而且在弹性云环境下,还需要动态编程操作交换机。

JERRY :  那就操作呗,又啥不能的。

TOM   :  鼠兄,你太没有安全观念啦,网络部门是禁止除网管以外人员操作交换机的。更别说用软件控制啦。

JERRY :又把鸡毛当令箭,交换机有啥不能操作的呀。你们网络工程师也太死板了,具体问题具体对待呀,该操作就操作。怕啥呀。(不耐烦了)

TOM   :  不能就是不能,这个是原则。我们公司网络规划是有自己要求和规划的,而且有些网络环境是电信等提供的,我们不应该、也没权利去动这些现有的设计。(僵持中)

JERRY :不管怎么样,你得给我想个办法。客户的需求就是上帝的呼声(又上纲上线)

第三天    

jer r y :猫兄,快救场呀。马上要去拜访客户了,虚拟子网有方案了吗?  

TOM  :我请教了网络专家kpang,找到了些思路。我想我们可借助overlay技术实现二层虚拟子网。  

jerry  :别买关子啦!啥是overlay?说通俗些!

TOM  :overlay就是类似于隧道封装技术,比如 “MAC OVER  IP”。这样的话,我们只需要三层协议通情况下,就能在其上实现虚拟的二层网络。而各机房都轻松保证三层网联通,所以吗 ...

Jerry  :  这个技术很酷呀! 有现成的方案可以上马?

TOM  :  有呀,比如VPN常用的GRE\L2TP就是典型的 “MAC OVER  IP”协议,而且linux中本身就支持GRE隧道。配置一下就能使用,不比iptable复杂多少。

Jerry  :  GOOD, 那就这么办呀

TOM  :  其实openvswitch等系统里已经集成了GRE,我试过了,还挺好用。

Jerry  :  GREAT,真是天助我也呀。我心里的石头落地啦。

.............

三个月后的某天:

Jerry  :  猫兄,你知道这几个月我们谈了多少各客户吗?虽然都是小客户,但累计都好几千啦!我的目标是年底过万(自豪中)

TOM  :  woops ! 忘了告诉你我们传统VLAN协议智能支持4096个子网,现在差不多到上限啦。

Jerry  :  那怎么办,的赶快解决呀。听说vlan可嵌套,那样就没4096限制了。 

TOM  :  就现有的设备而言,还不能支持嵌套vlan等扩展,所以可以再搭建一个套网络集群先顶一下啦。但多一个集群,管理上可要麻烦多了。委屈运维的兄弟们了(无奈)。

Jerry  :  呵呵,OP们万岁! 对了,我马上就准备去引进一家互联网企业,听说他们数据流量很大,如果引进成了,那可是我们最好的成功案例呀。

TOM  :  woops ! 鼠兄! 还有一个小小的问题 ... (尴尬中)

Jerry  :  又怎么了? 

TOM  :  忘了告诉你啦,GRE方式组的VLAN在性能上有那么点损失,对一些流量要求不大的小用户,还能应付。但如果是互联网这种“流量大户”,我怕性能不过关呀,尤其是网络响应时间方面。

Jerry  :  为啥呀?

TOM  :  原因很多,主要原因有没法做ECMP-based load balancing、没法利用NIC 的offload处理VM实际内部包,其实这些都对性能挺重要的,尤其到万兆网环境,没有这些功能,性能大概能下降一半以上。

Jerry  :  那玩完啦? 我们没法满足高级客户啦。咋办(沮丧中)。  

tom   : 别集,我请教一下kpang去。

第二天 

TOM  :   鼠兄。kpang给了我们一些建议!要不试试看Vxlan协议吧,这个新协议主要利用了ip广播等技术解决了load balance问题;也同时扩展了vlan标记、也就是说增加了系统支持的vlan数目,当前实现应该上万没问题。  

Jerry : vxlan已经有实现了吗?

TOM  :  有不少实现了,建议我们使用openswitch的实现。 

Jerry  :  需要特殊硬件吗? 

TOM  :  可以有,也可以没。虚拟网卡在软件层面上可以支持vxlan。openvswitch就是这么做的。

jer r y :o penvswitch  真是活雷锋呀!哈哈。(兴奋样)  

Tom :绝对雷锋,它是apache协议,商业很有好。适合你的拿来主义!

jerry: 对,就先用vxlan啦。虚拟网络的终极方案!

tom:呵呵。技术发展哪有终极呀,除了vxlan外,还有和它类似的nvgre协议。不过个人觉得nvgre除了突破4096个子网限制外,还是有gre协议上面所说的缺点。 

jerry:那可以说vxlan是虚拟化网络当前的最佳实现啦。

tom: 当前如此吧。 尤其对于那些在二层网上已经投资的企业用户。

jerry:什么意思,难道虚拟子网还有其他途径实现吗。

tom: 如果从用户隔离、 动态组网角度讲,sdn网,或者叫用户定义网范畴除了overlay方式实现网络隔离外,还有不少选择。比如o pen f lo w 等协议也可做到。

jerry:openflow什么东东?一般谁用?

tom: openflow一言难尽,大约是将网络控制面和数据面分开的开放、开源协议,允许用户编程操作流表计算、拓扑转发,从而实现自定义网络吧!现在国外的互联网巨头们很喜欢sdn,而且多选择openflow的实现。

jerry :那我们要紧跟潮流呀。占领技术制高点。   

tom:得拉吧!对于我们idc来说openflow现在还不是我们的菜 。sdn在网络基础架构里可属于颠覆性改变,网络硬件转发路由等部分功能上将被弱化,而应用方将接管这些。思科等网罗巨头还很有点抵触啦。目前也就是google等在尝试,而且听pkang说目前主要是用于调度数据中心之间的流量。  

jerry: 这么大变化呀,怪不得思科抵触呀。我也不赞成,我最怕再学习新东西啦。

tom:  不要怕,短期内除了巨型互联网公司因自己多变的业务而在尝试openflow外,一般企业还用不上。

jerry:但sdn这个技术我看还是有前景的,我们应跟进它,以后估计能用的上。

tom :高瞻远瞩呀!我估计未来我们idc会用sdn的。不过当前对中小企业我们还是提供基于vxlan的虚拟二层子网是比较合理的方案。这样保护了企业已有投资!  

jer r y :听兄一席话,胜读十年书呀。 虚拟网络真是博大精深。再不学习,就真是out啦。

tom :  孺子可教。哈哈。  

原创粉丝点击