摘要:SDN(Software Defined Network)软件定义网络,字面释义都说了是“软件”来定义“网络”,但有心之人会想:这个“软件”到底是如何定义了我们所熟知的“网络”?字字珠玑,今天就来扒一扒,这“软件”到底是如何定义这“网络”。 |
每个流表中每个流条目包括三个部分:
(1) 匹配match—使用ingress port,packet header以及前一个flow table传递过来的metadata;
(2) 计数counter---对匹配成功的包进行计数;
(3) 操作instruction—修改action set或者流水线处理
交换机针对SDN有一个比较重要的消息类型:Packet-In,主要针对未知数据流无法命中流表的时候,作上送控制器的操作。
同样,SDN控制器也有一个比较重要的消息类型:Packet-Out,主要针对下游SDN被管理设备,用于控制器指定从交换机的特定端口发送数据包,或者用于转发通过Packet-in消息接收到的数据包。Packet-Out报文中包含明确的Action动作。
接下来,通过两个例子来展示“SDN新网络”如何利用“软件”解决传统网络中的问题。同样,可以帮助产品经理能够在跟客户交流SDN的过程中,更深入的阐述SDN的大致工作过程,以“软件定义”的角度来阐释传统网络中常见的拓扑发现、ARP通讯等问题。
A. SDN Controller通过Openflow和LLDP发现整网拓扑
整网拓扑如上图所示:
背景阐述:
① 所有交换机彼此互联
② 交换机通过带外方式(或网管网方式)连接Controller
③ 交换机均使用Openflow协议。Openflow使用TCP端口6633或6653作为接收的监听端口。目前最新Openflow协议为1.5.1,详见ONF的spec。(https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/Openflow/Openflow-switch-v1.5.1.pdf)
④ 无特殊Controller指定,各类型都OK
那对于传统交换机而已,正常情况他们是通过LLDP等类似的邻居发现协议发现彼此网络设备,形成整网拓扑。而在SDN环境中,设备是无脑的,此时需要借助Openflow和LLDP同时工作,来保障Controller环境下能够对全网进行拓扑发现。