【CCNP】第六章 流量控制

第一节 ACL

ACL:Access Control List,访问控制列表

作用:匹配数据,对特定的数据流进行允许/拒绝的操作

ACL根据其列表号可分为两种形态:

1.标准ACL

列表号为1-99,用于匹配数据源网络

配置:

一、定义标准ACL语句

Router(config)#access-list <1-99> permit/deny 源网络号 通配符

同一个ACL列表号下的每一条语句都会带有一个序列号,从10开始,以10递增。ACL的执行顺序由小到大进行匹配执行。

但ACL有隐含的拒绝一切(隐藏于ACL的最后端且无法发现),解决方法是强行写一条放行所有

Router(config)#access-list <1-99> permit any # 

需要注意的是,这个命令如果前面写的是deny命令,代表需要拒绝一些特定的源数据流,则需要在最后写允许所有,否则按照序列号匹配会先放行掉所有流量!

二、调用ACL

Router(config)# int eX/y
Router(config-if)# ip access-group <1-99> in/out

此处需要判断一下流量的方向,如果该流量是经过接口进入到本路由器的,则在这个接口上是in方向,如果该流量是从本路由器从该接口发出,则在这个接口上是out方向

标准ACL一般部署在距离源网络尽可能远的位置上。

标准ACL条目的增加和删除:开小号

ip access-list standard <1-99>
            no 10 # 删除响应序列号的语句
            15 deny 192.168.1.0 0.0.0.255 # 增加序列号为15的ACL语句

2.扩展ACL

列表号为100-199,用于匹配数据源和数据目的,并且可以指定响应的协议。

配置:

一、定义扩展ACL语句

Router(config)# access-list <100-199> permit/deny 协议 源网络号 源网络号的通配符 目的网络号 目的网络号的通配符

扩展ACL的放行所有:

Router(config)# access-list <100-199> permit 协议 any any

二、调用扩展ACL语句

Router(config)#int eX/y
Router(config-if)#ip access-group <100-199> in/out # 此处也需要判断流量的方向,判断依据与标准ACL完全一致。

3.反掩码、掩码和通配符的区别

一、掩码

在掩码中,1表示精确匹配,0表示随机
1和0,永远不交叉;
1永远在左边,0永远在右边;
在配置IP地址以及路由的时候,会使用掩码;

二、反掩码

在反掩码中,1表示随机,0表示精确匹配
0和1,永远不交叉;
0永远在左边,1永远在右边;
在路由协议的配置中,通过network命令进行网段宣告时,会使用

三、通配符

在统配符中,1表示随机,0表示精确匹配
0和1的位置,没有任何的固定限制
可以连续,可以交叉
在ACL中,使用的通配符
通配符掩码表

4.使用ACL抓取奇数或偶数路由

在网络号的掩码中,出现0之后就不可以出现1了。

但是在通配符(反掩码)中,出现0之后可以允许1继续出现。因此,我们可以使用这个机制来完成ACL的匹配奇/偶数路由。例如给出如下4个网段,172.16.0.0/24,172.16.1.0/24,172.16.2.0/24,172.16.3.0/24。

172.16.0.0/24 172.16.00000000.0
172.16.1.0/24  172.16.00000001.0
172.16.2.0/24 172.16.00000010.0
172.16.3.0/24 172.16.00000011.0

可以发现,奇数路由的特征是:最后一位永远是1。

access-list 1 permit 172.16.1.0 0.0.0000 0010.255

即:172.16.1.0 0.0.2.255 就可以抓到奇数路由了。

第二节 NAT

NAT:Network Address Translation,网络地址转换/翻译

作用:将私网地址转换成公网地址

私网地址只能在局域网中使用,是不可以访问公网的。而公网地址既可以在局域网中使用,也可以在广域网中使用。

私网地址的范围:

10.0.0.0      -    10.255.255.255
172.16.0.0   -   172.31.255.255
192.168.0.0  -   192.168.255.255

NAT的转换方式分为三种,分别是:静态NAT、动态NAT和端口复用NAT

        部署NAT之前一定要确保该企业园区网的出口路由器可以正常访问外网,常用的方式是写默认路由匹配公网上所有的路由条目。

        NAT的部署位置绝大部分情况下是企业的出口路由器,如图中R4

        NAT的部署方式分为三种,静态NAT、动态NAT和端口复用NAT

1.端口复用NAT的部署(也是企业中常用的NAT部署方式)

(1)抓取待访问公网的内网主机

此处可以搭配ACL使用,如192.168.1.0/24网段内的主机需要访问公网,需要使用ACL将这些主机给抓取起来

R4(config)# access-list 1 permit 192.168.1.0 0.0.0.255 # 此处的permit不搭配接口下策略使用,不再是允许/放行的意思,而代表抓取。

(2)定义内外网属性

将连接内网的接口定义为内网,将连接外网的接口定义为外网

R4(config)# interface e0/3 
R4(config-if)# ip nat inside # 定义为NAT内网接口
R4(config)# interface e0/0 
R4(config-if)# ip nat outside # 定义为NAT外网接口

(3)定义NAT语句

将ACL列表号为1的源地址按照内外网属性进行网络地址转换

R4(config)# ip nat inside source list 1 interface e0/0 overload # 将内网ACL列表号为1的内部主机流量转换成e0/0的公网接口地址来访问公网。

其中overload用于表示端口复用,即一个公网地址可以为多个私网地址提供服务,理论上最多可以有65535台主机共用同一个公网IP地址。

2.静态NAT的部署

假设该公司内PC1的地址为192.168.1.100,为该公司的Web服务器,希望该服务器通过特定申请的公网IP地址上网,如:47.93.22.66,则可以依靠静态NAT来实现。

(1)定义内外网属性

将连接内网的接口定义为内网,将连接外网的接口定义为外网

R4(config)# interface e0/3 
R4(config-if)# ip nat inside # 定义为NAT内网接口
R4(config)# interface e0/0 
R4(config-if)# ip nat outside # 定义为NAT外网接口

(2)定义NAT语句

R4(config)# ip nat inside source static 192.168.1.100 47.93.22.66 # 将内网192.168.1.100私有地址访问公网时转换为47.93.22.66。

3.动态NAT的部署

假设该公司申请到一个公有地址的地址段,如47.93.22.100 – 47.933.22.104,则可以使用动态NAT实现访问公网的需求。

1.匹配内网数据流

R4(config)# access-list 1 permit 192.168.1.0 0.0.0.255

2.定义内外网属性

将连接内网的接口定义为内网,将连接外网的接口定义为外网

R4(config)# interface e0/3 
R4(config-if)# ip nat inside # 定义为NAT内网接口
R4(config)# interface e0/0 
R4(config-if)# ip nat outside # 定义为NAT外网接口

3.定义NAT地址池,表明哪些公网地址可用

R4(config)#ip nat pool Lab 47.93.22.100 47.93.22.104 netmask 255.255.255.0  # NAT地址池名为Lab,该地址池中起始可用地址为47.93.22.100,结束可用地址为47.93.22.104,掩码长度均为24位。

4.定义NAT语句

R4(config)#ip nat inside source list 1 pool Lab overload 
# 将ACL列表号为1的内网地址根据地址池Lab的公网地址进行转换,在不够使用的时候,使用端口复用技术。

查看NAT转换表象:

 Router#show ip nat translations

该转换表项是可以进行清除的

 Router#clear ip nat translations *

值得注意的是:该命令只可以清除端口复用NAT和动态地址池NAT的转换表象,静态NAT的表象是不会被清除掉的。

第三节 路由策略

路由策略是指:控制收发路由明细的过程,一般常见于重分发中

路由策略需要依靠ACL+Route-map来实现


Route-map介绍:

Router(config)# route-map name permit/deny 10 # permit表示放行,deny表示拒绝。
​
Router(config-route-map)# match ip address 1 # 匹配ACL列表号为1的流量
    route-map 也有隐含的拒绝一切的语句,需要写一个放行其它所有流量的空route-map
​
route-map name permit 20 # 写一个比deny号大的route-map,下面的匹配不写,代表匹配所有

实现过程:

1.使用标准ACL抓取路由前缀

R2(config)# access-list 1 permit 172.16.1.0 0.0.0.255 # 这里的permit依旧是抓取的意思

2.在Route-map下设置行为

R2(config)# route-map A deny 10
R2(config-route-map)# match ip address 1 # 匹配ACL列表号为1的流量
R2(config)# route-map A permit 20 # 放行其它所有流量

3.在重分发时关联Route-map

R2(config)# router ospf 1 
R2(config-router)# redistribute eigrp 1 subnets route-map A 

使用此方法的缺陷是:ACL无法匹配掩码,只要前缀相同,就能匹配上。针对此问题,可以引入第二种路由策略的方案:前缀列表+Route-map


Prefix-List介绍:

ip prefix-list name permit/deny 网络前缀/前缀长度 ge le
​
    permit:抓取   deny:不抓取
    ge:大于等于 le:小于等于,
​
使用方法:ge<= 掩码长度 <= le
    
    如果ge,le都不写,则默认ge=le=前缀长度
    如果不写le,则le默认值为32位
    如果不写ge,则ge默认值位为前缀掩码长度
​

如抓取25位掩码

ip prefix-list A permit 10.0.1.0/24 ge 25 le 25

前缀列表也有隐含的拒绝一切,解决方案同样是放行所有,

语法:

(config)#ip prefix-list A permit 0.0.0.0/0 le 32
如果想要通过前缀列表抓默认路由

语法:

 (config)#ip prefix-list A permit 0.0.0.0/0

第四节 策略路由

策略路由(Policy based Routing)

在不改变路由表的基础之上,实现对流量的控制。

通过ACL+Route-Map实现

第一步,用ACL抓取路由前缀

(config)#access-list 1 permit 172.16.0.0 0.0.0.255

第二步,定义Route-map和行为

(config)# route-map PBR permit 10 # 需要放行流量,才能允许接下来的操作,因此是permit
(config-route-map)# match ip address 1  
(config-route-map)# set ip next-hop 24.1.1.4 # 设置下一跳IP地址为24.1.1.4。
​

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iknow181

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值