急!!!求唐先生和各位高手??

唐先生:
我把我的问题详细叙述一下:
我的系统是qnx6.3,配置双网卡分别联交换机两个网段通讯。

1.如何给两个网卡加驱动(8139和d-link)。我用的是io-net -d rtl … -d speedo -ptcpip
但是网卡驱动只能加上一个。
2.如何给两个网卡配置网关,假设有两个网段192.168.0.x和192.168.1.x。我的网卡地址分别是192.168.0.2和192.168.1.2。我用您给的route add -net 192.168.0.0 192.168.0.2和route add -net 192.168.1.0 192.168.1.2。能加上,但是还是无法通讯。我用 route add default 192.168.0.1 加上后,只有192.168.0.x能使用,而192.168.1.x不能使用。(您给<network1.0.0.0> 是网段的意思把??)
3.另外我的程序是组播的形式,是不是必须设定网关。才能接受到那??我不设置网关能否接到?如果必须加网关我在程序中是否建socket时,必须用setsockopt中的帮定设备那个参数那???

补充一点:还有的用route show 中显示的gateway列中显示的"link#2";和Flag列中显示的“U”"UH"时什么意思??


十分感谢,,急急急。。。

补充一点:还有的用route show 中显示的gateway列中显示的"link#2";和Flag列中显示的“U”"UH"时什么意思??

十分感谢,,急急急。。。

“link#2” 是说这个目标是通过AF_LINK#2出去的。换言之,是可以直接到达的。(在同一subnet上)

U是说这个route entry已经有效。(UP),H是说目标是HOST。

唐先生:
我把我的问题详细叙述一下:
我的系统是qnx6.3,配置双网卡分别联交换机两个网段通讯。

1.如何给两个网卡加驱动(8139和d-link)。我用的是io-net -d rtl … -d speedo -ptcpip
但是网卡驱动只能加上一个。
2.如何给两个网卡配置网关,假设有两个网段192.168.0.x和192.168.1.x。我的网卡地址分别是192.168.0.2和192.168.1.2。我用您给的route add -net 192.168.0.0 192.168.0.2和route add -net 192.168.1.0 192.168.1.2。能加上,但是还是无法通讯。我用 route add default 192.168.0.1 加上后,只有192.168.0.x能使用,而192.168.1.x不能使用。(您给<network1.0.0.0> 是网段的意思把??)
3.另外我的程序是组播的形式,是不是必须设定网关。才能接受到那??我不设置网关能否接到?如果必须加网关我在程序中是否建socket时,必须用setsockopt中的帮定设备那个参数那???

1) io-net -d rtl -d speedo -p tcpip 应该是对的,如果只有一个interface,那说明另一个不能被自动识别。这个问题不解决,下面的就不用看了。

2)假设你能有en0 和 en1 两个 interface了,那么正确的设定应该是:

ifconfig en0 192.168.0.2 netmask 255.255.255.0

ifconfig en1 192.168.1.2 netmask 255.255.255.0

这样,tcpip会自动加 192.168.0/24 到en0,192.168.1/24到en1,你不需要另外再用route add加。从你的机器,应该就可以直接ping 到 192.168.0.x和192.168.1.x上的机器。

3)用组播要有default gateway,你要用route add default <192.168.0.1> 这样的命令来设。

第一,二步是对的,现在的情况是这样的,我们的网络结构是主机上的两块网卡分别通过独立的通道与下面的装置相连,即en0(192。168。0

。123)和其他设备相连IP为(192。168。0。2),en1(192。168。1。123)和其他设备相连IP为(192。168。1。2),两路是物理上隔离的

,两个装置的广播都发向组播地址,qnx的网关只能有一个(不知道能不能有多个),如果我们设置了192。168。0。1的网关,则en0能收到组

播,en1收不到,反之设置了192。168。1。1的网关,则en1能收到组播,en0收不到,请问这种情况如何处理,是通过socket的参数实现还是通

过对qnx的设置实现?请详细解释,谢谢!

192.168.0/24 到en0,192.168.1/24到en1 这两个信息用什么命令查看?表示什么意思?
route show中没有看到
另外,现在ping 两个网段的地址都是通的
谢谢!

用 netstat -nr 可以查看。我得再想想你的组播问题。

要在这台有两个网卡上组播的话,好象得开两个组,播两次才行。
不知道 mrouted 会不会有什么帮助。

分别在两个网卡上组播实现有些难度,而且我没有找到mrouted 这个命令,我系统是qnx6.3。好象没有网落扩充开发包呀。从何得到???

难度好象也不大,就是费点手脚。

比方192.168.0.0这边用 224.100.0.1组,192.168.1.0这边用 224.101.0.1组。

  1. 先把各组的route entry设好

route add 224.100.0.1 192.168.0.2

route add 224.101.0.1 192.168.1.2

  1. 发组播的时候要发两次,一次发到224.100.0.1,一次发到224.101.0.1就好了。

  2. 所有在192.168.0网上的要记得IP_ADD_MEMBERSHIP到224.100.0.1;
    而在192.168.1网上的要记得IP_ADD_MEMBERSHIP到224.101.0.1

感觉上好象你应该可以ADD_MEMBERSHIP两次,从而同时接收两个组,不过我没有具体试过。
网络扩充开发包恐怕你得问你的销售代表。

谢谢,我试试吧