LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1911|回复: 13

关于双网卡设置问题

[复制链接]
发表于 2004-7-14 11:34:53 | 显示全部楼层 |阅读模式
一个现有的网络,由电信提供网关,所有的客户机用固定ip(非公网ip)设置上网。现在需要在出口添加一个代理服务器,我用的是Freebsd 4.10 stable,内核中添加了ipfw和ipfirewall_forward,rc.conf中启用netd_enable="yes"。我的本意是想不改动客户机的所有设置,所以计划把外网网卡设置成电信提供的ip地址,内网网卡设置成原来电信网关的地址。测试环境是,电信线路接入交换机,然后接bsd外网网卡,另外一块网卡连一个hub,hub再连一个测试pc。
这时候的问题是,外网网卡设置不变。如果把内网网卡ip改成网关(rc.conf),reboot之后,该网络接口没有ip地址,然后ifconfig更改ip,回车之后提示:
ifconfig : ioctl (SIOCAIFADDR) :file exists
地址设不上。更改ip和掩码,为10.10.10.1 netmask 255.255.255.0(不同于电信提供的ip)客户机相应更改到这个网段,可以正常上网。

请教:是bsd不允许这么设置网卡?还是我设置有问题?
 楼主| 发表于 2004-7-14 16:38:24 | 显示全部楼层
我把这台机子装成win2000+sygate,网卡设置与bsd里一样,客户机不需要更改设置就可以上网了.
这是何解?
发表于 2004-7-17 10:30:00 | 显示全部楼层

究竟不明白你的意思…………

你的外网卡不变,内网卡只是设置ip就可以了,设什么网关?比较迷惑。。。
是你的设置的问题。。。到置顶找文章看看吧,有配置防火墙网关的帖子。。
 楼主| 发表于 2004-7-19 09:31:18 | 显示全部楼层
哦,是我没有表达清楚.
那台用作代理服务器的bsd,内网网卡ip地址设置成了原来电信提供的网关地址,那个网卡没有设置网关

外网网卡按照普通的客户机原先的设置.

我觉得可能是我对ipfw理解有点问题,看看资料去,谢谢版主提醒!
发表于 2004-7-19 14:12:49 | 显示全部楼层

再想想吧??

根据你的说明,你不是对ipfw理解有问题,而是对数据包的路由走向理解错误。看看网络基础,以及看看你使用win2k后,两个网卡的ip地址设置,会给你一点提示的。
####
先给你一点:比如电信给你的是1.1.1.1,gw:1.1.1.2.你的内网地址为:192.168.0.0/24
那么你的外网卡地址应该是1.1.1.1,内网卡地址为:192.168.0.1/24
默认网关是1.1.1.2
发表于 2004-7-19 14:33:52 | 显示全部楼层

回复: 再想想吧??

最初由 Eg_zm 发表
根据你的说明,你不是对ipfw理解有问题,而是对数据包的路由走向理解错误。看看网络基础,以及看看你使用win2k后,两个网卡的ip地址设置,会给你一点提示的。
####
先给你一点:比如电信给你的是1.1.1.1,gw:1.1.1.2.你的内网地址为:192.168.0.0/24
那么你的外网卡地址应该是1.1.1.1,内网卡地址为:192.168.0.1/24
默认网关是1.1.1.2

我的理解:

  1. 192.168.0.X    #内部网
  2.      |
  3. 192.168.0.1    #内网网卡
  4.      |
  5.   1.1.1.1      #外网网卡,即电信给你的IP
  6.      |
  7.   1.1.1.2      #外网网关
复制代码
发表于 2004-7-19 15:39:14 | 显示全部楼层

同意楼上的。

并且,内网机器的默认网关应该设置为:192.168.0.1
 楼主| 发表于 2004-7-19 15:43:44 | 显示全部楼层
假设电信指定
gw:1.1.1.2
ip:1.1.1.0/24
那么局域网中已经有若干机子使用,先将bsd作为客户机来配置,内网网卡暂且不管.
外网卡设置如下:1.1.1.1/24        gw:1.1.1.2
这个时候已经可以连通Internet了.
#####################################
为了作代理,同时避免改动所有客户机的网络配置,我配置内网网卡如下:
ip:1.1.1.2/24        gw没有设置(sygate里这样设置已经通过)
改动rc.conf,reboot之后,内网网卡没有生效.于是打算手动用ifconfig改ip,但是提示:
ifconfig : ioctl (SIOCAIFADDR) :file exists
#####################################
但我如果把内网网卡ip改作192.168.0.1/24        gw没有设置.(这个设置我试了一下,只要ip和掩码和外网网卡不重复,什么样的ip都可以)ifconfig可以通过,测试的客户机经过改动ip到192.168.0.0网段,gw设成192.168.0.1就可以上网了.只是这样没有达到我希望的目的:

客户机不需要改动ip和网络设置,如果不需要这个代理服务器,只要把bsd的网线调整一下就好.
发表于 2004-7-19 16:37:30 | 显示全部楼层
最初由 cocaxl 发表
假设电信指定
gw:1.1.1.2
ip:1.1.1.0/24
那么局域网中已经有若干机子使用,先将bsd作为客户机来配置,内网网卡暂且不管.
外网卡设置如下:1.1.1.1/24        gw:1.1.1.2
这个时候已经可以连通Internet了.
#####################################
为了作代理,同时避免改动所有客户机的网络配置,我配置内网网卡如下:
ip:1.1.1.2/24        gw没有设置(sygate里这样设置已经通过)
改动rc.conf,reboot之后,内网网卡没有生效.于是打算手动用ifconfig改ip,但是提示:
ifconfig : ioctl (SIOCAIFADDR) :file exists
#####################################
但我如果把内网网卡ip改作192.168.0.1/24        gw没有设置.(这个设置我试了一下,只要ip和掩码和外网网卡不重复,什么样的ip都可以)ifconfig可以通过,测试的客户机经过改动ip到192.168.0.0网段,gw设成192.168.0.1就可以上网了.只是这样没有达到我希望的目的:

客户机不需要改动ip和网络设置,如果不需要这个代理服务器,只要把bsd的网线调整一下就好.


那楼主可不可解释一下,象你那样设置,包是怎个走法呢?
 楼主| 发表于 2004-7-19 17:44:16 | 显示全部楼层
说实话我不太明白ipfw和natd的工作原理,handbook上看着也不太清楚,我的理解是这样的:
客户机将数据包交给bsd网关,ipfw+natd把内网网卡接收到的数据包转发到外网网卡,同时把源ip改成外网网卡的ip,然后从外网网卡发送数据包到外网的网关上.
外网网卡收到远端回应的数据包后,ipfw+natd把目标ip和端口转换成内网的客户机地址,然后用内网网卡发送给客户机
是否在代理服务器上存在2张表,一张是内网客户机的ip和端口与内网网卡的对应,一张是外网目标ip地址与外网网卡ip和端口的对应?
我觉得内网怎么设置和外网网卡没有关系,所以才会作出那种上不了网的配置.
为什么同样的设置方法,sygate就不会有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表