免费注册 查看新帖 |

Chinaunix

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

icmp的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-23 12:24 |只看该作者 |倒序浏览
本帖最后由 energywu 于 2015-07-23 12:31 编辑

host unreachable

发udp unicast packet, 由于某种原因拿不到对应ip的mac,所以包发不出去。
但是什么地方会发ICMP包?应用层么?
还是kernel什么地方,找了下,没发现什么地方会发这种包啊。
请大虾们指教。
非常感激。

论坛徽章:
0
2 [报告]
发表于 2015-07-23 12:44 |只看该作者
顶起来。。。

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-08-12 06:20:00
3 [报告]
发表于 2015-07-23 16:42 |只看该作者
顶起来         

论坛徽章:
6
2015年迎新春徽章
日期:2015-03-04 09:48:00IT运维版块每日发帖之星
日期:2015-06-11 22:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00数据库技术版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2015-12-24 06:20:00IT运维版块每日发帖之星
日期:2016-04-15 06:20:00
4 [报告]
发表于 2015-07-25 16:16 |只看该作者
"ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。" host unreachable也是它的工作内容之一。

论坛徽章:
3
水瓶座
日期:2014-03-25 17:08:042015亚冠之塔什干棉农
日期:2015-08-10 10:45:122015亚冠之萨济拖拉机
日期:2015-08-13 16:05:24
5 [报告]
发表于 2015-07-25 17:20 |只看该作者
回复 1# energywu


    不知道你说的什么意思。但是iptable可以添加一个规则,就是-j reject --reject-with ,你说的有点类似这种情况,看看你的iptable里面有没有这样的规则

       --reject-with type
              The  type  given can be icmp-net-unreachable, icmp-host-unreach-
              able,       icmp-port-unreachable,       icmp-proto-unreachable,
              icmp-net-prohibited,  icmp-host-prohibited or icmp-admin-prohib-
              ited  (*)  which  return  the  appropriate  ICMP  error  message
              (port-unreachable  is the default).  The option tcp-reset can be
              used on rules which only match the TCP protocol: this  causes  a
              TCP  RST  packet  to  be  sent  back.  This is mainly useful for
              blocking ident (113/tcp)  probes  which  frequently  occur  when
              sending  mail to broken mail hosts (which won’t accept your mail
              otherwise).

       (*) Using icmp-admin-prohibited with kernels that  do  not  support  it
       will result in a plain DROP instead of REJECT

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
6 [报告]
发表于 2015-07-28 12:14 |只看该作者
没看懂什么意思啊。
LZ详细说下。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-07-14 06:20:00
7 [报告]
发表于 2015-07-28 14:28 |只看该作者
/linux/net/ipv4/route.c

static int ip_error(struct sk_buff *skb)
{
        struct rtable *rt = skb_rtable(skb);
        unsigned long now;
        int code;

        switch (rt->u.dst.error) {
                case EINVAL:
                default:
                        goto out;
                case EHOSTUNREACH:
                        code = ICMP_HOST_UNREACH;
                        break;
                case ENETUNREACH:
                        code = ICMP_NET_UNREACH;
                        IP_INC_STATS_BH(dev_net(rt->u.dst.dev),
                                        IPSTATS_MIB_INNOROUTES);
                        break;
                case EACCES:
                        code = ICMP_PKT_FILTERED;
                        break;
        }

        now = jiffies;
        rt->u.dst.rate_tokens += now - rt->u.dst.rate_last;
        if (rt->u.dst.rate_tokens > ip_rt_error_burst)
                rt->u.dst.rate_tokens = ip_rt_error_burst;
        rt->u.dst.rate_last = now;
        if (rt->u.dst.rate_tokens >= ip_rt_error_cost) {
                rt->u.dst.rate_tokens -= ip_rt_error_cost;
                icmp_send(skb, ICMP_DEST_UNREACH, code, 0);
        }

out:        kfree_skb(skb);
        return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP