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多路复用技术 ...
随机推荐
- linux前四天学习笔记
以下是在linux培训机构所学的内容,感觉比较乱 MySQL学习笔记MySQL的安装 linux中的超级管理员rootaixocm vnc的退出: F8 MySQL的特点.优点:关系型开源.免费c++ ...
- python alembic which comes from SQLalchemy
alembic it's tutorial: http://alembic.readthedocs.org/en/latest/tutorial.html
- Android 短信模块分析(四) MMS之短信的发送与接收
MMS之短信的发送与接收分析: 一.信息发送: com.android.mms.data.WorkingMessage.java 类 send()函数: public void send() { . ...
- Linux笔记(二) - 权限管理
(1)改变文件或目录权限:chmod{ugoa}{+-=}{rwx}{mode=421}-R 递归修改可以同时更改多个 chmod g+w a.txt b.txt c.txt例:chmod g=rwx ...
- ubuntu 服务版安装简易说明
安装基本环境 1.ubuntu 下载 下载地址:http://releases.ubuntu.com/14.04.4/ 2.安装virtualBox 直接在软件管家中下载即可 3.安装ubuntu 注 ...
- 使用Netsil监控Kubernetes上的微服务
ubernetes是容器编排和调度领域的王者,它击败了竞争对手Docker Swarm和Apache Mesos,开启了闪耀的未来,微服务可以自修复,可以自动扩展,可以跨zone,region甚至跨云 ...
- CodeForces 645B Mischievous Mess Makers
简单题. 第一次交换$1$和$n$,第二次交换$2$和$n-1$,第三次交换$3$和$n-2$.....计算一下就可以了. #pragma comment(linker, "/STACK:1 ...
- 上传代码到GitHub时,遇到错误:fatal,The Requested URL return error 403
解决: from:pushing-to-git-returning-error-code-403-fatal-http-request-failed
- svn问题(队列)
svn执行clean up命令时报错"Previous operation has not finished; run 'cleanup' if it was interrupted&quo ...
- gridcontrol如何根据值来动态设置某一行的颜色
应用场景:当我们使用devexpress gridcontrol wpf控件时.可要会要根据这一行要显示的值来设置相应的颜色 可以通过下面方法来实现 一.先定义一个style <local:Co ...