免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1721 | 回复: 2
打印 上一主题 下一主题

[虚拟化] KVM 宿主机内核构造报文(到客户机) 发送不出去 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-02-12 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-07 21:01 |只看该作者 |倒序浏览
在一台宿主机A 192.168.122.104上面虚拟出了一个客户机B 192.168.123.5

在A上使用命令ifconfig,得到下列信息:
eth0  192.168.122.104

virbr1:192.168.123.1

现在宿主机A中使用内核构造包的方式发送报文
UDP包
源IP:192.168.123.1
目的IP:192.168.123.5
源端口:39804
目的端口:8786
源MAC:A的virbr1的MAC地址
目的MAC:B的MAC地址
网络接口


自己的构造报文内核模块代码中这样获取dev
dev = dev_get_by_name(&inet_** , "virbr1")

发送的时候使用函数netif_receive_skb


结果只有宿主机的netfilter的0号钩子点LOCAL_IN收到了报文,其他钩子点都没有被触发

然后使用宿主机的ping 192.168.123.5的话,netfilter的大部分钩子点都收到了信息,

有神牛熟悉这样的网络问题吗,希望能给与某些提示,在公司不能上外网,只能晚上回来回复。

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
2 [报告]
发表于 2016-01-08 12:57 |只看该作者
本帖最后由 nswcfd 于 2016-01-08 12:58 编辑

(在宿主机)发送的时候使用函数netif_receive_skb

当然只会由宿主机收到这个报文了。

宿主到虚机通讯的关键是【发送到(比如经过路由)】虚接口,然后由虚接口的xmit接口,通过一定的逻辑转发给虚机的虚拟网卡。

对kvm的网络配置不是太熟悉,virbr1在host里面是由什么模块驱动着?macvlan或者其它?

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-02-12 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
3 [报告]
发表于 2016-02-09 18:29 |只看该作者
问题已经解决了,发送的时候使用netif_receive_skb或者netif_rx都可以发送数据。
发送的时候要指定发送的接口是virbr1,就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP