传输层的协议主要有TCP和UDP,下面我们简单来介绍一下TCP和UDP:
TCP
访问控制列表
端口号:用来区分应用程序
源端口号:代表发送方使用的进程(随机)
目标端口:代表接收方使用的进程(固定)
序号:便于接收方重组(32bits)范围0--2的32次方减1
确认号:用于确认发送端的信息,序号+1
1.告诉发送方确认号之前的信息收到了;
2.下一次发送数据的编号;
窗口大小:代表本方可以接受的数据量(流量控制);
校验和:检查整个TCP段是否正确;
TCP的连接过程是通过三次握手来完成的
访问控制列表
SYN:建立连接的标志位;
FIN:断开连接的标志位;
RST:重新建立连接(重传);
ACK:确认有效标志方向;
就好比A和B打电话
A:喂?
B:喂?
A:说事情。
道理一样!
TCP断开连接则需要四步才能完成
访问控制列表
这里涉及到一个半关闭的概念:TCP一方(通常是客户端)可以终止发送数据,但仍然可以接受数据,称为半关闭。
常用的端口和协议:
访问控制列表
TCP在网络中的应用非常广泛,主要用在对数据传输可靠性要求高的环境中,比如:网页浏览,它使用的HTTP就是一栏TCP提高可靠性的。在使用TCP时,通信方对数据的可靠性要求高,因此降低一些数据传输率也是可以接受的。
UDP
访问控制列表
跟TCP比起来少了好多东西,大致包含的内容一样,有一个例外:
校验和:只检查头部,不检查内容数据
常用的端口和协议
访问控制列表
UDP协议在生活中的应用也非常广泛。因传输速度快备受青睐,比如:QQ、微信等社交软件
接下来我们主要讲解访问控制列表
它是在路由器上读取第三层和第四层的信息,如:源地址、目的地址、协议、源端口、目的端口等。
今天我们简单的介绍三种简单的ACL注意:(必须保证网络是通的才可以使用ACL)
ACL 的匹配顺序
访问控制列表
标准ACL
只根据源IP地址来拒绝数据包,访问控制列表号是1--99.
我们来通过一个小型的拓补图来介绍一下怎么使用标准的ACL
访问控制列表
接下来我们创建标准ACL列表
(个人建议,如果图中的两个路由器都可以管理的话,创建标准ACL创建在离目标地址近的位置)

r2(config)#access-list 1 deny host 192.168.1.10                  #创建ACL列表1拒绝主机192.168.1.10访问
r2(config)#access-list 1 deny 192.168.1.0 0.0.0.255            #创建ACL列表1拒绝192.168.1.0网段的所有主机访问
r2(config)#access-list 1 permit any                                       #创建ACL列表1允许所有主机访问
(注意ACL是从上往下检查的,找到即停)
r2(config)#int f0/1
r2(config-if)#ip access-group 1 out                                       #应用到r2路由器f0/1的出口
r2#show access-lists                                                             #查看创建的ACL列表 
Standard IP access list 1
    deny host 192.168.1.10
    deny 192.168.1.0 0.0.0.255
    permit any

接下来我们进行验证
访问控制列表
访问控制列表
如果ACL列表创建了好多条记录,如果想修改的话,删除其中一条就等于把这个ACL列表都删除了。

r2(config)#no  access-list 1 deny host 192.168.1.10 
r2#show access-lists 

扩展ACL
根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝数据包,访问控制列表号是100--199.
我们也通过一个简单的拓补来介绍一下扩展ACL
访问控制列表
接下来我们创建扩展ACL列表规则
(个人建议,如果图中的两个路由器都可以管理的话,创建扩展ACL创建在离源地址近的位置)

r1(config)#access-list 101 permit tcp host 192.168.1.10 host 192.168.3.20 eq 80
#允许主机192.168.1.10访问主机192.168.3.20的80端口 (eq表示等于)
r1(config)#access-list 101 deny icmp host 192.168.1.10 host 192.168.3.20 echo
#拒绝主机192.168.1.10拼通主机192.168.3.20
r1(config)#access-list 101 permit ip any any
#允许所有主机访问所有主机
r1(config)#int f0/0
r1(config-if)#ip access-group 101 in
#应用到r1路由器的f0/0接口的进方向

我们来验证效果
访问控制列表
访问控制列表
扩展ACL和标准ACL一样,如果ACL列表创建了好多条记录,如果想修改的话,删除其中一条就等于把这个ACL列表都删除了。

r2(config)#no access-list 101 permit tcp host 192.168.1.10 host 192.168.3.20 eq 80 
r2#show access-lists 

命名ACL
命名ACL可以用名代替表号,也可以在指定的位置添加后删除任意一条规则
我们也通过一个简单的拓补来介绍一下命名ACL
访问控制列表
接下来我们创建命名ACL规则

r1(config)#ip access-list extended benet
#创建命名扩展ACL列表(创建标准的命名ACL,选项standard),名为benet
r1(config-ext-nacl)#permit tcp host 192.168.1.10 host 192.168.3.20 eq 80
#允许主机192.168.1.10访问主机192.168.3.20的80端口
r1(config-ext-nacl)#permit tcp host 192.168.1.10 host 192.168.3.20 eq 21
#允许主机192.168.1.10访问主机192.168.3.20的21端口
r1(config-ext-nacl)#deny icmp host 192.168.1.10 host 192.168.3.20 echo
#拒绝主机192.168.1.10拼通主机192.168.3.20
r1(config-ext-nacl)#permit ip any any
#允许所有主机访问所有主机
r1(config)#int f0/0
r1(config-if)#ip access-group benet in
#把命名ACL应用到r1路由器f0/0的进接口方向
r1#show access-lists 
#查看一下ACL列表(注意每条列表规则前面都有编号)
Extended IP access list benet
    10 permit tcp host 192.168.1.10 host 192.168.3.20 eq www
    20 permit tcp host 192.168.1.10 host 192.168.3.20 eq ftp
    30 deny icmp host 192.168.1.10 host 192.168.3.20 echo
    40 permit ip any any

测试效果
访问控制列表
访问控制列表
接下来我们稍微修改一下ACL列表

r1(config)#ip access-list extended benet
#进入命名扩展ACL列表中
r1(config-ext-nacl)#no permit tcp host 192.168.1.10 host 192.168.3.20 eq 21
#删除规则(允许主机192.168.1.10访问主机192.168.3.20的21端口)
r1(config-ext-nacl)#5 permit icmp host 192.168.1.10 host 192.168.3.20 echo
#添加第5条规则允许主机192.168.1.10拼通主机192.168.3.20
r1#show access-lists 
#查看规则,发现多了第5条规则,第20条规则消失了
Extended IP access list benet
    5 permit icmp host 192.168.1.10 host 192.168.3.20 echo
    10 permit tcp host 192.168.1.10 host 192.168.3.20 eq www
    30 deny icmp host 192.168.1.10 host 192.168.3.20 echo
    40 permit ip any any

验证效果
访问控制列表
相比较而言,命名ACL比标准ACL和扩展ACL更灵活、更实用一些,现实环境中,结合实际情况使用
这上面都是介绍如何在路由器上应用ACL,下面我们简单介绍一下在交换机上如何应用ACL(还是上面的那个实验拓补)

Switch(config)#int vlan 1
Switch(config-if)#ip add 192.168.1.254 255.255.255.0
Switch(config-if)#no sh
#给交换机设置虚拟的IP地址
Switch(config)#username cisco pass 123
#创建本地用户名、密码
Switch(config)#access-list 101 deny tcp host 192.168.1.10 host 192.168.1.254 eq telnet
#创建号为101的ACL列表拒绝主机远程管理交换机
Switch(config)#access-list 101 permit ip any any
#创建号为101的ACL列表允许所有
Switch(config)#line vty 0 4
Switch(config-line)#login local
#本地验证
Switch(config-line)#access-class 101 in
#应用号为101的ACL列表(路由器是在接口模式里应用ACL,交换机虚接口不可以应用ACL,只能这样应用)

编写列表中常用的关键字

比如:host 192.168.1.1 和192.168.1.1 0.0.0.0 效果一样
                    any 和 0.0.0.0 255.255.255.255 效果一样

今天就先介绍这么多,愿我们共同进步,共同努力!