78 FreeBSD连载:设置和使用ipfw/natd( 七 )


另一个非常有用的参数是-redirect-port,它是用于将对某个IP地址固定端口的连接请求,转发至指定内部计算机中 。这个参数非常灵活,针对tcp或udp进行设置 。例如将对-alias_address定义地址的http请求转发到内部地址192.168.3.3的另一个端口8080上 。
# natd -alias_address 202.102.245.60 -redirect_port tcp 192.168.3.3:8080 80当然也可以为其他地址,如202.102.245.17,设置映射 。
# natd -alias_address 202.102.245.60-redirect_port tcp 192.168.3.3:8080 202.102.245.17:80进一步可以使用-redirect_port为特定的外部计算机的特定连接进行映射 。
还可以使用-f或-config参数指定natd的配置文件,从文件中而非从命令行读取natd的设置,使得设置更为清晰明了 。下面的设置文件例子中使用了另外几个很有用的参数 。
alias_address202.102.245.60deny_incomingyesunregistered_only yessame_portsyesuse_socketsyesdeny_incoming用于拒绝向alias_address发起的所有连接请求,用来保护网络内部安全,这个参数可以和-redirect_port参数结合,控制提供的网络服务 。
unregistered_only用于只对RFC1918定义的内部网址进行地址转换,防止出现错误设置影响正常的路由设置 。
same_ports在网络转换时尽量选择与原有数据包相同的端口,这样来保证一些与端口相关的服务能够被尽可能满足,但这并不表示普通的地址转换会百分之百使用同样的端口,在将多个内部转换为一个外部地址时,总会有端口冲突发生的可能,真正要避免冲突,还必须使用-redirect_port直接指定 。
use_sockets允许natd查看ftp、irc等连接的数据内部,以根据内容设置正确的端口,这将占用较多的系统资源,因此一般不要使用这个选项 。然而和same_port协作使用,可以支持更复杂的客户程序 。
其他还有一些设置选项,如log参数指定natd将日志记录到/var/log/alias.log文件中,dynamic参数用于和interface参数协作,跟踪网络界面的IP地址改变的信息,等等 。
在设置文件中指定的参数,其形式与在命令行中使用的方式相似,不同之处在于有的参数在配置文件中需指定yes或no,而在命令行中不需特别指定就意味着使用了yes属性 。如直接使用-log而非-log yes 。设置好这个设置文件之后,就可以启动natd了 。
# natd -f filename未完,待续 。。。

推荐阅读