juniper-sdn-chinese

Report
CONTRAIL介绍
---Juniper overlay SDN解决方案
网络虚拟化演进方向
VLAN
APPROACH
Manual End-to-End
VLAN configured
on physical
switches
OPENFLOW
REACTIVE APPOACH
Reactive End-to-End
Requires
programming
of flows
PROACTIVE
SOFTWARE OVERLAY
Virtual Network Overlays
No impact
to physical
network
网络虚拟化---VLAN
用户的流量在物理网络直接传
输
需要手动在每台配置每隔VLAN
的信息
VLAN ID一共只有4096个,
支持的用户数量也是4096
插入服务相对比较复杂
手工控制. 低效率. 扩展性低.
网络虚拟化----OPENFLOW
OpenFlow 需要编程
Openflow 控
制器
每个用户的流量都要
经过物理网络转发
每个流量的首个数据包都
要去到控制器进行分析
OpenFlow需要底层交换机的支持
延迟较高. 扩展性低. 增加故障的考虑点. 可升级.
网络虚拟化----OVERLAY
控制器运用编程手段控制虚拟的
vswitch和虚拟网关
数据包不用经过控制器,
仅通过隧道进行转发
通过已存在的网络转发数据
用户的信息通过隧道转发,对现网没有感
知,即使现网的结构在发生改变
低延迟. 高扩展性. 自动恢复能力. 可以在任何网络上实现.
JUNIPER CONTRAIL 的角色与作用
Orchestrator
Network APIs
Compute APIs
Storage APIs
JunosV Contrail
Virtual Machine
vRouter
Physical Switches
Server
Gateway Router
Service Nodes
vSRX, F5 …
Internet
VPN
DCI WAN
JUNIPER的CONTRAIL以OPENSTACK为基础,通过API调用OPENSTACK的组件
CONTRAIL组件
2014
TODAY
通过API戒口接收VM的状态信息,
OPENCONTRAIL CONTROLLER
包括迁移,新建等
Configuration
Control
contrail控制器
Analytics
可以实时分析数据和流量
通过openstack的API控制其他的节点
信息
Contrail节点
VM
VM
Contrail节点
VM
VM
VM
vRouter
Physical Host
with Hypervisor
VM
VM
VM
vRouter
Physical Network
(no changes)
Physical Host
with Hypervisor
Gateway
Gateway: 可以采用juniper的MX或者
EX9200
vRouter: 虚拟化的vswitch,为虚拟机接
入提供虚拟化戒口
WAN, Internet
JUNIPER目前完成OPENSTACK的集成,后续还会支持VMWARE等更多的云平台系统
CONTRAIL功能
Routing and
Switching
IPAM, Virtual
DNS
Load
Balancing
Security
3rd Party Network
Services
Gateway
Services
Rich Analytics
Service Chaining
High
Availability
API
Services
CONTRAIL – 控制器和节点
Configuration
Node
• 控制器和节点之间可以实现控制和转发分离
Configuration
Node
Control
Node
IF-MAP
Control Node
IBGP
IF-MAP Client
Control
Node
"BGP module"
Proxies
XMPP
Gateway
Routers
• 控制器可以控制多个节点,包括路由器和
compute node
• 控制层面通过BGP协议实现路由控制
• 转发点通过动态的GRE的隧道转发数据
XMPP
Service Nodes
Compute Node
Compute Node
• 物理拓扑和交换机对于用户是透明的
CONTROL PLANE – 路由发布方式
REST/API
通过BGP协议VM的地址被
宣告到控制器中
Configuration Node
IF-MAP
Control Plane
Control Plane
Control Node
XMPP
XMPP
10.1.1.2:NH = 151.10.10.1; LBL = 17
10.1.1.1:NH = 70.10.10.1; LBL = 39
10.1.1.1:NH = 70.10.10.1; LBL = 39
10.1.1.2:NH = 151.10.10.1; LBL = 17
PubDstIP
PubSrcIP
151.10.10.1
70.10.10.1
GRE LBL=17
PriDstIP
PriSrcIP
10.1.1.2
10.1.1.1
PAYLOAD
IP Network
转发时原始数据包经
过GRE再次封装
70.10.10.1
Agent
10.1.1.2: NH = 151.10.10.1; LBL = 17
VRF
PriDstIP
10.1.1.2
(Dynamic Tunnel Encapsulation)
PriSrcIP
10.1.1.1
151.10.10.1
10.1.1.1: NH = 70.10.10.1; LBL = 39
VRF
10.1.1.1
PAYLOAD
VM
Server 1
*Outer MAC header was left out intentionally to reduce clutter
10.1.1.2
VM
(Dynamic Tunnel Decapsulation)
PriDstIP
PriSrcIP
10.1.1.2
10.1.1.1
Agent
PAYLOAD
Server 2
应用场景—逻辑拓扑
虚拟网络
VN G
虚拟防火墙
VM
FW
VM
G1
VM
G2
VM
G3
用户的VM
VN R
VM
R1
VM
R2
VM
R3
物理路由器
PN
物理网络
应用场景—物理拓扑
OpenStack
Nova
Contrail
Controller
Neutron
虚拟VM
带vrouter的Hypervisor
物理交换机
物理出口路由器
逻辑与物理拓扑对应
OpenStack
Nova
Contrail
Controller
Neutron
VN G
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
L3VPN
PHYSICAL
LOGICAL
VM
R3
初始化过程,网络还没有建立
OpenStack
Nova
Contrail
Controller
Neutron
VN G
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
用户新建虚拟网络
OpenStack
Nova
Contrail
Controller
Create VN G
Neutron
VN G
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
用户新建虚拟机VM G1
OpenStack
Nova
Contrail
Controller
Create VM G1
Attach to VN G
Neutron
VN G
VM
G1
Nova: Create VM
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
用户新建虚拟机VM G1
OpenStack
Nova
Contrail
Controller
Create VM G1
Attach to VN G
Neutron
VN G
VM
G1
Neutron:
Attach VM to VN
XMPP:
Create routing-instance
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
用户新建VM G2
OpenStack
Nova
Create VM G2
Attach to VN G
Contrail
Controller
Neutron
VN G
VM
G2
VM
G1
Nova: Create VM
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
用户新建VM G2
OpenStack
Nova
Create VM G2
Attach to VN G
Contrail
Controller
Neutron
VN G
VM
G1
Neutron:
Attach VM to VN
XMPP:
Create routing-instance
VM
G2
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
CONTRAIL通过指令在两个服务器之间建立隧道
OpenStack
Nova
Create VM G2
Attach to VN G
Contrail
Controller
Neutron
VN G
VM
G1
XMPP:
Exchange routes
Create tunnels
VM
G2
VM
FW
VM
G1
VM
G2
VM
G3
VN R
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
用户的数据包在隧道中转发的情况
Payload
...
Inner IP header
Source IP
Dest IP
VM G1
VM G2
MPLS
Label
GRE
L2
...
Outer IP header
Source IP
Dest IP
Server S1
Server S2
Ethernet
Source MAC
Dest MAC
Server S1
Server S2
VM
G2
VM
G1
Packet
S2
S1
Green routing-instance IP FIB
IP prefix
Nexthop
Virtual ethernet port
VM G1
to VM G1
Push label L2 +
VM G2
GRE encaps to server S2
MPLS label
L1
IP prefix
Server S2
Global MPLS FIB
Nexthop
Pop + Green routing-instance
Global IP FIB
Nexthop
Physical ethernet port
Green routing-instance IP FIB
IP prefix
Nexthop
Push label L1
VM G1
GRE encaps to server S1
Virtual ethernet port
VM G2
to VM G2
MPLS label
L2
IP prefix
Server S1
Global MPLS FIB
Nexthop
Pop + Green routing-instance
Global IP FIB
Nexthop
Physical ethernet port
用户新建VM G3
OpenStack
Nova
Create VM G3
Attach to VN G
Contrail
Controller
Neutron
VN G
VM
G2
VM
G1
VM
FW
VM
G1
VM
G3
VM
G2
VM
G3
VN R
Nova: Create VM
VM
R1
VM
R2
PN
PHYSICAL
LOGICAL
VM
R3
用户新建VM G3
OpenStack
Nova
Create VM G3
Attach to VN G
Contrail
Controller
Neutron
VN G
VM
G1
Neutron:
Attach VM to VN
VM
G2
VM
FW
VM
G1
VM
G3
VM
G2
VN R
XMPP:
Create routing-instance
VM
R1
VM
R2
PN
PHYSICAL
VM
G3
LOGICAL
VM
R3
CONTRAIL在物理服务器之间再搭建两条隧道
OpenStack
Nova
Create VM G3
Attach to VN G
Contrail
Controller
Neutron
VN G
VM
G1
XMPP:
Exchange routes
Create tunnels
VM
G2
VM
FW
VM
G1
VM
G3
VM
G2
VN R
VM
R1
VM
R2
PN
PHYSICAL
VM
G3
LOGICAL
VM
R3
用户的最终状态
OpenStack
Nova
Contrail
Controller
Neutron
VN G
VM
G1
VM
G2
VM
FW
VM
G1
VM
G3
VM
G2
VN R
VM
R1
VM
R2
PN
PHYSICAL
VM
G3
LOGICAL
VM
R3
两个不同用户均新建了VM以后
OpenStack
Nova
Contrail
Controller
Neutron
VN G
VM
G2
VM
G1
VM
FW
VM
G3
VM
G1
VM
R1
VM
R2
VM
R3
PN
PHYSICAL
VM
G3
VN R
VM
R1
VM
R2
VM
G2
LOGICAL
VM
R3
虚拟VROUTER和出口路由器之间建立隧道
OpenStack
Nova
Apply Policy
VN R ↔ L3VPN
Contrail
Controller
Neutron
VN G
Netconf:
Configure
routing-instance
VM
G1
VM
G3
VM
G2
VM
FW
VM
G1
VM
R1
VM
FW
VM
R2
VM
R3
L3VPN
PHYSICAL
VM
G3
VN R
VM
R1
VM
R2
VM
G2
LOGICAL
VM
R3
虚拟VROUTER和出口路由器之间建立隧道
OpenStack
Nova
Apply Policy
VN R ↔ L3VPN
Contrail
Controller
Neutron
VN G
BGP:
Exchange routes
Create tunnels
VM
G1
VM
G3
VM
G2
VM
FW
VM
G1
VM
R1
VM
FW
VM
R2
VM
R3
L3VPN
PHYSICAL
VM
G3
VN R
VM
R1
VM
R2
VM
G2
LOGICAL
VM
R3
虚拟VROUTER和出口路由器之间建立隧道
OpenStack
Nova
Apply Policy
VN R ↔ L3VPN
Contrail
Controller
Neutron
VN G
XMPP:
Exchange routes
Create tunnels
VM
G1
VM
G3
VM
G2
VM
FW
VM
G1
VM
R1
VM
FW
VM
R2
VM
R3
L3VPN
PHYSICAL
VM
G3
VN R
VM
R1
VM
R2
VM
G2
LOGICAL
VM
R3
可编程接口
API’s 调用系统
 所有的工作都是通过API
 界面在调用openstack的API
 所有的工作都是通过API完成
 系统使用通过的编程语言
 Python 和 Java libraries (others can be supported as there is interest)
 也可以是curl
 数据模型是公开的,有对应的文档
总结: CONTRAIL是SDN解决方案的创新者
简单
开放
智能化
 可以与现有网络结合,节省升级和更换设备的成本
 SDN 的物理层面的架构简单化
 简化网络中的组件,通过虚拟化实现
 开发那个的平台
 所有的Hypervisors 上运行的协议都是标准的
 可以云平台可以完好的结合
 自动更新云平台虚拟网络的结构
 可以与云平台进行结合使用
 自带的分析系统可以分析流量

similar documents