思科GNS3基于PPPOE+CBAC+DHCP+Qos等技术的通用型路由器的设计与实现
在GNS3(也可在eve-ng)上搭建的拓扑图如下所示:
其中,R1代表旧的路由器,Windows 7主机代表家用电脑,其他路由器和网络设备代表的是公网设备,其中就包括运营商和远端的服务器,远端的服务器用来模拟一些病毒网站,我们的目的是配置一些策略,来限制电脑可以访问这些违规网站。
总体设计
我们设计的是,R1为我们的电脑提供PPPOE上网服务,我们暂时给本地计算机创建两个拨号用户,其用户名和密码下所示:
用户名 | 密码 |
---|---|
username1 | 123456 |
– | – |
username2 | 123456 |
– | – |
在实际生活中,我们遇到的病毒网站有多种多样的,这里的实验我们仅举一类即可,我们使用Windows Server 2008R2服务器在GNS3的外网上构建了一个违规网站,域名为***,其IP为200.1.1.2,我们在家里使用上网时,有时候会收到一些恶意的弹窗或者url网页文件,当不小心点击后,就会自动打开浏览器访问 | |
现在我们要做的就是,在R1上配置CBAC策略来拒绝本地用户访问此网站,当用户不小心尝试打开此网站时,会自动拒绝该网站到本地的流量,例如浏览器就会如图所示: | |
当我们配置好了后,这里的违规网站就会显示无法显示此页
然后配置Qos,对于通往外网服务器的流量做流量管制,配置速率为8000bps,bc为1000字节,be为1000
详细配置
配置DHCP
在R1上的配置如下所示:
R1(config-if)#service dhcp //开启DHCP服务
R1(config)#ip dhcp pool vlan //创建dhcp地址池,设置名称为vlan
R1(dhcp-config)#default-router 192.168.3.254 //设置默认网关地址
R1(dhcp-config)#network 192.168.3.0 255.255.255.0 //设置子网的网络地址,也就是网段
R1(dhcp-config)#dns-server 200.1.1.2 //设置DNS地址
配置PPPOE拨号上网
在R1上的配置如下所示:
R1(config)#bba-group pppoe global //配置全局的bba-group
R1(config-bba-group)#virtual-template 1 //调用虚拟模板virtual-template 1
R1(config-bba-group)#int e0/2 //进入物理接口e0/2
R1(config-if)#pppoe enable //开启pppoe功能
R1(config-if)#no shut //开启接口
R1(config-if)#interface virtual-template 1 //进入一个虚拟模板的接口
R1(config-if)#encapsulation ppp //采用ppp封装
R1(config-if)#ppp authentication chap //配置认证方式为chap认证
R1(config-if)#ip mtu 1492 //设置MTU值为1492
R1(config-if)#ip unnumbered ethernet 0/1 //使用e0/1接口的IP地址作为pppoe的拨号地址
R1(config-if)#peer default ip address dhcp-pool vlan //使用dhcp方式分发地址,并且使用之前创建的地址池vlan
R1(config-if)#username username1 password 123456 //创建一个用户名username1,其密码为123456
R1(config)#username username2 password 123456 //创建一个用户名username2,其密码为123456
配置CBAC上下行控制
在R1上的配置如下所示:
R1(config)#access-list 101 deny tcp any host 200.1.1.2 eq www //创建扩展ACL策略,拒绝本地所有主机访问外网的网络赌博诈骗网站
R1(config)#access-list 101 permit ip any any //同时允许本地所有的流量通行
R1(config)#int e0/1 //进入路由器的出接口
R1(config-if)#ip access-group 101 out //在出接口上应用该策略
R1(config)#ip inspect name cbac tcp //定义CBAC,并开启TCP服务
R1(config)#ip inspect name cbac udp //定义CBAC,并开启UDP服务
R1(config)#ip inspect name cbac icmp //定义CBAC,并开启ICMP服务,通常应用于ping
R1(config)#ip inspect name cbac http //定义CBAC,并开启HTTP服务
R1(config)#int e0/1 //进入出接口
R1(config-if)#ip inspect cbac in //应用CBAC策略到路由器的进方向
R1(config)#ip inspect max-incomplete high 500 //设置cbac策略,当半开会话数量超过500时,就会删除该会话
R1(config)#ip inspect max-incomplete low 400 //当半开会话低于400时停止删除
R1(config)#ip inspect one-minute high 600 //当开始删除半开会话时候接收的会话数的数量最多为600个
R1(config)#ip inspect one-minute low 400 当开始删除半开会话时候接收的会话数的数量最低为400个
配置QOS流量管制
在R1上的配置如下所示:
R1(config)#access-list 102 permit ip 192.168.3.0 0.0.0.255 host 200.1.1.2 //定义内网通往外网服务器的流量
R1(config)#class-map match-all Qos //创建类图,名称为Qos
R1(config-cmap)#match access-group 102 //调用ACL
R1(config-cmap)#ex
R1(config)#policy-map Qos //创建策略图
R1(config-pmap)#class Qos //调用类图
R1(config-pmap-c)#police cir 8000 bc 1000 be 1000 conform-action transmit exceed-action drop //做流量管制,设置速率为8000bps,bc为1000字节,be为1000,正常的流量传输,不正常的流量就丢弃
R1(config-pmap-c-police)#int e0/2
R1(config-if)#service-policy output Qos //在接口上调用Qos策略
配置到这里就做完了,开始网络测试
网络测试
测试PPPOE拨号上网
首先我们到电脑的网络控制中心
然后点击设置新的连接或网络,如图所示:
然后点击连接到Internet,这里就能选择PPPOE连接,点击下一步,如图所示:
选择宽带(PPPOE)®连接,如图所示:
输入我们上面提供的两个用户名中的其中一个就行,这里我们输入用户名username1,密码123456,如图所示:
然后点击连接,就能看到连接进度,如图所示:
当我们配置好了后,以后就只需要在网络控制中心点击宽带连接了,如图所示:
输入密码就可以连接,如图所示
快速连接成功,如图所示:
测试CBAC
我们打开浏览器,进行访问,其结果如图所示:
测试Qos
我们在虚拟机上测试,首先本地Windows 7可以向外网服务器发送默认字节的icmp包,如图所示:
然后我们设置包大小为1000,由于在接口上做的Qos限制包大小为1000bit,那么当超出这个阈值时,会自动丢弃该流量,如下图,我们设置包大小为1000bit,重复次数为8次,如图所示:
可以看到,该流量直接被丢弃
那么我们设置包大小为900bit时,则又能正常发送数据了,如图所示:
原文链接:http://www.ccieluo.cn/network_project/67.html