让Ubuntu成为最小的NAT?

我需要在Ubuntu 10.10中创build一个快捷的NAT。 只是“这一方面是用DHCP分发192.168.x.0 / 24”和“这边网关到互联网”,没有什么其他的有趣的。 似乎有不同程度的文件的select。 什么是最简单的方法来做到这一点?

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/10-network-security.conf iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o externaleth -j SNAT --to externalip apt-get install dhcp3-server gedit /etc/default/dhcp3-server interfaces="internaleth1" #eth2 or eth3 or whatyouhave :D gedit /etc/dhcp3/dhcpd.conf subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; #yours itnernal ip option subnet-mask 255.255.255.0; option domain-name "mylan.com"; option domain-name-servers 192.168.0.1; range 192.168.0.2 192.168.0.254; } apt-get install dns-masq service dhcp3-server restart 
  1. 设置nat
  2. 安装dhcpd-server
  3. 安装dnsmasq来处理选项domain-name-servers 192.168.0.1; 或者你可以把它设置为8.8.8.8并跳过安装dns-masq

实际上,我做了这个 – 几年前,一台旧的惠普微型塔作为我的家庭networking的路由器,直到它在黑暗中炸毁(硬件不值得排除故障)。 我很快就会为了这个目的build立一个全新的系统,所以我一定会写出一个如何操作的方法。

然而,在这期间,我会告诉你我使用的资源: Shorewall ,特别是双界面防火墙的使用方法 。 该网站的文档也有一个和三个接口设置类似的文章,所以select一个最适合您的需求。 我发现使用Shorewall比直接操作iptables要容易得多,而且比直接操作iptables更直观(Shorewall实际上只是iptables的configuration层,所以最终的结果是非常相似的,只是它处理了很多基本的,低层次的东西,你甚至不会想到,如smurfs(广播地址作为源数据包)和martians(数据包不可能的源地址))。