A-A+

centos上实现动态路由和NAT功能

2016年01月02日 站长资讯 暂无评论

一、服务器配置:

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 –y install quagga telnet yum安装动态路由软件和telnet客户端

(2)配置quagga:

  1. #cp/etc/quagga/zebra.conf{.sample,}   从模板复制生成主配置文件  
  2. #cp/etc/quagga/bgpd.conf{.sample,}   从模板复制生成bgp配置文件  
  3. #chkconfig bgpd on  &&  chkconfig zebra on   设成开机自起  
  4. #service zebra start            启动quagga主服务  
  5. #service bgpd start             启动bgp服务  

(3)配置动态路由:

  1. #telnet 127.0.0.1 2601     登录路由软件  
  2. User Access Verification  
  3. Password:           初始密码zebra,改用户密码命令password 密码  
  4. Router>en  
  5. Password:                         初始密码zebra,改特权密码命令enable password 密码  
  6. Router# conft         命令基本同ios,密码加密service password-encryption  
  7. Router(config)#interface eth0  
  8. Router(config-if)#ip address 192.168.1.161/24        设置内网接口ip  
  9. Router(config-if)#no shutdown  
  10. Router(config-if)#exit  
  11. Router(config)#interface eth1              
  12. Router(config-if)#ip address 1.1.1.1/24              设置外网接口ip  
  13. Router(config-if)#no shutdown  
  14. Router#write                                   保存设置  
  15. #service zebra restart                         重启服务  
  16. # telnet127.0.0.1 2605     登录BGP服务  
  17. Password:                                    初始密码zebra  
  18. bgpd>                                        同思科配置bgp命令相同,不做累述了  
  19. #service bgpd restart       重启bgp服务  

2、配置NAT:

  1.        #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转换规则,基于实验环境,生产环境时需要微调  
  2.        #service iptables save            保存配置  
  3.        #chkconfig iptables on      确保iptables开机启动  
  4.        #cat/proc/net/nf_conntrack   查看NAT链接跟踪,前半为发出包,后半为期望回应的包  
  5. 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日志:

  1.        #vim nat.sh      创建shell脚本  
  2.        #!/bin/bash  
  3. while :  
  4. do echo "`date +'%F  %T'` `cat /proc/net/nf_conntrack |sed -n '/E/!p'`" >> /root/nf.log  
  5.     sleep 10  
  6. done  
  7.    #less /root/nf.log   查看log日志格式如下  
  8.   
  9. 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  
  10.       #vim /root/netlook.sh  建查询脚本  
  11.    
  12.   
  13.   #!/bin/bash  
  14. cat/root/nf.log |awk '{print $1,$2,$5,$7,$8,$9,$10,$14,$15}' > natlook.txt  
  15. #less /root/natlook.txt        运行后显示如下,其中第二个dst是NAT后IP  
  16.    
  17.   
  18. 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脚本部分需要根据实际数据调整改进。

标签:

给我留言