FD.io VPP 技术Neutron VNF vRouter 实现
在OpenStack Neutron中主要有三种网络设备,路由器(Router),负载均衡器(LB)以及VPN,其中Router作为基础网络设备起到连接子网到子网、内网到外网的作用。不同子网之间的访问完全是由路由功能实现的,而内外网之间访问使用的是SNAT和DNAT技术。
作为NFV的底层技术FD.io VPP已经包含了路由功能,因此要想以VNF的形式实现Neutron中的vRouter,就必须解决内外网之间访问的问题。其中内网访问外网是通过SANT技术,其数据流信息如下:

当内网用户发起外网访问时,其数据包携带out2in信息到达Router,Router只需根据SNAT策略为其生成in2out信息与out2in信息的对应关系并将其记录在session表中,并将数据包携带的out2in信息改成in2out信息发送出去即可。当外网服务器收到Router发送的数据包后生成应答,应答数据包携带in2out信息到达Router后,Router根据之前session表中的记录找到out2in信息与in2out信息对应关系,并将数据包携带的in2out信息改成out2in信息发送出去即可。
而外网访问内网是通过DANT技术,其数据流信息如下:

当外网用户发起内网访问时,其数据包携带in2out信息到达Router,Router只需根据DNAT策略为其生成in2out信息与out2in信息的对应关系并将其记录在session表中,并将数据包携带的in2out信息改成out2in信息发送出去即可。当内网服务器收到Router发送的数据包后生成应答,应答数据包携带out2in信息到达Router后,Router根据之前session表中的记录找到out2in信息与in2out信息对应关系,并将数据包携带的out2in信息改成in2out信息发送出去即可。
对于ICMP Request 和 Response消息来说由于其没有port信息,可以用ICMP数据包中的id信息充当port信息;而对于ICMP差错报文来说,例如ICMP不可到达报文,可以从ICMP的消息体中解析出相应的out2in或者in2out信息。
FD.io VPP 技术Neutron VNF vRouter 实现的更多相关文章
- NFV 利器 FD.io VPP
在VPP中,报文以向量批处理的形式在节点之间以流水线的方式处理,可以更加高效的利用CPU的i-cache,节点可以动态生成并加入到转发图中,节点分为多种类型,如VLIB_NODE_TYPE_INPUT ...
- NFV FD.io VPP VM 系统性能调优
Host Setting: 1.关闭power savings mode在BIOS中 2.设置 /sys/devices/system/cpu/cpu*/cpufreq/scaling_governo ...
- FD.io vpp 框架转发图
在ip4-icmp-input 与 ip4-udp-input后可以注册后续的处理函数,ip4-icmp-input根据 icmp的报文类型选择相应的处理函数,而ip4-udp-input根据端口选择 ...
- FD.io 社区中国行暨未来网络技术沙龙 南京站 参会小结
FD.io 社区中国行暨未来网络技术沙龙 南京站,2018 年 3 月 17 日. 开场致辞 Ray 介绍了一些有的没的 ⁃ (Future Event)DPDK summit, FD.io summ ...
- FD.io社区中国行暨未来网络技术沙龙·南京站 会议小结
What is FD.io VPP? FD.io VPP(Fast Data Input/Output Vector Packet Processing)is a new network multi- ...
- Libevent的IO复用技术和定时事件原理
Libevent 是一个用C语言编写的.轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大:源代码相当精炼.易 ...
- 转:Linux网络IO并行化技术概览
转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...
- Select、Poll、Epoll IO复用技术
简介 目前多进程方式实现的服务器端,一次创建多个工作子进程来给客户端提供服务, 但是创建进程会耗费大量资源,导致系统资源不足 IO复用技术就是让一个进程同时为多个客户端端提供服务 IO复用技术 之 S ...
- IO多路复用技术总结
来源:微信公众号「编程学习基地」 IO 多路复用概述 I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用. 在IO多路复用技术 ...
随机推荐
- Google论文之三----MapReduce
Google论文之三----MapReduce MapReduce:大型集群上的简单数据处理 摘要 MapReduce是一个设计模型,也是一个处理和产生海量数据的一个相关实现.用户指定一个用于处理一个 ...
- VMware vSphere 服务器虚拟化之二十四 桌面虚拟化之手动池管理物理机
VMware vSphere 服务器虚拟化之二十四 桌面虚拟化之手动池管理物理机 VMwareView手动池可以管理物理计算机 说明: 环境基于实验二十三 1.准备一台Windows 7的物理计算机名 ...
- Redis 集成Spring(spring-data-redis)
Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行 ...
- java基础知识拾遗(三)
1.类加载 bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类. extension classloader -扩展类加载器,它负责加载JRE的扩展目 ...
- 浅谈href=#与href=javascript:void(0)的区别
#"包含了一个位置信息 默认的锚点是#top 也就是网页的上端 而javascript:void(0) 仅仅表示一个死链接 这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首 而 ...
- Prefix the choice with ! to persist it to bower.json ? Answer (问你选择哪个1,2,3.........)
Unable to find a suitable version for underscore, please choose one by typing on e of the numbers be ...
- linux添加swap
一. 起因 发现云服务器重装后没有swap分区 于是我们分出一些物理内存做swap分区.. 二. 经过 (1)创建块文件 sudo dd if=/dev/zero of=/tmp/big_swap b ...
- Intellij Idea + Maven + Git + Struts2 HelloWorld
1.在intellij Idea上新建Maven项目,输入相应的groupId,artifactId,项目名称: 2.在项目的pom文件中,引入struts2的核心依赖struts2-core: &l ...
- MiniMetro Items
圈代表居民区三角写字楼等工作区方块是商业区钻石是金融中心五角星是政府 十字是医院 扁扁的旅游景区
- python 解析html
#!/usr/local/bin/python2.7 # -*- coding: utf-8 -*-: import requests from pyquery import PyQuery as p ...