[发明专利]一种基于NetFPGA的可编程虚拟路由器内部通信方法有效
申请号: | 201210546866.3 | 申请日: | 2012-12-17 |
公开(公告)号: | CN103001883A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 徐川;赵磊;唐红;赵国锋 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | H04L12/775 | 分类号: | H04L12/775;H04L12/741 |
代理公司: | 重庆市恒信知识产权代理有限公司 50102 | 代理人: | 刘小红 |
地址: | 400065 *** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 netfpga 可编程 虚拟 路由器 内部 通信 方法 | ||
1. 一种基于NetFPGA的可编程虚拟路由器内部通信方法,其特征在于,包括以下步骤:
捕获进入Linux内核的NetFPGA数据包,将该数据包封装后发送到虚拟路由器;
经所述虚拟路由器处理后的数据包通过主机操作系统转发出去,并将路由信息部署到NetFPGA 中。
2.根据权利要求1所述一种基于NetFPGA的可编程虚拟路由器内部通信方法,其特征在于:所述捕获进入Linux内核的NetFPGA数据包,将该数据包封装后发送到虚拟路由器的步骤包括:
初始化建立数据封装模块,在数据封装模块中存放vMAC-VR映射表和nfc信息表;
在Linux内核网络协议栈入口处设置数据包入口设备检查模块,检查每一个流入Linux内核的数据包的入口设备名称;
如果入口设备名称为nfc则触发数据封装模块,并将该流入Linux内核的数据包缓冲区skb和入口设备名称nfc传送到数据封装模块,由数据封装模块将skb封装到一个新的IPv4数据包,然后该新的数据包通过Linux内核发送到虚拟路由器;
如果入口设备名称不为nfc则不作任何处理。
3.根据权利要求2所述一种基于NetFPGA的可编程虚拟路由器内部通信方法,其特征在于:所述数据封装模块将skb封装到一个新的IPv4数据包的步骤包括:
获取skb中的协议数据区skb->head中的MAC地址字段,并在vMAC-VR映射表中查找VR信息的IP地址,即虚拟路由器IP地址veIP和虚拟路由器MAC地址veMAC;
如果在vMAC-VR映射表中找到VR信息,则查找nfc信息表,查到入口设备的MAC地址nfcMAC和入口设备的IP地址nfcIP,将该skb中包含的协议数据区skb->head封装到一个新的IPv4数据包newHead中;否则将数据包丢弃。
4.根据权利要求1所述一种基于NetFPGA的可编程虚拟路由器内部通信方法,其特征在于:利用TUN/TAP模拟与所述NetFPGA所带网卡数量相同的路由器虚拟网卡veth。
5.根据权利要求1所述一种基于NetFPGA的可编程虚拟路由器内部通信方法,其特征在于:所述经所述虚拟路由器处理后的数据包通过主机操作系统转发出去,并将路由信息部署到NetFPGA 中的步骤包括:
通过libnet将经虚拟路由器处理后的数据包封装成一个ARP广播包,并通过路由器虚拟网卡veth发送出去;
信息接收模块监控网关venet,对每一个发送出去的ARP广播包,解包后去掉以太网首部,分析数据段内容获取路由信息,然后将数据段发送出去,通过调用NetFPGA的API将路由信息部署到NetFPGA中。
6.如权利要求5所述的一种基于NetFPGA的可编程虚拟路由器内部通信方法,其特征在于:所述通过libnet将经虚拟路由器处理后的数据包封装成一个ARP广播包的步骤包括:调用libnet_init_packet初始化一个数据包;调用libnet_build_ethernet封装一个以太网数据包;libnet_open_raw_sock打开一个套接字;调用libnet_write_link_layer发送一个链路层数据包。
7.如权利要求5所述的一种基于NetFPGA的可编程虚拟路由器内部通信方法,其特征在于:所述获取路由信息的步骤包括:
通过libpcap库抓取网关venet上的数据包,去掉以太网首部,获得数据段;
申请一段新的缓冲区,将所述数据段的第7~12字节、31~35字节复制进去,然后调用ioctl命令将其部署到NetFPGA中;
通过libnet将所述数据段发送出去。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210546866.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:定位机构
- 下一篇:一种基于CORDIC算法的数据加窗系统及方法