我正在尝试设置一个基本的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规则将所有传入连接路由到您的目标主机。