Chinaunix首页 | 论坛 | 博客
  • 博客访问: 743681
  • 博文数量: 741
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-18 11:18
文章分类

全部博文(741)

文章存档

2011年(1)

2008年(740)

我的朋友

分类:

2008-09-18 11:33:14

0.000000 192.168.199.186 -> 192.168.199.21 SIP Request: REGISTER sip:192.168.199.21
0.004663 202.204.176.25 -> 202.204.177.210 SIP Status: 100 Trying (0 bindings)

刚开始我还以为我眼花了,又看了几遍,仍是这样。

我又是意外,又是生气。[@more@]

.199.21(netserver6000)只有一块网卡在工作,不过绑定了两个地址,分别是192.168.199.21和202.204.176.21。
202.204.176.25(twenty-five)有多个接口,其中两个是192.168.199.1和202.204.176.25。它是我的默认网关,
还负责NAT。
我的工作站chobits只有一个网卡,绑定了两个地址192.168.199.186,202.204.177.210,。
我在netserver运行一个mini的SIP proxy(利用VOCAL写的一个proxy server的小例子,我给它取名为StackBed),
然后在chobits运行vovida SIPset (一个SIP UA)。结果就出现引言里的那种情况。

怎么会这样?一定要查个水落石出。
不过我也有些后悔当初使用StackBed得到正常结果时没有作记录。人到生病时才知道健康珍贵,我到出错时才后悔没作
记录??

首先,到netserver上监测数据报
(sudo /usr/sbin/tethereal udp and not port 53 and not broadcast and not arp and not icmp)
结果为
14.756412 192.168.199.186 -> 192.168.199.21 SIP Request: REGISTER sip:192.168.199.21
14.759229 192.168.199.21 -> 202.204.177.210 SIP Status: 100 Trying

netserver发什么神经?怎么把回复发到公共IP上去了?从引言可以看到,数据报是从192.168.199.186发出的,无论
如何netserver也不会知道202.204.177.210这个公开IP的啊?!
且慢,netserver上显示数据报从92.168.199.21 发到 202.204.177.210,而chobits上却显示
202.204.176.25 -> 202.204.177.210。原来netserver以私有地址发出的这个IP分组被twenty-five作了NAT了。
这么说,情况并非那么荒唐。

我再静下心来想想,是SIP报文里有猫腻也说不定,毕竟刚才没有仔细检查过。于是我翻chobits的ethereal记录,在
chobits发出的SIP REGISTER报文里,via域赫然写着202.204.177.210:5060(Vovida Stack对于REGISTER消息根据via域发送回复)。 Oh my god, how can
that be?!

再仔细回想,几个月前我把工作从Red Hat 9.0迁移到红旗4.1下,从那以后就很少用SIPset了。于是我把/etc/hosts
翻出来看(我知道SIPset对/etc/hosts有不小的依赖),果然第一项写着202.204.177.210 chobits。 于是我把第二项192.168.199.186 chobits移到第一。

再运行SIPset,发出的SIP报文里终于把192.168.199.186作为本地地址了。唉,又是a fuss on nothing。主要原因
是迁到红旗Linux后一直没有用SIPset, 几个月后就忘了,一直以为一切都是配置好的呢。

以后一些工具软件使用正常后应该作个简单的记录,像个小手册,免得下次用一头雾雨。



--------------------next---------------------

阅读(734) | 评论(0) | 转发(0) |
0

上一篇:"又见小茜"

下一篇:身边人的话

给主人留下些什么吧!~~