在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 实现的更多相关文章

  1. NFV 利器 FD.io VPP

    在VPP中,报文以向量批处理的形式在节点之间以流水线的方式处理,可以更加高效的利用CPU的i-cache,节点可以动态生成并加入到转发图中,节点分为多种类型,如VLIB_NODE_TYPE_INPUT ...

  2. NFV FD.io VPP VM 系统性能调优

    Host Setting: 1.关闭power savings mode在BIOS中 2.设置 /sys/devices/system/cpu/cpu*/cpufreq/scaling_governo ...

  3. FD.io vpp 框架转发图

    在ip4-icmp-input 与 ip4-udp-input后可以注册后续的处理函数,ip4-icmp-input根据 icmp的报文类型选择相应的处理函数,而ip4-udp-input根据端口选择 ...

  4. FD.io 社区中国行暨未来网络技术沙龙 南京站 参会小结

    FD.io 社区中国行暨未来网络技术沙龙 南京站,2018 年 3 月 17 日. 开场致辞 Ray 介绍了一些有的没的 ⁃ (Future Event)DPDK summit, FD.io summ ...

  5. FD.io社区中国行暨未来网络技术沙龙·南京站 会议小结

    What is FD.io VPP? FD.io VPP(Fast Data Input/Output Vector Packet Processing)is a new network multi- ...

  6. Libevent的IO复用技术和定时事件原理

    Libevent 是一个用C语言编写的.轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大:源代码相当精炼.易 ...

  7. 转:Linux网络IO并行化技术概览

    转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...

  8. Select、Poll、Epoll IO复用技术

    简介 目前多进程方式实现的服务器端,一次创建多个工作子进程来给客户端提供服务, 但是创建进程会耗费大量资源,导致系统资源不足 IO复用技术就是让一个进程同时为多个客户端端提供服务 IO复用技术 之 S ...

  9. IO多路复用技术总结

    来源:微信公众号「编程学习基地」 IO 多路复用概述 I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用. 在IO多路复用技术 ...

随机推荐

  1. 在C#中模拟Javascript的setTimeout方法

    在C#中模拟Javascript的setTimeout方法 背景 每种语言都有自己的定时器(Timer),很多人熟悉Javascript中的setInterval和setTimeout,在Javasc ...

  2. Supervisor 管理后台守护进程

    Supervisor 管理后台守护进程 参考原文如下: http://codinn.com/people/brant/notes/110948/ 做了一些注释 +++++++++++引用开始+++++ ...

  3. create OpenVPN on ubuntu12.04

    ---恢复内容开始--- 最近比较火的有digitalocean  的SSD VPS,配置还不错.每个月5刀,512MB内存,CPU被虚拟过.不是KVM.链接能量也不大. 节点在西雅图,对环太平洋比较 ...

  4. QT 菜单程序

    MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include<QMainWindow> #include<QMess ...

  5. JS的运算问题……

    在公司实习期间,发现了一个JS很奇怪的问题. 今天在这里来探讨一下 第一个问题 在生活中或者其他语言中一般相加是这样的:0.1+0.2=0.3; 但在JS中却是这样:0.1+0.2=0.3000000 ...

  6. Google Daydream 在中国的第一次演讲摘录

    从 PC.手机到 VR/AR,计算机平台正在迁移,而在这个过程中,与用户使用体验息息相关的「人机交互方式」也将不可避免的发生变化.作为这几波浪潮的弄潮儿,Google 怎么看这种人机交互方式的演进? ...

  7. Qt-剪切板

    ClipBoard 存在的意义 进程间数据共享. 方式 Drag And Drop: clipBoard的拖曳方式 app's ClipBoard 缺点 没有权限管理 在Model View中实现Dr ...

  8. servlet笔记,配置与 http相关

    tomcat配置环境变量:        JAVA_HOME= 指向你的jdk的主目录(bin目录的上一层) server.xml: <Context path="/myweb2&qu ...

  9. minSdkVersion与targetSdkVersion

    targetSdkVersion是Android提供向前兼容的主要依据,在应用的targetSdkVersion没有更新之前,系统不会应用最新的行为变化 比如设置了app的targetSdkVersi ...

  10. Aspose系列实现docx转PDF,PPT转PDF,EXCEL转PDF

    没有什么营养,就是调用一下这个组件.其实一开始用的是Microsoft.Office.Interop.Excel;Microsoft.Office.Interop.Word 但是在服务器要注意,服务器 ...