访问控制:在路由器的 出或入接口方向 产生动作,只有 允许和拒绝。
定义感兴趣流量:帮助其他 策略 抓流量。
由上至下,逐一匹配;上条匹配 按 上条执行,不再查看 下条。
在 华为体系 中,结尾 默认允许通过;但是在 思科体系 中,末尾 默认拒绝通过。
标准 ACL:仅关注 数据包中的 源 IP地址。
扩展 ACL:关注 数据包中的 源/目标IP地址,协议号 和 端口号。
由于 标准 ACL 仅关注数据包中的 源 IP,故 调用时要尽量 靠近目标,避免 对其他地址的访问 被误杀。
标准 ACL 编号范围:2000~2999
扩展 ACL 编号范围:3000~3999
注意:一个编码就是 一张规则,一张规则 可以容纳 大量的具体规则。
acl [标准编号]
创建 标准 ACL 表,编号为 标准范围。
以下命令都要在 进入标准 ACL 的基础下进行。
ACL 的通配符 与 OSPF 的 反掩码 规则相同,唯一区别在于 通配符 可以进行 0 1 穿插。
rule deny source [源IP] [通配符]
规定 拒绝 源 IP,在匹配地址时,需要使用通配符。
rule deny source any
规定 拒绝所有 IP。
rule permit source [网段] [通配符]
规定 允许 源网段 通过 。
display acl 2000
查看 ACL 表。
rule [步调] deny source 192.168.2.1 0.0.0.0
规定 该规则 步调为7 拒绝 源192.168.2.1
traffic-filter inbound acl 2000
在相应接口的出方向上调用acl2000
由于 扩展ACL 对流量进行了 精确匹配,故可以 表面误杀,因此,调用时,尽量 靠近源 IP。
acl [扩展编号]
创建 扩展 ACL 表,编号为 扩展范围。
注意:一个 出/入接口 只能接受 一张 ACL 表,如果想更换,必须得 重新规定 一个 ACL 编号。
首先要 进入扩展 ACL。
rule deny ip source [源IP] [通配符] destination [目标IP] [通配符]
规定 拒绝 一切 源 向 目标 范围内的 一切 IP行为。
---- 基于 TCP 23 端口
登陆设备 和 被登陆设备 之间 必须可达。
被登陆设备 必须 开启 telnet 设定。
aaa
开启 aaa 服务。
首先要 进入到 aaa 服务。
local-user [用户名] privilege level [等级] password cipher [密码]
创建一个具有 权限等级 和 密码 的用户。
首先要 进入到 aaa 服务。
local-user [用户名] service-type telnet
定义 用户 为 远程登录 所使用 。
user-interface vty [范围1] [范围2]
创建 范围区间内(闭区间) 个数的 虚拟通道;
范围 0~4 或者 16~20,例如 user-interface vty 0 4
表示 创建 0~4 共 5 个 虚拟通道。
首先要进入 虚拟通道。
authentication-mode aaa
规定 该通道 认证模式 为 服务 aaa。
首先要进入到 用户视图 (尖括号)。
telnet [网关IP]
将该 路由器 远程登陆 对应网关。
以下命令要在 扩展 ACL 的基础下 进行。
rule deny tcp source [源IP] [通配符] destination [目标IP] [通配符] destination-port eq 23
规定 拒绝 源IP 向 目标IP 的 TCP端口23 行为 。
telnet 命令 属于 TCP 23 。
rule deny icmp/tcp source [源IP] [通配符] destination [目标IP] [通配符]
规定 拒绝 源 IP 向 目标IP 的 icmp/tcp 行为;
ping 命令 属于 ICMP 协议,telnet 命令 属于 TCP 协议。
首先要进入到 ACL 进程。
undo rule [步调数]
可以通过 display this
命令 查看当前 ACL 配置。
PC1 可以 telnet R1,但是不能 telnet R2
PC1 可以 ping R2,但是不能 ping R1
PC2 所有要求 与 PC1 相反
先进行基础配置。
### R1 配置 ### #配置 用户 AAA [R1-aaa]local-user AAA privilege level 15 password cipher 123456 #定义 用户 AAA 为 远程登陆 使用 [R1-aaa]local-user AAA service-type telnet #创建 0~4 共 5 个 虚拟通道 [R1]user-interface vty 0 4 #规定 该通道 认证模式 为 服务 aaa [R1-ui-vty0-4]authentication-mode aaa #创建 扩展 ACL,编号为 3000 [R1]acl 3000 ======================================== ###PC1 ping 不通 R1,拒绝 R1 两个接口网关 #拒绝 IP 2.2 向 IP 1.1 的 icmp 行为(ping命令) [R1-acl-adv-3000]rule deny icmp source 192.168.2.2 0.0.0.0 destination 192.168.1.1 0.0.0.0 #拒绝 IP 2.2 向 IP 2.1 的 icmp 行为 [R1-acl-adv-3000]rule deny icmp source 192.168.2.2 0.0.0.0 destination 192.168.2.1 0.0.0.0 ###PC1 无法 telnet R2,拒绝 R2 一个接口网关 #拒绝 IP 2.2 向 IP 1.2 的 TCP端口23 行为(telnet命令) [R1-acl-adv-3000]rule deny tcp source 192.168.2.2 0.0.0.0 destination 192.168.1.2 0.0.0.0 destination-port eq 23 ======================================== ###PC2 ping 不通 R2,拒绝 R2 一个接口网关 #拒绝 IP 2.3 向 IP 1.2 的 icmp 行为 [R1-acl-adv-3000]rule deny icmp source 192.168.2.3 0.0.0.0 destination 192.168.1.2 0.0.0.0 ###PC2 无法 telnet R1,拒绝 R1 两个接口网关 #拒绝 IP 2.3 向 IP 1.1 的 TCP端口23 行为(telnet命令) [R1-acl-adv-3000]rule deny tcp source 192.168.2.3 0.0.0.0 destination 192.168.1.1 0.0.0.0 destination-port eq 23 #拒绝 IP 2.3 向 IP 2.1 的 TCP端口23 行为 [R1-acl-adv-3000]rule deny tcp source 192.168.2.3 0.0.0.0 destination 192.168.2.1 0.0.0.0 destination-port eq 23 ======================================== #ACL配置完成后,在需要的接口上调用 [R1-GigabitEthernet0/0/1]traffic-filter inbound acl 3000 ### R2 配置 ### #首先配置 R2 的 静态路由(网段 下一跳) [R2]ip route-static 192.168.2.0 24 192.168.1.1 #配置 用户 BBB [R2-aaa]local-user BBB privilege level 15 password cipher 123456 ##定义 用户 BBB 为 远程登陆 使用 [R2-aaa]local-user BBB service-type telnet #创建 0~4 共 5 个 虚拟通道 [R2]user-interface vty 0 4 #规定 该通道 认证模式 为 服务 aaa [R2-ui-vty0-4]authentication-mode aaa
首先进行 基础配置,PC1 网关为 2.2,PC2 为 2.3。
### PC1 配置 缺省路由 [PC1]ip route-static 0.0.0.0 0 192.168.2.1 #PC1 成功 ping通 R2,无法 ping 通 R1ping 192.168.1.1 #PC1 成功 登录 R1,无法 登录 R2 telnet 192.168.1.2 ### PC2 配置 缺省路由 [PC2]ip route-static 0.0.0.0 0 192.168.2.1 #PC2 测试结果 与 PC1 相反,只能 登录 R2 和 ping通 R1 ping 192.168.1.1 telnet 192.168.1.2
PC1:
PC2:
网络地址转换,在 边界路由器 上,进行 公有地址 和 私有地址 之间 的转换。
静态 NAT
动态 NAT
NAPT
端口映射
公有 IP:全球唯一,可以在互联网中使用 ---- 付费使用。
私有 IP:本地唯一,不可以在互联网使用 ---- 免费使用。
A 类 私有地址:10.0.0.0 ~ 10.255.255.255
B 类 私有地址:172.16.0.0 ~ 172.31.255.255
C 类 私有地址:192.168.0.0 ~ 192.168.255.255
注意:华为设备 的 NAT 配置 一律默认在 边界路由器的出接口 上配置。
通过配置在我们 私网边界路由器 上建立维护一张 静态地址映射表,这张表 反映了 公有IP 和 私有IP 之间一一对应的关系。
当 内网的数据包 来到 边界路由器 上,会先检查其 目的地 是不是 公网IP;如果是,就会根据 静态地址映射表 上的 映射关系 查找该 源IP 所对应的 公网IP。
如果有记录,则将 发往公网的数据包 的 源IP 改为 对应的公网IP。
首先要进入 边界路由器 的 出接口。
nat static global [公网IP] inside [私网IP]
将 公网IP 映射为 私网IP。
display nat static
查询 静态映射表。
动态NAT 和 静态NAT 最大的区别 在于 地址映射表的内容 是可以变化的,动态NAT 不再是一一对应的关系 而是 实现 多对多的转换。
为解决 动态NAT 同一时间 一个公网IP 只能对应 一个私网IP 的问题,在 边界路由器 上 再维护 一张 源端口号 和 地址映射关系表;
因为 端口号 的取值范围为 1~65535,即 65535个;所以 NAPT 同时支持通过 的数据包数量即为 65535 个,这就形成了 一对多 的NAPT;
在华为系统中,称这种 一对多 的 NAPT 叫做 EASY IP 。
当 上网需求 非常大时,一个 公网IP 就可能 不够使用,我们也可以使用 多个公网 IP。这样就形成了 65535 的 倍数增长,也就形成了 多对多 的 NAPT。
首先进入 标准 ACL 2000。
rule permit source [源IP] [通配符]
将 源IP 的 IP地址 全部定义为 感兴趣流量。
nat outbound 2000
在该接口的 出的方向 上 地址转化 所有 ACL 2000 内的流量。
nat address-group [编号] [范围1] [范围2]
创建 IP 范围区间 的 公网地址池。
首先进入 标准 ACL 2000。
rule permit source [网段IP] [通配符]
抓捕 内网流量。
进入外网接口。
nat outbound 2000 address-group 1
将 ACL 2000 定义的 感兴趣流量 交给 1号公网地址池 进行 nat转换。
加 no-pat:静态 多对多,相当于 多个一对一,一般用不上。
不加 no-pat:动态 多对多,相当于 多个一对多。
首先进入需要 映射的接口。
nat server protocol tcp global current-interface [端口号] inside [映射IP] [端口号]
将该接口 服务器 TCP 协议 的 端口 映射为 映射IP地址 的 端口 。
例:
nat server protocol tcp global current-interface [8080] inside [192.168.1.20] [80]
8080 为 供 映射使用 的 高端口。
将该接口 服务器 TCP 协议 的 8080 端口 映射为 192.168.1.20 这个 IP地址的 80 端口。
先进行基础配置。
#先配置 外网 到 R1 的 缺省路由 和 R2 的 静态 [R1]ip route-static 0.0.0.0 0 192.168.2.2 [R2]ip route-static 192.168.1.0 24 192.168.2.1 ### 此时 已经 全网通 ### #配置 静态 NAT,将 公网IP 12.1.1.3 映射给 内网IP 192.168.1.2 [R2-GigabitEthernet0/0/1]nat static global 12.1.1.3 inside 192.168.1.2
先将 静态 NAT 的配置 删除。
### 首先 进入 标准 ACL 2000,无需限制用不上 3000 [R2]acl 2000 #将 汇总的网段 范围内所有的 IP地址 (内网) 定义为 感兴趣流量 [R2-acl-basic-2000]rule permit source 192.168.0.0 0.0.255.255 #在 出接口的方向上 地址转化 所有的内网 ACL 2000流量 [R2-GigabitEthernet0/0/1]nat outbound 2000
先将 nat outbound 2000
命令行 删除。
#R2 创建 公网地址池,编号为 1,范围为 12.1.1.3 到 12.1.1.10 [R2]nat address-group 1 12.1.1.3 12.1.1.10 #将 ACL 2000 定义的 感兴趣流量 交给 公共地址池 1 进行 NAT 转换 [R2-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
通过在 PC ping通 外网IP 12.1.1.2,对 ISP 进行抓包,
可以发现 PC 的 源IP地址 被转化为 外网 IP地址。
新增一个 服务器,配置如下:
#将 该接口 服务器 TCP 协议 的 80 端口 映射给 IP地址 的 80 端口 ### 用接口的 80 端口 映射为 服务器 的 80 网页端口 [R2-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 80 inside 192.168.1.10 80 #检查 接口配置 [R2-GigabitEthernet0/0/1]display this
我们再给 交换机 连接一台 服务器 192.168.1.20。
#将该接口 服务器 TCP 协议 的 8080 端口 映射为 192.168.1.20 这个 IP地址的 80 网页端口 ### 8080 为 高端口 nat server protocol tcp global current-interface 8080 inside 192.168.1.20 80