在FreeBSD上用natd标志redirect

我正在尝试设置一个基本的NAT服务器。 我希望来自外部世界的所有stream量到NAT服务器被redirect到另一台机器,在那里我运行一个lipcap服务来parsing这个stream量。

我在rc.conf的natd_flags部分尝试了-redirect_port和-redirect_address,但没有任何作用…任何想法?

用户空间natd需要启用ipfw 。 IPFW捕获数据包并将它们redirect到转换地址的natd 。 但是现在你可以使用内核natembedded到ipfw中。

让我们启用IPFW引擎

 # /etc/rc.conf . . . . . gateway_enable="YES" firewall_enable="YES" firewall_nat_enable="YES" firewall_script="/etc/rc.ipfw" . . . . . 

让我们configuration内核redirect:

 # /etc/rc.ipfw . . . . . oip="1.2.3.4" # Outer IP looking to the internet tip="10.0.0.100 # Target host ipfw nat 1 config redirect_addr ${tip} ${oip} . . . . . 

就这样。

PF防火墙具有NAT和redirectfunction。添加到/etc/rc.conf中:

 gateway_enable="YES" pf_enable="YES" 

并configuration防火墙。 将这些行添加到/etc/pf.conf中:

 ext_if=em0 ext_addr = NNNN (your external IP) int_if=em1 int_net=10.0.0.0/8 int_addr=10.0.0.1 libcap_host=10.0.0.2 nat on $ext_if from $int_net to any -> $ext_addr rdr on $ext_if from any to $ext_addr -> $libcap_host 

NAT规则将做你想做的事情,通过网关的外部IP把你的互联网上产生的所有stream量发送给世界。 rdr规则将所有传入连接路由到您的目标主机。