求助!无法接收源地址为127.0.0.1的ip包

hansun_zhou 2012-10-09 12:21:23
最近碰到一个郁闷的问题,wireshark可以抓到数据包,可是上层应用却收不到,分析了一下,发现发过来的IP包的源地址是127.0.0.1,估计应该是这个原因。
做了一个小实验,用原始套接字,修改源地址为127.0.0.1的数据包,发给其它的机器,的确收不到,是不是内核的网络协议栈在哪里把这个过滤掉了啊???
内核代码看了半天,头都大了,没有一点头绪。有没有大侠能给指点一下啊!!!
谢谢
2.6的内核,
...全文
459 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hansun_zhou 2012-10-10
  • 打赏
  • 举报
回复
真个环境是这样的,服务器那端发过来一个组播流,这个组播流的源地址被服务器设置成了127.0.0.1。
我用winxp的机器可以收到组播数据,但是win7,linux2.6都收不到该数据包,在linux下,用原始套接字接收,是可以收到的(wireshark估计也是这样的)。看了一下,数据包的源地址为127.0.0.1其它一切都正常。
如果目的地址是127.0.0.1,会被路由到本地的回环接口这个好理解。可是目的地址是个组播地址,源地址是127.0.0.1,不知道内核中是怎么处理的?
正常的socket收不到数据,应该是被网络协议栈过滤掉了,看了kernel的源码,可是却找不到在哪儿被drop了,希望能得到大家的帮助。谢谢。
pottichu 2012-10-10
  • 打赏
  • 举报
回复
127.0.0.1 是本地回环, 只能本地发,本地收的。
另外,你还要看看 lo 设备是否已经启用了。
root_jli 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

这个是本地环回接口
[/Quote]
++
"wireshark可以抓到数据包,可是上层应用却收不到"怎么抓的?
morris88 2012-10-09
  • 打赏
  • 举报
回复
这个是本地环回接口
tommwq 2012-10-09
  • 打赏
  • 举报
回复
有包过来,网络层应该没有问题。仔细检查下应用层。内核出现这种问题的概率不大。
hansun_zhou 2012-10-09
  • 打赏
  • 举报
回复
应该不是,在接收端用wireshark是可以抓包抓到的。数据包应该已经发过来了。
buyong 2012-10-09
  • 打赏
  • 举报
回复
路由器给过滤掉了把
诊断是HCIE考试中重要的一板块,本课程围绕这一板块进行讲解,其中范文展示如下:                                    关于“AR29 loopback 0不能访问AR28 loopback0”的诊断报告一、故障根因。    经过分析,“AR29 loopback 0不能访问AR28 loopback0”的原因是,LSW6连接AR29和AR28的接口错误划分进不同的vlan,导致AR29和AR28不在一个广播域。 二、故障分析。    步骤2-1:故障现象重现,AR29使用loopback0作为源IP地址去ping AR28的loopback0,命令:   ping -a 10.5.1.29 10.5.1.28  PING 10.5.1.28: 56  data bytes, press CTRL_C to break    Request time out    Request time out    Request time out    Request time out    Request time out   --- 10.5.1.28 ping statistics ---    5 packet(s) transmitted    0 packet(s) received    100.00% packet loss      上面结果表明,确实存在故障,由于AR29和AR28之间运行OSPF协议,所以下一步将在AR29进一步查看路由表以确定是否存在AR28 loopback0接口的ip地址的路由信息。    步骤2-2:在AR29上检查路由表,以确定是否存在AR28 loopback0接口的ip地址的路由信息。查看命令及结果如下:    display ip routing-table Route Flags: R - relay, D - download to fib------------------------------------------------------------------------------Routing Tables: Public         Destinations : 12       Routes : 12        Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface       10.5.1.29/32  Direct  0    0           D   127.0.0.1       LoopBack0      10.5.1.33/32  OSPF    10   1           D   10.5.233.33     GigabitEthernet0/0/1     10.5.128.0/24  Direct  0    0           D   10.5.128.29     GigabitEthernet0/0/0    10.5.128.29/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0   10.5.128.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0     10.5.233.0/24  Direct  0    0           D   10.5.233.29     GigabitEthernet0/0/1    10.5.233.29/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1   10.5.233.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0     上面结果表明,AR29没有去往AR28 loopback0的路由。所以下一步将检查AR29和AR28的OSPF邻居关系。    步骤2-3:在AR29上检查AR29和AR28的OSPF邻居关系。检查命令及结果如下:    display ospf peer brief          OSPF Process 1 with Router ID 10.5.1.29              Peer Statistic Information    ----------------------------------------------------------------------------        Area Id          Interface                        Neighbor id      State        0.0.0.2          GigabitEthernet0/0/1             10.5.1.33        Full            ----------------------------------------------------------------------------        上面结果表明,AR29与AR28不存在OSPF邻居关系。所以初步判断OSPF配置错误,需要进一步检查确认。    步骤2-4:由于AR27与AR28 AR29处于同一OSPF区域中,所以可以通过AR27的测试结果来判断AR28配置是否正确,测试及结果如下:[AR27]display ospf peer brief                 //查看OSPF邻居                  OSPF Process 1 with Router ID 10.5.1.27                  Peer Statistic Information ---------------------------------------------------------------------------- Area Id          Interface                        Neighbor id      State     0.0.0.0          GigabitEthernet0/0/0             10.5.1.28        Full         ----------------------------------------------------------------------------[AR27]dis ip routing-table | in 10.5.1.28     //查看OSPF路由Route Flags: R - relay, D - download to fib------------------------------------------------------------------------------Routing Tables: Public         Destinations : 19       Routes : 19        Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface 10.5.1.28/32  OSPF    10   1           D   10.5.128.28     GigabitEthernet0/0/0 [AR27]    上面结果表明,AR27与AR28之间正常建立OSPF邻居,并且AR27能学习到AR28 loopback0的路由,说明AR28的OSPF配置正确,下一步将对比AR27与AR29的OSPF配置,来进一步判断AR29的OSPF配置是否正确。    步骤2-5:在AR27和AR29上使用命令display ospf brief检查对比AR29的OSPF配置是否正确,结果如下:[AR27]dis ospf brief        //查看AR27 OSPF协议简要信息         OSPF Process 1 with Router ID 10.5.1.27                 OSPF Protocol Information  RouterID: 10.5.1.27        Border Router:  ......(此处省略部分内容) Area: 0.0.0.0          (MPLS TE not enabled) Authtype: MD5   Area flag: Normal SPF scheduled Count: 15     ExChange/Loading Neighbors: 0 Router ID conflict state: Normal Area interface up count: 3.......

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧