使用Linux建立一个全功能路由器
希望Linux路由器上有这样的几个功能:DHCP,流量管控,DNS,Squid缓存,能够禁止上一些网站,控制P2P,翻墙。
今天先实现最基本路由功能。
网络结构:
一台兼容PC,双网卡,eth0连在路由器上,接外网。eth1连在内网交换机上,开启DHCP服务。其他电脑全部是客户机,连在内网交换机上。
1)兼容PC上安装好Linux,可以是RHEL,CentOS,Debian,Ubuntu等等。这里我装的是RHEL6.1
2)配置双网卡。
如图,eth0是dhcp,eth1是192.168.0.254,且eth1上不配置网关。
3)打开转发功能
sysctl.conf : net.ipv4.ip_forward = 1
sysctl -p
4)在Linux上配置DHCP
[root@server ~]# cat /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow bootp;
allow booting;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.254;
option subnet-mask 255.255.255.0;
next-server 192.168.0.254;
filename="pxelinux.0";
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.0.200 192.168.0.240;
default-lease-time 21600;
max-lease-time 43200;
}
如果你有eth2,eth3,就需要定义多个 subnet 192.168.x.x 区域。根据eth2,eth3的IP来具体配置,同时也可以绑定客户机网卡,尤其在机器数目比较多的时候。因为我的内网只有3台笔记本和1个台式机,所以无所谓。
5)配置iptables
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
同时将这句写到/etc/rc.local末尾。
6)此时最基本的路由器就完成了!客户端可以拿到IP,上网了。