ipfw+natd使用举例及注意事项

2009-05-13 09:02:17来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

ipfw+natd使用举例及注意事项
  很多朋友使用FreeBSD的ipfw+natd来实现网络地址转换,但在使用的时候,可能或多或少都遇到过一些问题。本人就自己使用过程中遇到的问题作一个总结,希望能给新手们一些帮助。以下内容都是本人自己的理解,不一定正确,还请各位多多指教。
  关于本文的说明:
  1、本文以一些例子来说明ipfw+natd的实现,但由于手册上关于ipfw和natd的使用已经非常清楚,所以本文只给出相应的ipfw规则语句,不再讨论关于ipfw和natd的使用。
  2、为什么不使用状态保持(keep-state):我经过测试,如果使用keep-state规则,写起来的确简单,但是连接数一大,就会出现效率
问题,要经常刷新状态链才行,否则会出现阻塞的现象。我用我的笔记本R40e做过实验,网卡用本机带的bge0和一个外3com509B的笔记本网卡,带
60台机器,同时上网。如果用keep-state,则五分钟内基本上都不通,而不用keep-state的时候,则跑一个星期也没事。但是不可否认,不
用keep-state的语句特别难写。我感觉这也应该是正常的,否则,在手册上就不会出现“IPFW
是为满足专业用户,以及掌握先进技术的电脑爱好者们对于高级的包选择需求而设计的。”之类的话了。
  3、下文中,fxp0是内网网卡,地址是192.168.0.x;fxp1是外网网卡,地址是202.102.152.x(山东网通的,仅作为举例用,如果您觉得侵犯您的权利,请在后面跟贴说明,我再换一个)。
  4、因为端口号在本文中并不是很重要,所以在大多数场合,不再写端口号。
任务一:我只想让一台机器(192.168.0.22)上网。
  这个看起来可能很简单,但是做起来的时候,你就会发现,那并不是一件很容易的事!
  很可能有人这样写,感觉应该可以通了,并且很完美。(实际上,我以前就是这么做的)
  ipfw add 10 divert natd ip from 192.168.0.128/25 to any
  ipfw add 20 allow ip from me to any
  ipfw add 30 allow ip from any to any via fxp1
  ipfw add 40 allow ip from any to any via lo0
  ipfw add 100 deny ip from any to any
  觉得完美的理由如下:
  1、第一句(10),是先让这些机器可以NAT上网。
  2、第二句(20),要允许自己访问,否则本机上网的时候就不通了。
  3、30,40两句,是要允许局域网可以用,否则的话,你就不能通过局域网管理你的机器了。其中fxp1代表局域网网卡。lo0是本地回路,一般情况可以不要,但是有些应用是要用到它的。
  乍一看,感觉也没有什么问题,但是,如果你把这个规则写到机器的时候,就会发现它根本不工作。
这个时候,你既不要抱怨机器有问题,也不要抱怨网络有问题,更不要抱怨FreeBSD不好用。仔细想一数
据包的走向,你就会发现你在犯错误!
  先让我们来看一下数据到底是怎么走的,在这当中,都经过了哪些地方,IP地址(因为我们最关心的是NAT,也就是网络地址转换)到底是怎么改变的。现
在,以一个主机192.168.0.77联接到www.chinaunix.com
[60.28.166.84]为例,来看一下数据包的整个旅程和IP的改变情况。
  
(一)首先,192.168.0.77主机发起一个包,目标是60.28.166.84,我简单写作:
192.168.0.77>>60.28.166.84,这个过程,和我们的NAT服务器没有关系,也不会进入ipfw。
(二)然后这个数据包到了第一站,进入我们的NAT服务器,记住,这个是从内网网卡,也就是fxp0进入的,那么,她必然要进入到防火墙接受申查,以便好
进入到我们的服务器内部,因为只有进入到我们服务器内部,FreeBSD能才对她进行处理。所以,这儿必须设置一条对她的规则,我们可以简单地设置一条:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:locate命令报错

下一篇:[分享]一次性密码opie的使用说明