centos上实现动态路由和NAT功能
一、服务器配置:
1、CPU:core 4 内存:8G 硬盘:146G*4硬盘(raid5)
二、系统环境配置:
1、 系统版本:Centos6.5 64位
2、 安装环境:最小化安装,只装基本包
3、 安全加固:禁用root直接远程ssh、改变ssh端口为22909、禁用ctrl+atl+del重启
关闭selinux、host.allow只允许内网访问
三、服务配置:
1、安装并且配置quagga实现动态路由功能
(1)安装quagga:
#yum �Cy install quagga telnet yum安装动态路由软件和telnet客户端
(2)配置quagga:
#cp/etc/quagga/zebra.conf{.sample,} 从模板复制生成主配置文件
#cp/etc/quagga/bgpd.conf{.sample,} 从模板复制生成bgp配置文件
#chkconfig bgpd on && chkconfig zebra on 设成开机自起
#service zebra start 启动quagga主服务
#service bgpd start 启动bgp服务
(3)配置动态路由:
#telnet 127.0.0.1 2601 登录路由软件
User Access Verification
Password: 初始密码zebra,改用户密码命令password 密码
Router>en
Password: 初始密码zebra,改特权密码命令enable password 密码
Router# conft 命令基本同ios,密码加密service password-encryption
Router(config)#interface eth0
Router(config-if)#ip address 192.168.1.161/24 设置内网接口ip
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface eth1
Router(config-if)#ip address 1.1.1.1/24 设置外网接口ip
Router(config-if)#no shutdown
Router#write 保存设置
#service zebra restart 重启服务
# telnet127.0.0.1 2605 登录BGP服务
Password: 初始密码zebra
bgpd> 同思科配置bgp命令相同,不做累述了
#service bgpd restart 重启bgp服务
2、配置NAT:
#iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.161-192.168.1.168 -oeth1 -j SNAT --to 1.1.1.1 NAT转换规则,基于实验环境,生产环境时需要微调
#service iptables save 保存配置
#chkconfig iptables on 确保iptables开机启动
#cat/proc/net/nf_conntrack 查看NAT链接跟踪,前半为发出包,后半为期望回应的包
ipv4 2 icmp 1 5 src=192.168.1.168dst=1.1.1.2 type=8 code=0 id=39946 src=1.1.1.2 dst=1.1.1.1 type=0 code=0id=39946 mark=0 secmark=0 use=2
3、编写脚本生成NAT的log日志:
#vim nat.sh 创建shell脚本
#!/bin/bash
while : do echo "`date +'%F %T'` `cat /proc/net/nf_conntrack |sed -n '/E/!p'`" >> /root/nf.log sleep 10 done
#less /root/nf.log 查看log日志格式如下
2014-09-10 14:33:21 ipv4 2 icmp 1 18 src=192.168.1.168 dst=1.1.1.2 type=8code=0 id=28175 src=1.1.1.2 dst=1.1.1.1 type=0 code=0 id=28175 mark=0 secmark=0use=2
#vim /root/netlook.sh 建查询脚本
#!/bin/bash cat/root/nf.log |awk '{print $1,$2,$5,$7,$8,$9,$10,$14,$15}' > natlook.txt
#less /root/natlook.txt 运行后显示如下,其中第二个dst是NAT后IP
2014-09-1014:33:11 icmp 28 src=192.168.1.168 dst=1.1.1.2 type=8 dst=1.1.1.1 type=0
查看当前连接总数 #cat /proc/sys/net/netfilter/nf_conntrack_count
调最大连接数 #vim /etc/sysctl.conf
net.netfilter.nf_conntrack_max = 6100000
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
刷新 #sysctl -p
注:此文档基于实验,真正部署于服务器中时,shell脚本部分需要根据实际数据调整改进