免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: xpl

从网卡发出的数据包,为什么PC通过switch来抓包无法抓到? [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-03 13:13 |显示全部楼层
原帖由 xpl 于 2009-3-3 13:09 发表


我发的就是广播包。

这个我感觉也很奇怪。


从板子上发ping请求报文。板子上如果没有PC的MAC地址,会先发ARP请求的,你在PC上可以抓到ARP报文吗

论坛徽章:
0
发表于 2009-03-03 13:16 |显示全部楼层
PHY配置成指定速率的行不行,以前pc上的集成网卡有类似的问题。

论坛徽章:
0
发表于 2009-03-03 13:20 |显示全部楼层
原帖由 Godbach 于 2009-3-3 13:13 发表


从板子上发ping请求报文。板子上如果没有PC的MAC地址,会先发ARP请求的,你在PC上可以抓到ARP报文吗


我从板子上发什么包出去,就是什么包出去,怎么会我发的ping请求,板子会发ARP包出去呢?

我现在的问题就是从PC上啥包都抓不到,ARP报文也抓不到。郁闷坏了。
之所以重视这个问题,是因为我担心是不是网卡的驱动写的有问题。导致发出的数据哪里不对。



另外再强调一下,板子是裸板,就是说就一个网口往外发数据包,你可以理解成硬件直接发出去的。


再次感谢楼上几位。

论坛徽章:
0
发表于 2009-03-03 14:02 |显示全部楼层
原帖由 OneThird 于 2009-3-3 13:16 发表
PHY配置成指定速率的行不行,以前pc上的集成网卡有类似的问题。



我用示波器量了一下,发现用Auto-Negotation的话,会自适应成100M的。

我分别把PHy配置成10M和100M的都试了一下,发现把PHY配置成指定的10M速率,确实可以抓到包了。难道是这个问题?

那么怎么才能让PC抓到板子配置成100M发出的包?难道要换个网卡吗?

论坛徽章:
0
发表于 2009-03-03 18:34 |显示全部楼层
如果不是反复协商的问题,可能网线是瓶颈。

论坛徽章:
0
发表于 2009-03-04 10:23 |显示全部楼层
原帖由 OneThird 于 2009-3-3 18:34 发表
如果不是反复协商的问题,可能网线是瓶颈。



网线是网管给做的,看上去应该没什么问题,都用量过的。

现在能够确定的是10M可以抓到包。

现在有三个怀疑点:
1. 板子的PHY或者MAC有问题
2. switch
3. PC的网卡

如果是后两个导致的,倒无所谓了,我就担心是否是板子的PHY或者MAC有问题。

谁对网络熟悉的,给点建议。

谢谢

论坛徽章:
0
发表于 2009-03-04 10:29 |显示全部楼层
可否把直接连接 PC 时抓到的从板子上发出的实验包放到论坛上看一下,看是否这个包本身存在什么不可被 switch 广播的原因?
另外 switch 是否是可管理的那种,如果是,要看 switch 本身是否允许这种广播包、ARP 包通过等

论坛徽章:
0
发表于 2009-03-04 13:39 |显示全部楼层
原帖由 platinum 于 2009-3-4 10:29 发表
可否把直接连接 PC 时抓到的从板子上发出的实验包放到论坛上看一下,看是否这个包本身存在什么不可被 switch 广播的原因?
另外 switch 是否是可管理的那种,如果是,要看 switch 本身是否允许这种广播包、ARP ...



多谢platinum,下面是我构造数据包的code:

        char pkt[60];

        /* TA:  the target mac address */
        pkt[0] = 0xff;
        pkt[1] = 0xff;
        pkt[2] = 0xff;
        pkt[3] = 0xff;
        pkt[4] = 0xff;
        pkt[5] = 0xff;

        /* SA: the source mac address */
        pkt[6] = 0x12;
        pkt[7] = 0x34;
        pkt[8] = 0x56;
        pkt[9] = 0x78;
        pkt[10] = 0x90;
        pkt[11] = 0xab;

        /* TYPE: the packet type */
        pkt[12] = 0x08;
        pkt[13] = 0x06;

        /* ARP data*/
        /*hardware type*/
        pkt[14] = 0x00;
        pkt[15] = 0x01;
       
        /*ip protocol type*/
        pkt[16] = 0x08;
        pkt[17] = 0x00;

        /* mac addr length */
        pkt[18] = 0x06;

        /* ip addr length */
        pkt[19] = 0x04;

        /* op code: 01 - arp request; 02 - arp response */
        pkt[20] = 0x00;
        pkt[21] = 0x01;

        /* sender mac */
        pkt[22] = 0x12;
        pkt[23] = 0x34;
        pkt[24] = 0x56;
        pkt[25] = 0x78;
        pkt[26] = 0x90;
        pkt[27] = 0xab;
       
        /*sender ip */
        pkt[28] = 0xc0;
        pkt[29] = 0xa8;
        pkt[30] = 0x84;
        pkt[31] = 0x42;
       

       
       
        /* target mac */
        pkt[32] = 0x0;
        pkt[33] = 0x0;
        pkt[34] = 0x0;
        pkt[35] = 0x0;
        pkt[36] = 0x0;
        pkt[37] = 0x0;
       
        /* target ip */
        pkt[38] = 0xc0;
        pkt[39] = 0xa8;
        pkt[40] = 0x84;
        pkt[41] = 0x49;
       
        /* what 6 bytes mac? */
        pkt[42] = 0;
        pkt[43] = 0;
        pkt[44] = 0;
        pkt[45] = 0;
        pkt[46] = 0;
        pkt[47] = 0;
       
        /* who is 192.168.132.1 */
        pkt[48] = 0xc0;
        pkt[49] = 0xa8;
        pkt[50] = 0x84;
        pkt[51] = 0x49;
       
       
        /* DATA: the data */
        for(i = 52; i < 60; i++){
                pkt = 0;
        }


包的内容我抓下来了,数据,长度都对。

这个ARP是我从局域网上抓下来的,然后按照抓到的数据内容构造的一个ARP包,其中板子的mac地址已经配置成了 1234567890ab

论坛徽章:
0
发表于 2009-03-04 18:50 |显示全部楼层
原帖由 xpl 于 2009-3-4 10:23 发表



网线是网管给做的,看上去应该没什么问题,都用量过的。

现在能够确定的是10M可以抓到包。

现在有三个怀疑点:
1. 板子的PHY或者MAC有问题
2. switch
3. PC的网卡

如果是后两个导致的,倒无所 ...



此事易耳!

step 1. 用直连网线直接连接 板子-------PC,省掉了交换机的环节了.
step 2. 若能收了,则检查交换机
step 3. 若还有问题,则用PC收一下局域网里的广播包
step 4. 若能,则PC无问题,检查板子或板子程序.
step 5. 若不能,则PC问题.

论坛徽章:
0
发表于 2009-03-04 18:51 |显示全部楼层
原帖由 xpl 于 2009-3-4 13:39 发表



多谢platinum,下面是我构造数据包的code:

        char pkt[60];

        /* TA:  the target mac address */
        pkt[0] = 0xff;
        pkt[1] = 0xff;
        pkt[2] = 0xff;
        pkt[3] = 0xff;
        pkt[4] = 0xff;
        pkt[5 ...


链路帧的格式是正确的或兼容的吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP