SDN概念明晰(一)
Iaas世界的三大件:计算,存储和网络,个人认为最有意思的是网络,从硬件网络到虚拟网络,通还是不通,丢包还是不丢包,怎么去查一个网络问题,往往让一个IT菜鸟束手无策,这篇系列想把SDN虚拟网络讲清楚,从更高的角度审视相关概念,搭建框架,再去研究细节。但愿能够写好(担心~~)。
硬件网络的基本组成
一个普通的硬件网络(我们这里说的是以太网),首先要求的是一个子网组成,在同一子网的计算节点中,进行网络通信只需要走二层即可,于是出现了交换机这个概念,方便同一子网下的计算节点更高效的进行通信,原理就是建立和优化mac和IP的映射关系,那么随之而来的就是不同子网之间如何通信?于是出现了路由器这个概念,方便不通子网之间的计算节点进行通信,这时进行网络通信就要走三层协议,原理就是建立和优化IP 路由表。(需要计算机基础网络的基础)
综上,一个基础的硬件网络在设备上必须要包括:
- 二层交换机:负责二层数据的转发服务
- 三层路由器:负责三层数据的转发服务
- 连接组成子网的计算机
一个基础的硬件网络在概念上必须要包括:
- 路由器
- 子网
- 子网网关
- IP地址
考虑到现实生产,交换机和路由器还会有很多高可用的配置,如堆叠,主备。
网络工程师通过后台进行网络配置,把参数写入硬件里面,一个基本网络就组成了。
什么是SDN
SDN的英文全称是software defined network,软件定义网络,怎么理解这个概念?
- 网络还是那个网络,需要有二层交换机和三层路由器
- 实现方式发生了变化,用软件来实现,少依赖硬件甚至不依赖硬件
如何实现?答:就是用Linux实现,无论是交换机还是路由器,本质上就是一台支持TCP/IP协议的Linux主机,虚拟机物理机都可以。
这就是SDN的概念,随着开源技术的不断丰富和发展,我们利用Linux就能够实现硬件的交换的转发功能。
那么组成一个SDN包括:
- 二层交换机:Linux虚机可以实现
- 三层路由器:Linux虚机可以实现
- 连接组成子网的计算机:无论是虚拟机还是物理机
- 数据库:组成子网的信息要存在数据库里面
综上,我们可以发现:从硬件到软件,其实我们要实现的效果是一致的,只是实现方法上的不同,那么使用SDN会带来哪些好处呢:
- 节约资源:硬件占用空间都很大。
- 节约成本:硬件的购置成本很高。
- 方便灵活:虚拟资源的开通和销毁非常方便。
- 自主可控:硬件厂商的黑盒子容易被技术捆绑
- 发展趋势:开源技术是当今的技术发展趋势。
那么使用SDN也有哪些问题呢:
- 技术复杂:原来的硬件拓扑一目了然,但是一旦到了虚拟资源,尤其是通过分布式方式组合,容易让人头大。
- 不够稳定:软件同硬件相比,虽然成本大幅下降,但是稳定性相对差很多,毕竟“便宜没好货”。
以上2个问题,通过底层技术封装和分布式设计,能够在一定程度上解决。
我们必须认识到:开源技术是未来潮流,掌握SDN对于IT技术人员来说,是加分加薪技能。