OpenStack SDN架构⻢马啸微信:Zebra2014年11⽉月23⽇日⺫⽬目录•OpenContrail (Contrail)•OpenFlow Overlay(OpenDaylight VTN)•OpenStack Neutron (VMware NSX)云需⺴⽹网络OpenContrail MPLS⽅方式MPLS⾃自⾝身!1,三层路由标签技术2,传统上在MPLS-BGP中为路由条⺫⽬目分配MPLS标签Switcheth1eth1VM1VM2同⼀一Network去往192.168.1.1 打上MPLS =1,并且打上外层头部到CN1; 去往192.168.1.3,打上MPLS =2,并且打上外层头部到CN1; 去往192.168.1.2,就直接出去tap2192.168.1.1/24VRF1 转发表:去往192.168.1.2打上MPLS =5,并且打上外层标签到CN2;去往192.168.1.1,就直接出去tap1 去往192.168.1.3,就直接出去tap3192.168.1.2/24MPLS 标签表:MPLS=1 剥离外层改变MAC 出tap1; MPLS =2 剥离外层改变MAC 出tap3;MPLS 标签表:MPLS=5剥离外层标签改变MAC 并出tap2CN1 CN2192.168.1.3/24tap1tap3tap2VM3VM1不同Network192.168.1.1/24VRF1转发表:去往192.168.1.2打上MPLS =5,并且打上外层标签到CN2;去往192.168.1.1,就直接出去tap1 去往192.168.1.3,就直接出去tap3MPLS 标签表:MPLS=1 剥离外层改变MAC 出tap1; MPLS =2 剥离外层改变MAC 出tap3; MPLS =3 剥离外层改变MAC 出tap4CN1 192.168.1.3/24tap1tap3VM3VM4VRF2 转发表:去往192.168.2.1直接从tap4出去tap4192.168.2.1/24VM1同⼀一Router192.168.1.1/24VRF1转发表:去往192.168.1.2打上MPLS =5,并且打上外层标签到CN2;去往192.168.1.1,就直接出去tap1 去往192.168.1.3,就直接出去tap3 去往192.168.2.1直接从tap4出去MPLS 标签表:MPLS=1 剥离外层改变MAC 出tap1; MPLS =2 剥离外层改变MAC 出tap3; MPLS =3 剥离外层改变MAC 出tap4CN1192.168.1.3/24tap1tap3VM3VM4VRF2 转发表:去往192.168.2.1直接从tap4出去去往192.168.1.2打上MPLS =5,并且打上外层标签到CN2;去往192.168.1.1,就直接出去tap1 去往192.168.1.3,就直接出去tap3tap4192.168.2.1/24OpenContrail的⼀一些特点1,⾃自⾝身就是东⻄西向“分布式”的2,控制节点跑BGP协议3,南北向需要⺴⽹网关设备(软件、Service VM也都可以)来使⽤用BGP协议进⾏行默认路由注⼊入,进⾏行NAT4,基于路由注⼊入的⽅方式实现InNetwork ServiceChain是相对便捷的;5,Transparent ServiceChain需要打个带VLAN⼆二层标签,其中VLAN区分不同Network。
OpenFlow OverlayOpenFlow⾃自⾝身!1,⽀支持控制层⾯面与转发层⾯面分离2,良好的多种技术⽀支持 Tunnel(VxLAN、GRE)、VLAN-In-VLAN、MPLS、MAC Bitmask控制器对云平台接⼝口: PORT-VLAN(+MAC地址)映射到vNetworkEdge SwitchCore SwitchEdge SwitchEdge SwitchCore SwitchvSwitchvSwitch vSwitchPort+VLAN2+MACPort+VLAN1+MACMACBitmask-based OverlayMAC地址⾥里边标识EdgeSwitch、路径策略、路径,以进⾏行链路控制OpenStack Neutron—ML2+Namespace L3Agent VxLAN⾃自⾝身1,⼤大⼆二层协议2,BUM⽤用组播或者点到多点复制3,允许Underlay⺴⽹网络进⾏行ECMP4,租户数够⼤大5,ASIC⽀支持br-intbr-tunbr-intbr-tun Switcheth1eth1VM1VM2VM3vlan=1vlan=1同⼀一Networkvxlan=1vxlan=1br-intbr-tun br-intbr-tun Switcheth0eth0VM1VM2VM3vlan=1vlan=1vlan=2VM4vxlan=1vxlan=2eth0br-intbr-tuneth1iptablesbr-exqrqrqg vxlan=1VM5vlan=3vxlan=2vlan=5vlan=8vxlan=1vxlan=2公⺴⽹网IP 附着点同⼀一Routerbr-tun br-intbr-tunSwitcheth0eth0VM1VM4DVR (东⻄西流量和南北流量概览)eth0eth1iptablesbr-ex qs VM5br-int iptables iptablesbr-ex eth1eth1br-intqrqrqrqrqr qrbr-tun公⺴⽹网IP 附着点iptables br-exqr 公⺴⽹网IP 附着点qf-ex iptables qr qf-ex 公⺴⽹网IP 附着点qf qf1,⼲⼴广播报⽂文多个路由器Port都能收到2,未知单播报⽂文多个路由器Port都能收到3,在br-int上将会出现Duplicate⺴⽹网关MAC Entry 采取的⽅方式:br-tun上Egress⽅方向隔离掉(丢弃)对⺴⽹网关的ARP请求;br-tun上Egress 隔离掉(丢弃)⺫⽬目的MAC为⺴⽹网关的流量这些;br-tun上Egress⽅方向修改这些⺴⽹网关的源MAC地址为⾃自⼰己的Compute Node MAC;br-tun上Ingress⽅方向,对于源MAC为其他Compute Node MAC的流量直接导⼊入br-int;—>在br-int上匹配vlan和⺫⽬目的⺴⽹网段,把源MAC再改回去。
1,默认路由和浮动IP地址路由2,SNAT(动态NAT功能)有浮动IP地址冲突采取的⽅方式:1,拆分NameSpace2,公⺴⽹网IP地址/32路由3,SNAT还是继续中⼼心化吧(如果路由器只有⼀一个浮动IP地址的话)OpenStack Neutron—L2Population 1,不采⽤用多播组则需要点到多点复制;2,采⽤用多播组有数⺫⽬目限制且运维复杂采取的⽅方式:1,ARP Proxy2,⼲⼴广播以控制器⼲⼴广播RPC⽅方式代理Neutron VxLAN及其未来1,从设计上VTEP点可以混合软件硬件VTEP硬件流表有限,软件则性能不⾼高,以软件VTEP为主的话,如何动态插拔硬件VTEP2,复制⽅方式上可以改善,L2Population3,ServiceChaining4,sFlow5,DVR⽅方式,既然L2Population已经知道MAC-VLAN对应的VxLAN,为啥不再加上Agent信息,直接过去呢?OpenContrail与Neutron软件架构对⽐比ONF SDN架构UnitedStack 招聘SDN 软件开发实习⽣生 招聘⼈人数:1⼈人 职位职责: . UOS SDN 产品设计与开发; . OpenStack Neutron 开源项⺫⽬目开发; . SDN 技术调研; !!职位要求: . 了解Python 语⾔言编程; . 了解OpenStack Neutron; !!加分项: . SDN 控制器开发经验 . OpenvSwitch 开发经验 . Linux Netfilter 开发调试经验 . OpenFlow 协议经验SDN 软件开发⼯工程师 招聘⼈人数:2⼈人 职位职责:. UOS SDN 产品设计与开发; . OpenStack Neutron 开源项⺫⽬目开发; . SDN 技术调研;!职位要求:. 熟悉Python 语⾔言编程;. 熟悉OpenStack Neutron整体架构; . 熟悉OpenStack Neutron流量过程 (VLAN/VxLAN); !加分项:. SDN 控制器开发经验 . OpenvSwitch 开发经验 . Linux Netfilter 开发调试经验. OpenFlow 协议经验THX。