QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1538|回复: 2

arp模块neigh_update函数中的new在哪里定义

[复制链接]
发表于 2005-6-9 23:35:29 | 显示全部楼层 |阅读模式
在看arp部分的代码
在neighbour.c的int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, int override, int arp)函数中出现了符号new,这个函数用来更新neigh,但是我没有找到new的定义(用了Source Insight)。根据代码new应该是一个常量。
哪位大侠能解释一下呢
谢谢
 楼主| 发表于 2005-6-10 16:13:51 | 显示全部楼层
呵呵
问题更多了
在arp。c中
int arp_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt)
中, 为什么所有arp表的neigh_update后面都有一个neigh_release呢?
这一段代码
        /* Update our ARP tables */

        n = __neigh_lookup(&arp_tbl, &sip, dev, 0);

#ifdef CONFIG_IP_ACCEPT_UNSOLICITED_ARP
        /* Unsolicited ARP is not accepted by default.
           It is possible, that this option should be enabled for some
           devices (strip is candidate)
         */
        if (n == NULL &&
            arp->ar_op == __constant_htons(ARPOP_REPLY) &&
            inet_addr_type(sip) == RTN_UNICAST)
                n = __neigh_lookup(&arp_tbl, &sip, dev, -1);
#endif
好像是说如果收到的arp请求的sip在arp表中没有,则默认不响应的。
这样一些free arp的处理是不是就不对了呢
多谢指教
回复

使用道具 举报

 楼主| 发表于 2005-6-14 23:51:07 | 显示全部楼层
呵呵
new居然是参数,太丢人了.呵呵
第二个问题是free arp并不是标准
预防arp欺骗的最好办法是静态配置
我改了一下我自己机器的arp部分。当neighbour的type为某个值时,update时不作任何处理。然后增加一条系统调用管理这种静态配置的arp项。
呵呵
以后在局域网里,心情不爽的时候,我就一个人独用2M的带宽了。其他同学就,嘻嘻
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-29 05:40 , Processed in 0.060418 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表