一、ACL
1.概述
- 访问控制列表Access Control List
- 是由一系列permit或deny语句组成的、有序规则的列表
- 是一个匹配工具,对报文进行匹配和区分
2.ACL应用
- 匹配流量
- 在traffic-filter中被调用
- 在NAT(Natwork Address Translation)中被调用
- 在路由策略中被调用
- 在防火墙的策略部署中被调用
- 其他
3.ACL的种类
-
编号2000-2999---基本ACL----依据数据包当中的源IP地址匹配数据
-
编号3000-3999---高级ACL----依据数据包当中源、目的IP,源、目的端口、协议号匹配数据
-
编号4000-4999---二层ACL,MAC、VLAN-id、802.1q
4.ACL配置
4.1步骤
建立acl表格
acl 2000 //建立acl表格
书写规则
rule 编号 处理动作 source ip地址 通配符
编号:规则的序号(不写默认从5开始, 5 10 15 20等,方便修改)
处理动作:permit允许或者deny拒绝
通配符:表示了地址的范围
由上而下一次匹配,一旦匹配立即停止匹配应用规则
应用规则:进入端口应用规则
4.2通配符掩码
0表示不可变,1表示可变,0和1可以穿插。
- 单个地址
192.168.1.1 通配符掩码为0(32位都不可变)
- 网段
192.168.1.0/24 通配符掩码为0.0.0.255(前24位主机位不可变,后8位主机位可以随意变)
- 表示192.168.1.1/24-192.168.1.7/24
0000 0001
0000 0010
0000 0011
0000 0100
0000 0101
0000 0110
0000 0111
----------------------有0有1为1,全0全1为0
0000 0111
前24位不变,后8位为0000 0111,也就是通配符掩码为0.0.0.7
- 表示192.168.1.0/24 全部偶数
0000 0000,0000 0010,0000 0100,0000 0110。。。。。。
二进制最后一位一定为0,0.0.0.1111 1110
255-1=254
通配符掩码为0.0.0.254
练习
Client1只能和Server2通信
AR1配置如下:
u t m
sys
sys R1
int g0/0/0
ip add 192.168.1.254 24
int g0/0/1
ip add 192.168.2.254 24
int g0/0/2
ip add 192.168.3.254 24
q
acl 2000
rule deny source 192.168.1.1 0 //默认编号5 拒绝 来自192.168.1.1 的流量
int g0/0/1
traffic-filter outbound acl 2000 //数据流向在outbound方向接口下调用acl 2000
int g0/0/1
undo traffic-filter outbound
q
acl 3000
rule deny tcp source 192.168.1.1 0 destination 192.168.2.1 0 destination-port eq www
//拒绝来源于192.168.1.1 去访问192.168.2.1的tcp的80端口
int g0/0/0
traffic-filter inbound acl 3000
总结
基本ACL只可以控制源ip,所以影响范围大,那么最好放在离目的近的端口,减少影响;
高级ACL可以控制的选项较多,影响较小,建议放在离出发地近的端口,在数据处理前减少性能的占用。
二、NAT
1.概述
NAT(网络地址转换,Network Address Translation)是一种在计算机网络中使用的技术,它允许多个设备共享一个公共IP地址。NAT 的主要目的是解决 IPv4 地址短缺的问题,同时还可以提供一定程度的网络安全。
2.工作原理
出去的时候:将源ip地址 由私网变成公网
回来的时候:将目的ip地址 由私网变成公网
3.NAT的种类
-
静态NAT
每个内部 IP 地址都永久映射到一个特定的公共 IP 地址。
以工作原理图为例,对企业出口路由器做静态NAT,使PC1能够访问运营商设备
对企业出口路由器的配置如下:
int g0/0/0
ip add 192.168.1.254 24
int g0/0/1
ip add 200.1.1.1 24
nat static enable
nat static global 200.1.1.1 inside 192.168.1.1 //将内部网络中的私有IP地址192.168.1.1静态映射到外部网络上的公有IP地址200.1.1.1
-
动态NAT
使用一个私有IP地址池和一个公有IP地址池,每次内部设备访问互联网时,动态NAT会从公有IP地址池中选择一个未使用的公有IP地址进行映射。
以工作原理图为例,对企业出口路由器做动态NAT,使PC1和PC2能够访问运营商设备
int g0/0/1
undo nat static global 200.1.1.1 inside 192.168.1.1
nat address-group 1 200.1.1.10 200.1.1.50 //定义一个NAT地址组,编号为1,包含从200.1.1.10到200.1.1.50的公有IP地址
nat outbound 2000 address-group 1 //对于匹配ACL 2000的内部网络流量,将其源IP地址转换为NAT地址组1中的一个可用公有IP地址
acl 2000
rule permit source 192.168.1.0 0.0.0.255 //允许源IP地址在192.168.1.0/24网段内的数据包通过
//如果不生效
<>save
reboot
display nat session all
-
easy-ip
它允许内部网络的多个设备共享一个公共 IP 地址访问外部网络。将ip地址和端口号一起转换。
工作过程:使用ACL列表匹配私网ip地址;将所有的私网地址映射成路由器当前接口的公网地址。
以工作原理图为例,对企业出口路由器做easy-ip,使PC1和PC2能够访问运营商设备
acl 2000
rule permit source 192.168.1.0 0.0.0.255
int g0/0/1
undo nat address-group 1 200.1.1.10 200.1.1.50
nat outbound 2000
-
nat-server
内网服务器的相应端口映射成路由器公网ip地址的相应端口
企业出口路由器到运营商设备做默认路由:ip route-static 0.0.0.0 0 200.1.1.2
对企业出口路由器的配置
int g0/0/0
ip add 192.168.1.254
int g0/0/1
ip address 200.1.1.1 255.255.255.0
nat server protocol tcp global current-interface www inside 192.168.1.100 www//当外部网络中的设备尝试通过当前接口的IP地址访问HTTP服务(端口80)时, 防火墙会将这些请求的源地址转换为内部网络中IP地址为192.168.1.100的设备, 并将请求的目标端口80映射到该内部设备的80端口。
nat static enable
把内网的192.168.1.100的80端口映射到外网的200.1.1.1的80端口上,访问200.1.1.1即访问的是192.168.1.100