首先为5000台机器的网吧的规模感到震惊!
2.4的内核我觉得有必要升级到2.6。
5000台机器,每台约100个并发连接(在实际的应用中,如NAT后面的机器打开迅雷、BT、Flashget之类的软件,大概会在ip_conntrack增加500-1000个连接/机器,当然如果只是简单的网页浏览不会达到100), 约50万并发链接,每个IP理论端口65535,实际可用到50000左右,我觉得大概用10个IP地址做NAT 的POOL比较合适。
因此应考虑多VLAN,用多条SNAT规则将这5000台机器通过不同的IP出去。
另外参考前文提及的:在加载ip_conntrack使用下面的命令。
HASHSIZE=1048576
modprobe ip_conntrack hashsize=$HASHSIZE
modprobe ip_conntrack hashsize=$HASHSIZE
来加大ip_conntrack_max
假设你5000台机器划20个VlAN,内部IP用192.168.0.X~192.168.19.X
假设你的ISP给你提供的外网IP为61.181.1.1 -61.181.1.10,假设子网掩码255.255.255.224 网关 61.181.1.30
首先要创建网卡的子接口,假设eth0接内网,eth1接ISP
假设你的ISP给你提供的外网IP为61.181.1.1 -61.181.1.10,假设子网掩码255.255.255.224 网关 61.181.1.30
首先要创建网卡的子接口,假设eth0接内网,eth1接ISP
那在/etc/sysconfig/network-scripts/中可创建ifcfg-eth1:0 ~ ifcfg~eth1:9 这样的配置文件,将所有的外网IP绑定到这些接口上)
netconfig -d eth1 --ip=61.181.1.1 --netmask=255.255.255.224 --gateway=61.181.1.30
netconfig -d eth1:0 --ip=61.181.1.2 --netmask=255.255.255.224
netconfig -d eth1:1 --ip=61.181.1.3 --netmask=255.255.255.224
netconfig -d eth1:2 --ip=61.181.1.4 --netmask=255.255.255.224
netconfig -d eth1:3 --ip=61.181.1.5 --netmask=255.255.255.224
netconfig -d eth1:4 --ip=61.181.1.6 --netmask=255.255.255.224
netconfig -d eth1:5 --ip=61.181.1.7 --netmask=255.255.255.224
netconfig -d eth1:6 --ip=61.181.1.8 --netmask=255.255.255.224
netconfig -d eth1:7 --ip=61.181.1.9 --netmask=255.255.255.224
netconfig -d eth1:8 --ip=61.181.1.10 --netmask=255.255.255.224
netconfig -d eth1 --ip=61.181.1.1 --netmask=255.255.255.224 --gateway=61.181.1.30
netconfig -d eth1:0 --ip=61.181.1.2 --netmask=255.255.255.224
netconfig -d eth1:1 --ip=61.181.1.3 --netmask=255.255.255.224
netconfig -d eth1:2 --ip=61.181.1.4 --netmask=255.255.255.224
netconfig -d eth1:3 --ip=61.181.1.5 --netmask=255.255.255.224
netconfig -d eth1:4 --ip=61.181.1.6 --netmask=255.255.255.224
netconfig -d eth1:5 --ip=61.181.1.7 --netmask=255.255.255.224
netconfig -d eth1:6 --ip=61.181.1.8 --netmask=255.255.255.224
netconfig -d eth1:7 --ip=61.181.1.9 --netmask=255.255.255.224
netconfig -d eth1:8 --ip=61.181.1.10 --netmask=255.255.255.224
这些命令完成后重启生效。
SNAT规则可以这么写:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.254.0 -j SNAT --to-source 61.181.1.1
/sbin/iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.254.0 -j SNAT --to-source 61.181.1.2
/sbin/iptables -t nat -A POSTROUTING -s 192.168.4.0/255.255.254.0 -j SNAT --to-source 61.181.1.3
/sbin/iptables -t nat -A POSTROUTING -s 192.168.6.0/255.255.254.0 -j SNAT --to-source 61.181.1.4
/sbin/iptables -t nat -A POSTROUTING -s 192.168.8.0/255.255.254.0 -j SNAT --to-source 61.181.1.5
/sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.254.0 -j SNAT --to-source 61.181.1.6
/sbin/iptables -t nat -A POSTROUTING -s 192.168.12.0/255.255.254.0 -j SNAT --to-source 61.181.1.7
/sbin/iptables -t nat -A POSTROUTING -s 192.168.14.0/255.255.254.0 -j SNAT --to-source 61.181.1.8
/sbin/iptables -t nat -A POSTROUTING -s 192.168.16.0/255.255.254.0 -j SNAT --to-source 61.181.1.9
/sbin/iptables -t nat -A POSTROUTING -s 192.168.18.0/255.255.254.0 -j SNAT --to-source 61.181.1.10
/sbin/iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.254.0 -j SNAT --to-source 61.181.1.2
/sbin/iptables -t nat -A POSTROUTING -s 192.168.4.0/255.255.254.0 -j SNAT --to-source 61.181.1.3
/sbin/iptables -t nat -A POSTROUTING -s 192.168.6.0/255.255.254.0 -j SNAT --to-source 61.181.1.4
/sbin/iptables -t nat -A POSTROUTING -s 192.168.8.0/255.255.254.0 -j SNAT --to-source 61.181.1.5
/sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.254.0 -j SNAT --to-source 61.181.1.6
/sbin/iptables -t nat -A POSTROUTING -s 192.168.12.0/255.255.254.0 -j SNAT --to-source 61.181.1.7
/sbin/iptables -t nat -A POSTROUTING -s 192.168.14.0/255.255.254.0 -j SNAT --to-source 61.181.1.8
/sbin/iptables -t nat -A POSTROUTING -s 192.168.16.0/255.255.254.0 -j SNAT --to-source 61.181.1.9
/sbin/iptables -t nat -A POSTROUTING -s 192.168.18.0/255.255.254.0 -j SNAT --to-source 61.181.1.10
另外,如果你内网用三层交换,那应该在三层交换上将default gateway 指向你的Linux内网的网卡IP
并在Linux上用ip route add 192.168.0.0/16 via 三层交换的内网IP(加入rc。local)
转载于:https://blog.51cto.com/ilexes/247317