2024年6月3日 路由与交换技术课程期末复习
题型与分数分配:
主要考点:
广域网、VPN、SLAAC和DHCPv6、FHRP、WLAN、Qos还有什么网络管理都不考
IP地址是第三层IP协议下的,用以标识网络内一台主机的标识,有IPv4和IPv6两个版本,以下内容仅对IPv4有效。
一个IP地址由4个字节,32位二进制位组成,8位为一组,比如192.168.0.0,对应的二进制位为1100 0000.1010 1000.0000 0000.0000 0000
。注意一个IP仅仅表示一个主机,这并不意味着IP和一台主机的绑定,也不意味着任意的两台主机的IP必定不同。
子网掩码是为了标识一个网络而产生的,它和IP地址一样由4个字节,32位二进制位组成。与IP地址不同的是,它由网络部和主机部组成,网络部一定为1,主机部一定为0。如1111 1111.1111 1111.0000 0000.0000 0000
这个地址,对应255.255.0.0,前两个255就是网络部,后面俩0就是主机部。它需要和IP地址组合使用,如果192.168.1.1和255.255.0.0一起使用,表示的含义就是192.168.0.0为一个网络,这个网络下的192.168.1.1地址为一个主机,并且192.168.x.x和该主机在同一网络下。其中网络部的1映射到ip地址上,就是表示IP地址的这些部分标识一个网络;主机部的0映射到ip地址上,表示ip地址的这些部分标识一个主机。
另外,192.168.1.1,255.255.0.0这个组合也可以缩写为192.168.1.1/16,这个“/16”意思就是子网掩码的1有多少位。
反掩码又叫通配符掩码,它的结构和子网掩码相同,但是内容和子网掩码完全相反。还是那个192.168.1.1/16的例子,它对应的反掩码即为0.0.255.255。它的作用是告诉路由器等设备需要匹配的地址范围。所有0所在的位置即为需要匹配的网络范围。
提示
反掩码并不是子网掩码完全相反的产物,因为子网掩码的所有1必须连续,而反掩码的所有0可以不连续。因为子网掩码所标定的网络地址必须连续,而反掩码仅仅是提示路由器等设备,为0的位必须匹配,为1的位可以不匹配,所以类似0.0.0.2(即0000 0000.0000 0000.0000 0000.0000 0010
)的反掩码是合法的。说反掩码并不是子网掩码完全相反的产物只是为了容易理解。
综上,一个主机的ip地址可以是192.168.0.1/24,它对应的ip,子网掩码和能匹配它的反掩码为:
ip:
1100 0000.1010 1000.0000 0000.0000 0001
,对应192.168.0.1
子网掩码:
1111 1111.1111 1111.1111 1111.0000 0000
,对应255.255.255.0
反掩码:
0000 0000.0000 0000.0000 0000.1111 1111
,对应0.0.0.255
ip地址+子网掩码能够标定一个网络范围,要访问这个网络内的主机可以直接通过ip地址找到,那么如果要访问该网络范围外的主机呢?顾名思义,网关是一个网络对外连接的出口,它是网络层的概念。假设一个地址为192.168.1.2/24的计算机想要ping192.168.2.2/24的计算机,那么它必须经过网关。因为要ping的目标明显不在自己这个网段里,只能去其他的子网中寻找,所以只能发给网关,由网关再转发给要ping的目标。一般情况下网关就是路由器的ip。
DNS(Domain Name System)域名系统,它可以说是一个协议,也可以说是一种服务。它的目的是避免人们强行去记没有具体含义的数字串,而是通过有具体含义的字符串去访问某一主机。比如说看202.206.68.1是看不出来对面的主机是什么服务,但是www.hebust.edu.cn
对人来说就很好理解。
域名是分层结构,以www.hebust.edu.cn
为例,有顶级域名(edu,通用顶级域;cn,国家/地区顶级域),主域名(hebust.edu.cn
),子域名(www.hebust.edu.cn
,另外子域名也可分级,示例中为二级域名,如果有个www.example.hebust.edu.cn
那就是三级域名)。对应地,DNS服务器也有根DNS服务器,顶级域名服务器,权威域名服务器和本地域名服务器。
DNS解析过程:用户会先向所在网络内的本地DNS服务器(一般由运营商提供)发送解析请求,如果本地DNS没见过这个域名,它会首先向顶级域名服务器(.com/.edu)发送解析请求,顶级域名服务器会把主域名对应的权威域名服务器地址返回给本地DNS服务器,本地DNS服务器再去向权威域名服务器(hebust.edu.com)发送解析请求,权威域名服务器会把该地址对应的IP返回给本地DNS服务器,本地DNS服务器再把解析结果返回给用户。
提示
CDN(Content Distribute Network,内容分发网络)是为了解决因距离,带宽,服务器性能带来的延迟而产生的技术,它的目标是尽可能在资源在转发、传输、链路抖动等情况下,保障信息的连贯性。
最简单的CDN网络由一个DNS服务器,一个主站和多个缓存服务器组成,用户在访问域名时,DNS服务器会将CDN全局负载均衡服务器返回给用户。CDN全局负载均衡服务器会根据用户的ip和请求URL,返回给用户一个离用户最近的区域负载均衡服务器的ip。区域负载均衡设备会根据用户的ip和请求URL以及缓存服务器的压力,为用户选择一个缓存服务器为用户进行服务。用户向缓存服务器发送请求,如果缓存服务器没有请求的资源,它会向它的上一级缓存服务器发送请求,直到请求到资源或者请求到达主站,以把资源缓存到该缓存服务器。
另外,如果主站更新了资源,可以通过URL推送向所有缓存服务器推送最新的资源。
(这不网络版本的分布式吗)
冲突域是物理层的概念,它所指的是物理上在一根网线上的所有设备,或者说同一物理网段上的所有节点的集合,或者说以太网上竞争同一带宽的节点集合,这三个概念都对。冲突域代表了冲突在其中发生并且传播的区域,这个区域被认为是共享的。
举例来说,假设一个集线器上连接了若干计算机,那么如果一个计算机向另一个计算机发送了消息,那么在发送消息这个极短的时间内,别的计算机就不能再发送消息,如果发送就会产生冲突(一根线不能同时传输多个消息),这个冲突会发生的区域即为冲突域。冲突域的本质是单一带宽资源的占用。冲突域的本质也决定了集线器和中继器不能划分冲突域,而交换机,路由器和网桥都可以划分冲突域。
广播域是网络层的概念,它所指的是所有能够接收相同广播消息的设备集合。集线器,中继器,交换机,网桥都不能划分广播域,路由器可以。VLAN也可以划分广播域。
相关信息
之后的所有内容中,“设备”特指网络设备,即交换机,路由器等等;“终端设备”特指用户能实际操作的各类设备,即主机,服务器等等。
VLAN(Virtual Local Area Network,虚拟局域网),它是一组逻辑上的设备和用户,它能够在基本不改变网络结构的情况下,更加灵活地划分/改变广播域。在上面的广播域概念里说过,只有路由器和VLAN能够划分广播域而VLAN成本低,管理轻松,配置灵活,还能提高网络的安全性。
注意VLAN仅对设备有效,终端设备是没有vlan这个概念的。
VLAN具体工作原理见路由与交换技术,(工作原理应该不考吧?)。
在管理网络的角度上,划分VLAN就是划分广播域,所以如何划分VLAN这个问题就等于如何在同一网络下划分广播域,即在设计网络时规定哪些终端设备能够互相通信。
在配置设备的角度上,新建一个VLAN的语句如下:
enable config t vlan 20 // 新建vlan id为20 name vlan20 // 为该vlan命名vlan20
在vlan中,接口有两种:access和trunk。access接口一般用于和终端设备连接,它只允许一种vlan通过;trunk一般用于和设备相连,能够允许多种vlan通过。为vlan配置接口语句如下:
enable config t interface FastEthernet0/1 // 开始对某一端口进行配置 switchport access vlan 20 // 设置该端口为access端口 能够通过的vlan id为20 switchport mode trunk // 设置该端口为trunk端口 switchport trunk allowed vlan add 20 // 新增该端口能够通过的vlan id为20 switchport trunk allowed vlan remove 20 // 删除该端口能够通过的vlan id为20
在同一vlan下,只要两个终端设备所接的端口允许通过的vlan一致即可互相通信(要是用了多个设备,则这些设备之间的互相连接的端口允许通过的vlan也得一致)。
一旦涉及路由,那么单纯的二层交换机就搞不定了,必须上路由器或者三层交换机。VLAN间路由有三种方式:
三层交换机配置vlan间路由语句示例如下:
enable config t vlan 10 exit vlan 20 exit interface g1/0/1 switchport mode trunk // 配置接口为trunk模式 switchport trunk allowed vlan all // trunk模式下 允许所有vlan通过 exit interface vlan 10 // 创建虚接口 ip address 192.168.10.10 255.255.255.0 // 配置虚接口的ip地址 exit interface vlan 20 // 创建虚接口 ip address 192.168.20.10 255.255.255.0 // 配置虚接口的ip地址 exit ip routing // 开启三层交换机的路由功能
按这个图就知道三层具体是什么三层了。它是介于交换机和路由器之间的设备,比路由器快,比交换机功能多,属于是交换机plus那么个角色。(主要是这个问题有点不知道老师想问什么)
STP(Spanning Tree Protocol,生成树协议)是一个用于在局域网内消除环路的协议。它通过将部分冗余链路强制为阻塞状态,其他链路处于转发状态,将环形网络结构修剪成无环路的树形网络结构,可实现消除环路。当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态,恢复恢复网络连通性。
提示
STP协议后来演变为RSTP(Rapid Spanning Tree Protocol,快速生成树协议)和MSTP(Multiple Spanning Tree Protocol),用以分别解决STP收敛慢和不支持按VLAN阻塞冗余链路两个问题。
STP协议在工作时,交换机会使用BPDU(Briage Protocol Data Unit,网桥协议数据单元)来互相通信。它会用于选举根桥,根端口,指定端口和替代端口。每个BPDU都会携带一个BID,用于标识发送该BPDU的交换机,BID中包含网桥优先级(一个0到61440的整数值,默认32678,该值越低,优先级越高),发送方交换机的mac地址和可选的扩展系统ID(这个是为了适配VLAN的)。
STP会按照以下步骤逐步形成一个树形结构:
一开始,所有交换机都认为自己是根桥,交换机之间会互相通信,交换BPDU,互相比较BID,确定最小BID的交换机作为根桥。此时根桥上的所有端口都是转发状态。
确定根桥后,STA(Spanning Tree Algorightm,生成树算法)就会确定广播域中从所有目的地到达根桥的最佳路径。把从一台交换机到根网桥的路径上沿途每个端口的开销加在一起,得到的路径信息称为内部根路径开销。该信息通过BPDU传递。
提示
这东西之所以叫根桥,是因为早期的交换机就是网桥。
选举根桥结束后,所有非根桥设备都会选择一个根端口。根端口是从内部根路径开销来看,最接近根桥的非根桥端口。
提示
如果选择过程中,有多个等开销的路径,那么交换机会先后根据相邻交换机的最低BID,链路另一侧端口的最低优先级和链路另一侧端口的最低端口ID这三个标准进行选择。
在每个交换机选择根端口结束之后,会继续选择指定端口。每两个交换机之间的链路,必定会有一个指定端口。指定端口的意义是,它接收的流量走的一定是去根桥的最佳路径。
指定端口有三种情况:根桥上的所有端口都是指定端口,这个参照含义很好理解;如果链路一端是根端口,那么另一端就是指定端口,这个参照根端口的含义也很好理解。如果是两台都不是根桥之间的链路,它的俩接口也不是根端口,那么去往根桥开销最低的交换机一侧的端口就是指定端口。
最后,既不是根端口,也不是指定端口的端口们就是替代端口。这些替代端口默认处于阻塞模式,不会转发流量。其他的端口负责转发流量。
被阻塞的替代端口,就是被打破的环路。
最后形成的结构示例如下:
按照第二个拓扑,对应的那棵树大致长这样:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种网络管理协议,它的目标是集中地对终端设备使用的ip进行管理,采用C/S模式,由DHCP服务端为所有终端设备动态地配置IP地址、子网掩码、默认网关地址,DNS地址和其他相关配置参数。既能方便网络管理者一次性管理所有ip,又能为网络使用者提供即插即用的网络服务。
DHCP协议使用UDP作为传输协议,默认情况下服务端使用68端口,客户端使用67端口。
DHCP工作原理如下:
sequenceDiagram
DHCP客户端->>(可能的)DHCP中继: 发现阶段:客户端广播发送dhcp discover报文
(可能的)DHCP中继->>DHCP服务端: 中继单播发送dhcp discover报文
DHCP服务端->>(可能的)DHCP中继: 提供阶段:服务器单播回应dhcp offer报文
(可能的)DHCP中继->>DHCP客户端: 中继回应给客户端dhcp offer报文
DHCP客户端->>(可能的)DHCP中继: 选择阶段:客户端广播发送dhcp request报文
(可能的)DHCP中继->>DHCP服务端: 中继单播发送dhcp request报文
DHCP服务端->>(可能的)DHCP中继: 确认阶段:服务器单播回应dhcp ack报文
(可能的)DHCP中继->>DHCP客户端: 中继回应给客户端dhcp ack报文
通常,DHCP服务器的地址池中会指定IP地址的租期,如果DHCP客户端发送的DHCP DISCOVER报文中携带了期望租期,服务器会将客户端请求的期望租期与其指定的租期进行比较,选择其中时间较短的租期分配给客户端。
为了避免ip地址冲突,DHCP服务器在发送DHCP OFFER报文前通过发送源地址为DHCP服务器IP地址、目的地址为预分配出去IP地址的ICMP ECHO REQUEST报文对分配的IP地址进行地址冲突探测。如果在指定的时间内没有收到应答报文,表示网络中没有客户端使用这个IP地址,可以分配给客户端;如果指定时间内收到应答报文,表示网络中已经存在使用此IP地址的客户端,则把此地址列为冲突地址,然后等待重新接收到DHCP DISCOVER报文。
提示
DHCP服务器在地址池中为客户端分配IP地址的顺序如下:
另外:
假设有个客户端,有个路由器作为DHCP服务端,中间有个路由器作为中继。
路由器端口分配ip示例:
enable config t interface g0/0/0 no shutdown // 启动该端口 ip address 192.168.1.1 255.255.255.0 // 分配ip
路由器作为DHCP服务端:
enable config t service dhcp // 启动DHCP服务 ip dhcp pool test // 创建一个DHCP地址池 名字为test network 192.168.2.0 255.255.255.0 // 指定该地址池的网段 default-router 192.168.2.1 // 默认网关 dns-server 192.168.1.1 // DNS服务器 lease 3 // 3天过期 该命令存疑 exit ip dhcp excluded-address 192.168.2.1 // 设置不被DHCP分配的地址 ip route 192.168.2.0 255.255.255.0 192.168.1.2 // 设置静态路由 在这个示例中是需要的 但不是配置DHCP的步骤
路由器作为DHCP中继:
enable config t // 略过配置端口ip interface g0/0/0 // 进入是网络出口的那个接口 一般情况下是一个网络的网关对应接口 ip helper-address 192.168.1.1 // 指定DHCP服务器地址
客户端:
提示
静态路由和动态路由,个人认为其实对应的就是网络中需要变化和不需要变化的部分。
静态路由的应用场景有这些:
至于动态路由就好说了,一次配置多处生效,自带扩展性,帮助网络管理者从在复杂的网络拓扑不停的写静态路由中解放出来。
enable config t ip route 192.168.2.0 255.255.255.0 192.168.1.2 // 设置静态路由
默认路由是指当路由器在路由表中找不到对应ip数据包的目的地址所对应的路由时,所选择的路由。它的配置方法如下:
enable config t ip route 0.0.0.0 0.0.0.0 192.168.1.1 // 配置静态路由 静态路由的目的网络必须是0.0.0.0/0
浮动静态路由是指同一个目的网络,在路由表中存在多个路由。每次对流量进行路由时,路由器会优先选择这些路由中的带宽最大的。如果这个路由出于种种原因没发过去,那么路由器会使用这些路由中带宽第二大的,以此类推。它的作用是为网络设置冗余,以保证网络不会发生中断。
浮动路由的配置就是对同一网络配置多条静态路由,当然可以通过指定不同的开销/距离来指定谁是主路由,谁是备用路由。
enable config t ip route 192.168.2.0 255.255.255.0 192.168.1.2 20 // 这个20就是开销/距离 ip route 192.168.2.0 255.255.255.0 192.168.3.1 40 // 第二条静态路由
do show ip route // do看情况加 在配置里面就要加do 如果仅仅是特权模式就不用加 这是查看路由器的路由表 enable show debug // 显示当前各个调试开关的状态 debug ip packet // debug模式 显示包括协议层转发的报文和从CPU发出的报文 如果是TCP或者UDP报文 会显示出报文的源端口号和目的端口号 show ip interface brief // 快速显示路由器上所有接口的状态 show cdn neighbors // 显示直连思科设备的列表 这个“直连”概念是针对物理层和数据链路层而言的
ping xxx.xxx.xxx.xxx tracert xxx.xxx.xxx.xxx // 在终端设备上 显示流量到达目的地过程中的路由信息
提示
在设备上,可以通过telnet进行类似ping的操作。
OSPF协议具体工作原理见路由与交换技术 记录2
Router ID,是路由器在一个OSPF自治系统内的唯一标识。在不手动配置的情况下,Router ID默认为路由器的所有逻辑接口中,最大的那个IP地址;如果没有逻辑接口,那么选取的范围变成路由器启用的所有物理接口。
Router ID除了能够标识路由器以外,后续还会参与DR(Designated Router,指定路由器)和BDR(Backup Designated Router,备用指定路由器)的选举。
点对点网络,仅适用于通信双方只会对对方网段发送消息,此时选举DR和BDR就是不必要的,可以在需要配置为点对点的接口上,修改模式为点对点网络,以减少资源消耗。
enable config t router ospf 10 network 192.168.1.0 0.0.0.255 area 0 exit interface g0/0 // 进入要配置点对点网络的接口 ip ospf network point-to-point // 修改网络模式 exit do show ip ospf interface // 查看ospf下的接口状态
enable config t router ospf 10 // 启用ospf进程 进程号为10 network 192.168.1.0 0.0.0.255 area 0 // 宣告192.168.1.0网络 后面跟着它对应的反掩码 之后指定区域编号
在ospf协议下,路由器会自动按照接口的配置带宽计算开销,开销公式为,B的单位为100Mbits/s。如果修改了链路的带宽,那么ospf计算的开销也会有所变化。对于每个接口,只能指定一种开销。接口的开销可以手动定义,自定义的开销将覆盖默认开销。
ACL(Access Control List,访问控制列表)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
ACL应用场景如下:
总而言之,ACL可以快速过滤报文,降低资源占用,提高安全性。
还是这图说的全点。
提示
注意这图有一些参数很可能跟着路由器不同而不同,比如这个log和remark参数我就输不出来。
enable config t access-list 1 deny 192.168.1.0 0.0.0.255 // acl编号为1 备注为test 拒绝了所有来自192.168.1.0网络的包 当有包匹配该acl时 会发送log
除了通过acl编号来标识acl之外,还可以通过命名acl来标识acl:
enable config t ip access-list standard test // 标准acl命名为test permit 192.168.2.0 0.0.0.255 // acl语句 与上面不同的是这里不用重复地输入access-list 1了
之后就是应用这些acl:
enable config t interface g0/0 ip access-group 1 in // 将编号为1的acl应用在该接口的入方向上 ip access-group test out // 将名字为test的acl应用在该接口的出方向上
提示
一个ACL内部,多个条件都有一个会自动从10开始的编号,可以通过这些编号来修改单独的ACL条件,而不用把整个ACL都no掉。
enable show access-lists // 查看编号 ip access-list standard 1 no 10 // 将编号为10的条件no掉 10 deny 192.168.4.0 0.0.0.255 // 重新配置这个10号条件
enable config t access-list 101 deny tcp 192.168.1.0 0.0.0.255 any eq 80 // acl编号为101 拒绝来自192.168.1.0网络的 去往任何网络的 源端口或者目的端口为80的 tcp数据包
命名扩展ACL就比标准ACL差一个词:
enable config t ip access-list extended test permit udp any 192.168.2.0 0.0.0.255 lt 443 // 允许来自任何网络的 去往192.168.2.0网络的 端口小于443的udp数据包通过
应用扩展ACL的语句和标准ACL一致。
提示
有这么一个常见的场景:内部可以访问外部的http网站,但是外部不允许访问内部的ip。这个场景对应的就是用扩展ACL来放行已建立的TCP流量:
enable config t access-list 101 permit tcp any 192.168.1.0 0.0.0.255 eq 80 established
要达到这个效果,只需要在扩展ACL上多一个established参数。该ACL会检查来往的TCP包的ACK和RST字段,如果有设置这两个字段,那么该数据包就是属于已有的连接的,可以放行。
不过这个效果我始终没搞出来,老师也没看出来哪有问题,主打一个怪异。
终端、VTY线路和AUX端口上配置登录密码
enable config t line vty 0 4 password test login
SSH+本地数据库登录
R1(config)# ip domain-name example.com R1(config)# crypto key generate rsa general-keys modulus 2048 R1(config)# username Admin secret Str0ng3rPa55w0rd R1(config)# ip ssh version 2 R1(config)# line vty 0 4 R1(config-line)# transport input ssh R1(config-line)# login local
端口安全:关闭未使用的端口;绑定端口和对方设备的MAC或者限制动态获取MAC地址的数量
缓解VLAN攻击:禁用端口上的自动中继协商(中继:trunk);将本征VLAN设置为VLAN 1以外的其他VLAN
缓解DHCP攻击:DHCP监听,配置可信端口,或者限制端口每秒能够接收的DHCP DISCOVER数据报数量
缓解ARP攻击:配置动态ARP检测
缓解STP攻击:PortFast(可让配置为接入端口或中继端口的接口直接从阻止状态变为转发状态)和BPDU(立即让接收到 BPDU 的端口进入errordisable状态)防护,它们的配置对象为连接终端设备的端口
静态NAT配置方法:
enable config t ip nat inside source static 192.168.1.1 202.206.64.11 // 静态NAT 在这里建立内部ip和外部ip的一对一关系 前者是内部地址 后者是外部地址 interface g0/0 ip address 192.168.1.2 255.255.255.0 ip nat inside // 配置该接口为内部方向 exit interface g0/1 ip address 202.206.64.12 255.255.255.0 ip nat outside // 配置该接口为外部方向 exit
动态NAT配置方法:
enable config t ip nat pool test-pool 192.168.1.1 192.168.1.254 netmask 255.255.255.0 // 配置NAT地址池 从192.168.1.1到192.168.1.254 一共255个地址 access-list 1 permit 192.168.1.0 0.0.0.255 // 配置一个标准acl 范围是要转换的地址 ip nat inside source list 1 pool test-pool // 将编号为1的acl绑定到名字为test-pool的nat地址池上 // 开始应用动态NAT 这一步和上面一样 interface g0/1 ip nat inside exit interface g0/0 ip nat outside exit
NAT地址转换表:
单地址PAT配置方法:
enable config t access-list 1 permit 192.168.1.0 0.0.0.255 // 和上面一样的acl ip nat inside source list 1 interface GigabitEthernet 0 overload // 设定nat 所有允许的ip地址被转换为g0/0的地址 overload标识这是pat interface g0/1 ip nat inside interface g0/0 ip nat outside
PAT地址池配置方法同动态NAT,但是nat那条语句多了一个overload。
交换机在工作过程中,会维护一个MAC表,该表存储了MAC地址和端口之间的映射关系。每当有流量进入交换机时:
交换机转发流量方式有两种:直接转发或者校验后再转发,一个速度够快,一个会避免发送错误流量。另外,校验后再转发存在缓冲区,可以将不同带宽的接口进行组合。
本文作者:御坂19327号
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!