免费注册 查看新帖 |

Chinaunix

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

请问tcpdump的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-13 18:03 |只看该作者 |倒序浏览
我有两台机器A,B,每台机器都有两个网卡,对应的IP分别是A_ip1,A_ip2,B_ip2,B_ip2
其中,ip1属于同一子网,ip2属于同一子网。
在 A 上,我配置了策略路由,保证路由“原路返回”。
但当我从B traceroute A_ip2时,在A上用tcpdump监听A_ip2却发现

09:38:33.083854 IP A_ip2 > B_ip2: ICMP A_ip2 udp port 33438 unreachable, length
36
09:38:33.095808 IP A_ip2 > B_ip2: ICMP A_ip2 udp port 33439 unreachable, length
36
09:38:33.101702 IP A_ip2 > B_ip2: ICMP A_ip2 udp port 33440 unreachable, length
36

而从 B traceroute A_ip1时,在A上监听A_ip1是正确的。

在两个情况下,traceroute都返回了正确的路由信息。

请问这是怎么回事?

btw: ip1,ip2虽然属于不同的子网,但接在一个交换机下。
pf.conf里,它们的设置是相同的。

[ 本帖最后由 ustctapper 于 2007-6-13 18:04 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-06-13 23:32 |只看该作者
检查B的路由表

论坛徽章:
0
3 [报告]
发表于 2007-06-14 08:50 |只看该作者

回复 2楼 isjfk 的帖子

这么说A的配置应该没有问题?

论坛徽章:
0
4 [报告]
发表于 2007-06-14 10:40 |只看该作者
不一定。

我只能说B路由表的问题有可能导致这种情况。但是你提供的信息太少很难确定。

至少你应该再提供两台机器的路由表、是否启用了ip forwarding,以及pf配置这些信息,才可能做出比较合理的判断。

论坛徽章:
0
5 [报告]
发表于 2007-06-14 12:52 |只看该作者
印象里traceroute就是发送一个ttl为1的udp或icmp包,根据返回来的unreachable信息来判断中间节点的,所以你tcpdump出的这个包应该是正常包啊。

论坛徽章:
0
6 [报告]
发表于 2007-06-14 15:55 |只看该作者

回复 4楼 isjfk 的帖子

下面是两台机器的 netstat -rn
A: freebsd
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            202.38.74.254      UGS         0 141505203   fxp0
127.0.0.1          127.0.0.1          UH          0    50714    lo0
202.38.74          link#3             UC          0        0   fxp0
202.38.74.14       00:10:dc:0d:f6:4c  UHLW        1    21077    lo0
202.38.74.254      00:12:44:36:80:00  UHLW        2        0   fxp0   1197
202.141.162/25     link#2             UC          0        0    rl1
202.141.162.41/32  link#2             UC          0        0    rl1
202.141.162.126    00:15:c7:7e:d8:00  UHLW        1        0    rl1   1200

B: linux
Destination       Gateway                 Genmask         Flags   MSS Window  irtt Iface
202.141.162.0   0.0.0.0                 255.255.255.128 U         0 0               0   eth2
202.38.74.0      0.0.0.0                 255.255.255.0     U         0 0               0   eth0
0.0.0.0            202.141.162.126    0.0.0.0                 UG       0 0               0   eth2

在 A 的 pf.conf 中,使用了下面的策略路由
pass out on fxp0 route-to (fxp0 202.38.74.254)   from fxp0  to any
pass out on fxp0 route-to (rl1 202.141.162.126)  from rl1    to any
过滤规则和其他选项都是一样的

[ 本帖最后由 ustctapper 于 2007-6-14 15:59 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-06-14 16:23 |只看该作者

回复 6楼 ustctapper 的帖子

我现在怀疑策略路由写的有问题,跟 http://bbs.chinaunix.net/viewthr ... 59&highlight=pf 的不一致。
可我是对照着 pf 的 FAQ 写的啊。。。

论坛徽章:
0
8 [报告]
发表于 2007-06-14 16:36 |只看该作者

回复 7楼 ustctapper 的帖子

我改成了
pass in on fxp0 reply-to (fxp0 202.38.74.254) proto {tcp,udp,icmp} to any keep state
pass in on rl1    reply-to (rl1 202.141.162.126) proto {tcp,udp,icmp} to any keep state

traceroute还是得到 不可到达 的错误信息

论坛徽章:
0
9 [报告]
发表于 2007-06-15 10:31 |只看该作者
traceroute 是显示不可到达吗?这样确实是有问题。

最好能把完整的tcpdump内容贴出来。最近比较忙...sigh...

论坛徽章:
0
10 [报告]
发表于 2007-06-15 14:26 |只看该作者

回复 9楼 isjfk 的帖子

14:26:35.380438 arp reply 202.141.162.40 is-at 00:14:78:44:26:0e (oui Unknown)
14:26:35.380455 arp reply 202.141.162.40 is-at 00:14:78:44:26:0e (oui Unknown)
14:26:44.438838 IP 202.141.162.40 > 202.141.162.106: ICMP 202.141.162.40 udp port 33438 unreachable, length 36
14:26:44.439621 arp reply 202.141.162.40 is-at 00:14:78:44:26:0e (oui Unknown)
14:26:44.440675 IP 202.141.162.40 > 202.141.162.106: ICMP 202.141.162.40 udp port 33439 unreachable, length 36
14:26:44.441250 IP 202.141.162.40 > 202.141.162.106: ICMP 202.141.162.40 udp port 33440 unreachable, length 36
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP