网工面试题
持续更新中…
部分参考:https://blog.csdn.net/qq_65150735/article/details/139648347
前言
3W1H方法
开始先介绍一下这个是什么,再介绍应用场景,再介绍为什么选择这个,最后再回答怎么做这个
1 | What 什么 |
没有项目经验问题
- 因为刚毕业所以没有什么项目经验,为了弥补这一不足,我在网络上下载了很多网络搭建案例,然后将该案例通过模拟器配置出来,积累真实的项目经验。
- 通过在网络上观看一些博主发布的网络故障排查视频,能知道在现实网络中可能存在的常见问题以及排查思路
找工作
1 | 年初好找,6789难 |
基础网络知识
广播域/冲突域
- 广播域:广播报文所能传递的范围;如默认交换机所有端口为一个广播域、路由器每个端口都是一个广播域
- 冲突域:同一时间内只能由一台设备发送信息的范围;如交换机每个端口都是一个冲突域、集线器就是一个冲突域
ARP地址解析协议
- 通过IP地址找到对应的MAC地址,并将该IP地址与MAC地址信息记录在本地ARP映射表中,用于后续的二层封装
- 代理ARP:APR广播报文只在本子网内传播,代理ARP允许三层设备将ARP报文转发到其他子网内传播(三层设备回复自己的MAC地址给请求方)
- 免费ARP:在网络中广播自身的IP地址与MAC地址映射信息,用于检测地址冲突、更新ARP缓存
- ARP欺骗:由于APR协议缺乏认证机制,攻击者可以发送伪造的ARP请求来篡改ARP表,然后进行中间人攻击或流量劫持。常用的防护方式有静态ARP表、DHCP Snooping、IPS等
基本通信流程
MAC地址在同一个广播域传输过程中不会改变,在跨广播域传输时会改变(源目都变:源为出接口,目的为对端入接口);而IP地址传输过程中都不会改变(除了NAT)
- 检测对方IP地址是否在同一个网段,如果同网段则检测本地ARP表是否有目的IP地址的MAC地址信息,如果有则直接封装发送数据。没有则广播发送ARP请求,找到目的IP地址的MAC地址后再封装发送数据
- 如果双方IP地址不在同一个网段,查看本地ARP表是否有网关IP的MAC地址信息,如果有则直接封装发送数据给网关。没有则广播发送ARP请求,找到网关IP地址的MAC地址后再封装发送数据
- 网关收到数据后通过路由表进行查表转发
ARP表与MAC表的区别
ARP表 | MAC表 |
---|---|
存储IP地址到MAC地址的映射关系 | 存储MAC地址与交换机接口或VLAN的对应关系 |
辅助三层设备将IP地址解析为MAC地址 | 辅助二层设备进行报文的快速转发 |
主要用于三层网络通信(IP) | 主要用于二层网络通信(以太网) |
OSI七层模型
下层为上层提供服务
层次 | 描述 |
---|---|
应用层 | 各种应用协议 |
表示层 | 数据和信息的语法转换内码,数据压缩解压、加密解密 |
会话层 | 为通信双方指定通信方式,并创建、注销会话 |
传输层 | 提供可靠或不可靠的端到端连接 |
网络层 | 逻辑寻址、路由选择 |
数据链路层 | 将分组封装成帧,提供点到点的传输,差错控制 |
物理层 | 在媒介上传输比特流,提供机械和电器规约 |
TCP/IP四层模型
TCP层次 | OSI层次 | 网络协议 |
---|---|---|
应用层 | 会话层、表示层、应用层 | HTTP、FTP、SNMP、DNS等 |
传输层 | 传输层 | TCP、UDP |
网络层 | 网络层 | IP、ICMP、ARP、RARP、OSPF、IPSec、BGP、VRRP等 |
物理层 | 物理层、数据链路层 | PPP、PPTP、以太网等 |
TCP介绍
- 面向连接、可靠传输、流控和窗口机制、三次握手、四次挥手
- 固定头部20字节,可扩展到60字节
- 可靠性:序列号、确认应答、超时重传、窗口控制、拥塞机制
- 标志位:FIN结束、ACK确认、SYN同步、RST重置、URG紧急、RSH通知接收端立即将数据给用户进程 不要停留在缓存里
TCP三次握手机制
第一次握手ACK是0,其他都是1;seq最开始都是随机的,ack是对方的seq值+1
- 第一次握手:seq=x,SYN=1;发送方状态为SYN-SENT,接收方收到后状态为SYN-REVD
- 第二次握手:seq=y,ack=x+1,SYN=1,ACK=1;发送方状态为SYN-REVD,接收方收到后状态为Established
- 第三次握手:seq=x+1,ack=y+1,ACK=1;接收方收到后状态为Established
TCP四次挥手机制
前提:双方传输完所有数据后,互相发送确认收到,才开始断开连接(此处也会发送seq跟ack值,该值延续传输数据时的值)
- 第一次挥手表示断开:FIN=1,ACK=1
- 第二次挥手表示确认:ACK=1
- 第三次挥手表示断开:FIN=1,ACK=1
- 第四次挥手表示确认,ACK=1
UDP介绍
- 面向无连接、不可靠、头部长度8字节
TCP/UDP比较
TCP | UDP |
---|---|
面向连接、可靠传输 | 面向无连接、传输不可靠 |
适用需要高可靠的数据传输 | 适用实时性要求高,但对数据可靠性要求不高 |
效率低(需要建立连接、维护连接状态、拥塞控制等) | 效率高(无需建立连接、无需等待应答、无拥塞控制等) |
点到点通信 | 一对一、一对多、多对一、多对多通信 |
头部开销大(20字节) | 头部开销小(8字节) |
常见的TCP/UDP端口
TCP端口 | 描述 |
---|---|
20 | FTP-Data |
21 | FTP |
22 | SSH |
23 | Telnet |
25 | SMTP |
80/443 | HTTP/HTTPS |
110 | POP3 |
BGP | 179 |
UDP端口 | 描述 |
---|---|
53 | DNS |
67 | DHCP-Server |
68 | DHCP-Client |
123 | NTP |
161、162 | SNMP |
520 | RIP |
1812、1813 | Radius |
交换机路由器
二层交换机工作过程
- 数据转发依据:二层交换机转发数据主要依赖数据帧中的目的MAC地址
- MAC地址表的学习与更新:交换机通过接收到的数据帧中的源MAC地址来学习并更新其内部的MAC地址表,当交换机再次接收到目的MAC地址与表中记录相匹配的数据帧时,就能迅速的将其转发到相应端口
- MAC地址表老化:老化时间默认为300秒,交换机没有在老化时间内收到源地址为该MAC地址的数据帧,那么该MAC地址将从地址表中删除,避免过时或无效的MAC地址占用表项资源
- 广播与泛洪:当交换机收到一个目的MAC地址不在其MAC地址表中的数据帧时,就会泛洪(将数据帧从除接收端口外的所有端口转发出去),以便让网络中的其他设备能够接收到该数据帧并学习其源MAC地址。广播是一种特殊的泛洪,其他目的MAC地址为FF:FF:FF:FF:FF:FF,当交换机收到广播数据帧时,会将该数据帧转发到所有端口,以便让网络中的所有设备都能接收到
交换机MAC地址表被占满时,如何继续学习?
- 交换机通过老化机制删除长时间未使用的MAC地址条目来为新条目腾出空间
- 管理员可以配置清除表项、启用端口安全、升级硬件、优化网络设计等
三层交换机如何判断是二层转发还是三层转发?
- 二层转发:如果目标MAC地址在交换机的MAC地址表中,交换机直接进行二层转发,将数据帧发送到对应的物理接口
- 三层转发:如果目标MAC地址未知或目标IP地址需要跨越子网进行通信,交换机会根据路由表找到正确的下一跳地址,执行三层转发
二层交换机与三层交换机的区别
二层交换机 | 三层交换机 |
---|---|
工作在二层,通过MAC地址转发数据帧 | 工作在三层,通过MAC地址和IP地址转发数据帧 |
适用同一局域网内的设备通信,无法跨子网通信 | 适用不同子网或VLAN之间的通信,可以路由 |
常用于接入层,负责连接终端设备 | 常用于汇聚或核心层,负责数据的高速转发和管理 |
成本低,配置简单(常配置接口和VLAN) | 成本高,配置复杂(常配置路由协议和策略) |
性能较低,适用简单网络环境 | 性能较高,适用复杂网络环境 |
三层交换机和路由器的区别
三层交换机 | 路由器 |
---|---|
工作在二层和三层 | 工作在三层 |
基于MAC和IP地址转发 | 基于IP地址转发 |
通常用在内部网络 | 通常作为出口网关 |
转发速度快 | 转发速度较慢(需要查表和决策) |
成本低、复杂度低,适合中小网络 | 成本高、复杂度高,适合大型网络和WAN |
常用技术生成树、堆叠、链路聚合等 | 常用技术NAT、IPSec、PPPoE等 |
路由器的工作原理
- 接收数据包:接收到来自其他设备的数据包时,提取数据包中的目标IP地址
- 路由查找:在路由表中查找与目标IP匹配的记录(记录了数据包该被转发到下一个路由器或目标设备的IP地址)
- 转发决策:
- 如果路由器在路由表中找到了匹配的目的网络地址,它会确定数据包该通过哪个出接口进行转发
- 如果没有找到匹配的目标网络地址,路由器会查看是否存在缺省路由,如果有就将数据包转发到默认出口
- 如果以上都没有,则路由器会给源IP地址发送一个ICMP数据包,表明无法传递该数据包
- 转发数据包:一旦路由器做出转发决策,它会将数据包从入口转发到正确的出接口。在转发过程中路由器可能修改数据包的某些头部信息,如TTL值
- 反向路径:当目标设备响应时,路由器将根据目标设备的地址和已知的网络路径将响应数据包发送回源设备
一条路由包含的信息
- 目标网络地址:指示数据包应该被路由到的目的网络地址
- 子网掩码:用于确定目标网络地址的范围
- 下一跳:指示数据包应该经过哪个路由器或出接口才能到达目标网络
- 接口:数据包应该从哪个物理或逻辑接口转发出去,以便到达目标网络
- 度量值:衡量到达目标网络路径的优先级或开销值
- 标志:用于指示路由的状态或条件,如是否是静态路由、默认路由等
- 时效性:指示路由条目的有效期或生存时间,以便在适当的时候更新路由表
路由表查找匹配原则
- 最长掩码匹配原则:当数据包在路由表中匹配到多条掩码长度不同的路由时,路由器会优先选择掩码最长的路由条目进行转发
- 路由优先级:当存在多条掩码长度相同的路由时,路由器会根据路由的优先级选择最优先的进行转发
- 度量值:如果掩码跟优先级都一样,路由器会选择度量值(开销或距离)最小的路由进行转发
路由优先级排序
路由 | 优先级 |
---|---|
Direct 直连路由 | 0 |
OSPF 内部路由 | 10 |
ISIS | 15 |
Static静态路由 | 60 |
RIP | 100 |
OSPF ASE外部路由 | 150 |
OSPF NSSA | 150 |
EBGP | 255 |
IBGP | 255 |
VLAN
VLAN的定义
- VLAN即虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的通信技术
- 同一个VLAN内的主机之间可以直接通信,而VLAN间则不能直接通信,从而将广播报文限制在一个VLAN内,降低了网络拥堵和广播风暴的发生
VLAN的作用
- 提高网络安全性:通过逻辑分割网络,限制不同VLAN间的直接通信,从而增强网络的安全性
- 优化网络性能:减少广播域的范围,降低广播包对网络带宽的消耗,提高网络性能
- 简化网络管理:通过逻辑划分网络,可以更方便的应用ACL、Qos等网络服务,并简化对网络设备的配置和维护工作
- 提升网络灵活性:VLAN的划分不受物理位置的限制,可以根据用户需求进行灵活的网络分段和资源配置
Access接口对VLAN数据的处理
- Access接口一般用于接入终端,不携带VLAN标签(VID是报文中Tag下的VLAN ID,PVID是交换机接口分配的VLAN号)
- 一个Access接口只能属于一个VLAN,传输该VLAN的数据
- 交换机收到报文时:判断是否有VLAN Tag,没有就会打上PVID,有就会判断VID与PVID是否相同,相同则接收,不同则丢弃
- 交换机发送报文时:会剥离Tag后再发送
Trunk接口对VLAN数据的处理
- Trunk接口一般用于连接交换机或路由器之间的通信,携带VLAN标签以区分不同VLAN的数据
- 一个Trunk接口可以属于多个VLAN,可以传输多个VLAN的数据,默认PVID为1
- 交换机收到报文时:会判断是否带Tag标签,没有则打上PVID,有则判断是否允许VID通过,允许就放行,不允许就丢弃
- 交换机发送报文时:会判断VID与PVID是否相同,相同时就会剥离Tag标签后再发送,不同则保留Tag标签再发送(默认PVID为1)
Hybird接口对VLAN数据的处理
- Hybrid接口一般用于交换机之间的连接,以及连接用户设备,允许多个VLAN通过
- 混合类型,默认交换机的接口为hybrid类型,默认Tag打上VLAN 1且允许VLAN 1通过
- 交换机收到报文时:如果没有携带Tag就打上PVID,有携带就保留,再判断是否允许该VID通过(tagged和untagged列表),不允许则丢弃,允许则接收
- 交换机发送报文时:如果携带的Tag在tagged列表里则直接发送,如果在untagged列表里则剥离标签后再发送
交换机一边配置Access一边配置Trunk是否能通信
- 可以通信;如果两边都是VLAN 1的情况下正常配置就行,如果不是VLAN1则Trunk需要配置对应的PVID即可
- 以VLAN1为例,Access发送数据时携带空Tag,Trunk收到空Tag时打上PVID 1,Trunk默认允许vlan 1通过,所以能通,如果拒绝vlan 1通过则不能通信
- 反之Trunk向Access发送数据时,Trunk打上vid 1后因为vid与pvid一致,则剥离tag后发给Access,Access收到没有tag就打上tag,所以能通;
链路聚合
链路聚合的作用是什么?用在哪里?
- 增加带宽和吞吐量:将多个物理链路捆绑成一个逻辑链路,实现带宽的累加
- 提高冗余和可靠性:如果一个物理链路发生故障,流量可以自动切换到其他正常链路上
- 实现负载均衡:在多个物理链路之间均衡分配数据包,避免某一条链路负载过重
- 简化网络管理:管理员只需要配置和监控一个逻辑接口,而不是多个单独的物理接口
- 通常应用在数据中心、企业网络和服务提供商网络,以提升网络性能、可靠性和管理效率
静态聚合和动态聚合的区别
静态聚合 | 动态聚合 |
---|---|
手动配置聚合组号和端口成员,将多个物理接口直接加入聚合组 | 自动进行,依赖于网络设备之间协商和协议(如LACP) |
配置相对固定,不随网络条件变化而自动调整 | 可以根据网络条件的变化自动调整聚合组成员,提高灵活性 |
如果一个端口故障,可能需要手动干预来恢复服务 | 协议可以检测到链路故障并自动切换到备用链路,提高了可靠性 |
适用于配置相对固定,不需要频繁变动的场景,如小型企业或家庭网络 | 适用于需要高灵活性和自动管理的场景,尤其是大型网络环境中 |
生成树协议
二层环路的危害
- 广播风暴:一个广播帧可能会在环路中不断循环,导致网络上充斥大量的重复广播帧,使得网络带宽被无效占用
- MAC地址表震荡:交换机在学习MAC地址表时,可能会因为环路的存在而学习到错误的MAC地址信息或频繁的更新MAC地址表,导致MAC地址表不稳定
- 网络性能下降:由于广播风暴和多帧复制,网络整体性能会大幅下降,用户可能会遇到网络延迟、丢包、服务不可用等问题
怎么排查二层环路
- 检查交换机接口状态灯是否闪烁频繁,查看设备的CPU或内存利用率是否飙升,查看设备MAC地址是否漂移、用户访问网络卡顿等
- 在设备上运行
display interface brief | include up
,查看各端口的流量情况是否异常 - 在设备上运行
display mac-address flapping detection
查看是否有MAC地址漂移记录 - 如果是傻瓜交换机环路,只能一条一条拔网线来判断故障点
STP解决环路的原理
- 交换机之间运行STP协议后,互相发送BPDU报文用来发现网络中的其他交换机,并收集网络拓扑信息。每台交换机根据收到的网络拓扑信息通过 算法计算出网络生成树,在这个过程中需要选举出根桥、根端口、指定端口。通过将非根桥的非指定端口设置为阻塞状态,不参与数据的转发,从而消除环路。
- STP优点:防止二层环路、自动恢复网络
- STP缺点:收敛速度慢、不支持负载均衡、端口阻塞导致资源浪费、不支持VLAN感知
- 网络规模小且预算有限,对收敛时间要求不高,就选STP
STP选举选举规则
- 根桥选举:优先级和MAC地址最小的为根桥(桥ID小的),优先级默认32768,0最优;根桥为抢占模式
- 根端口选举:距离根桥开销最小的为根端口,开销一样则看本地或途径设备的桥ID(越小越优),桥ID比较不出来则比较自身的接口编号(越小越优)
- 指定端口选举:根桥的所有STP端口都是指定端口,根端口对端都是指定端口,阻塞端口对端也是指定端口,指定端口不会被阻塞
- 阻塞端口:优先级最大或MAC地址最大、或到达根桥开销最大,或本地或途径设备桥ID最大,或接口编号最大的(一级一级比较)
STP端口状态
- 端口UP或使用了STP,就会从Disabled状态进入到Blocking状态
- 端口被选举为根端口或指定端口,就会进入Listening状态
- 端口的Forward Delay定时器超时(30s),就会进入Learning/Forwarding状态
- 端口不再是根端口或指定端口时,就会进入Blicking状态
端口状态 | 描述 |
---|---|
Disabled | 端口为Down,不处理BPDU报文,不转发用户流量 |
Listening | 过渡状态,开始生成树计算,端口接收发送BPDU,不转发用户流量 |
Learning | 过渡状态,建立无环的MAC地址转发表,不转发用户流量 |
Forwarding | 端口接口发送BPDU,也转发用户流量,只有根端口、指定端口才能进入该状态 |
Blocking | 端口仅接收处理BPDU,不转发用户流量 |
STP中出现了两个根桥?
- 优先级配置错误:优先级设置相同,导致选举不明确
- 链路故障:传输STP BPDU报文的链路故障,BPDU报文无法正常传输
- 故障恢复:根桥故障后,新的根桥选举过程中导致暂时出现双根桥
- 设备不兼容:不同厂商,不同版本的网络设备运行STP可能存在不兼容
不同厂商设备能否正常运行STP
- 不行,虽然STP时公有协议,但是不同厂商对STP的BPDU报文字段做了各自的优化,所以不同厂商之间的交换机无法正常的运行STP协议
STP有几种BPDU报文
RSTP对快速生成树的改进
- 简化了端口状态,新增了两个 端口角色等
- 优点:在STP的基础上加速了收敛速度(P/A快速协商机制)
- 缺点:与STP一样,还是不能支持负载均衡
- 对网络快速收敛和可靠性要求比较高就使用RSTP
端口角色 | 描述 |
---|---|
Alternate替代端口 | 根端口的备份 |
Backup备份端口 | 指定端口的备份 |
STP端口状态 | RSTP端口状态 | 端口在拓扑中的角色 |
---|---|---|
Forwarding | Forwarding | 根端口、指定端口 |
Learning | Learning | 根端口、指定端口 |
Listening | Discarding | 根端口、指定端口 |
Blocking | Discarding | Alternate端口、Backup端口 |
Disabled | Discarding | Disable端口 |
RSTP有哪些收敛机制?
- 边缘端口机制:边缘端口可以直接进入转发状态,不需要延时,并且不会触发拓扑改变;收到BPDU报文后会变成非边缘端口,需要配置BPDU保护
- 根端口快速切换机制:如果网络中一个根端口失效,那么网络中最优的AP端口将会成为根端口,进入Forwarding状态
- 指定端口快速切换机制(P/A):如果网络中一个指定端口失效,那么网络中最优的BP端口将会成为指定端口,进入Forwarding状态
- 拓扑改变处理机制(TC):不再使用TCN,收敛速度更快(触发条件:非边缘端口转变为Forwarding状态时)
介绍P/A机制
- 作用:加快收敛时间,在RSTP中通过P/A机制可以将收敛时间缩短为几秒钟,无需等待计时器超时(STP需要30秒)
- Proposal提议:当交换机检测到拓扑发生变化后,会向它的邻居交换机发送一个Proposal消息,提议生成新的生成树拓扑
- Agreement确认:邻居收到Proposal后,如果同意该提议,则会恢复一个Agreement消息,确认新拓扑并立即进入转发状态
- Proposal消息包含提议交换机的:桥优先级和MAC地址、根路径成本、端口角色和状态
- Agreement消息包含接收交换机的:桥优先级和MAC地址、根路径成本、端口角色和状态
- 当交换机检测到网络拓扑发生变化(如链路故障或新链路加入,此处以新链路加入为例)时,两端的接口都会先成为指定端口,然后互相发送RST BPDU报文进行协商
- 当交换机接口收到对端发来的更优的RST BPDU报文后,停止发送RST BPDU报文。(因为对端更优先,本端会成为根端口)
- 更优的交换机接口进入Discarding状态,发送Proposal消息,提议生成新的生成树拓扑
- 邻居交换机收到Proposal消息后,会判断Proposal消息中的生成树信息是否比当前设备存储的信息更好(开销更小),如果更好则发送Agreement接受该提议,如果没有更好则拒绝该提议(不发送)
- 如果邻居交换机接受提议,就会根据收到Proposal消息中的生成树信息,将所有端口状态设为Discarding阻塞状态(除边缘端口外),只有发送Proposal消息的交换机接口处于Forwarding转发状态,防止环路。再发送Agreement消息
- 发送Proposal消息的交换机收到Agreement消息后,会将相应的端口状态设置为Forwarding转发状态,发送Agreement消息的交换机也会将相应端口状态设为为Forwarding转发状态(无需与普通STP一样等待计时器超时)
- 以上的P/A过程可以向下游继续传递,同步进行
RSTP拓扑收敛过程
- 根桥的选举:每台交换机在启动RSTP后,都会认为自己是根桥,所有端口都是指定端口,处于Discarding,并且会发送RST BPDU报文。交换机收到RST BPDU报文后,通过报文中的桥优先级和MAC地址选举出一个根桥,根桥的所有端口都是指定端口且Forwaring转发状态,其他非根桥交换机会阻塞(Discarding)所有非根端口,防止环路
- 检测拓扑变化:检测到拓扑发生变化的交换机会向所有指定端口发送Proposal消息,提议生成新的生成树拓扑。邻居交换机收到Proposal消息后,会判断Proposal消息中的根路径与当前存储的根路径成本,如果Proposal消息的根路径成本更低则回复一个Agreement消息用于确认,如果成本更高则不回复
- 同步其他端口:邻居交换机发送Agreement消息后会将自己除边缘接口外的接口设置为Discarding,防止环路
- 快速进入转发状态:当提议交换机收到Agreement消息后,会立即将相应的端口设置为Forwarding转发状态,不需要等待传统的计时器超时;接收交换机相应端口也会设置成Forwarding转发状态
- 处理其他拓扑变化:交换机在处理拓扑变化时,会将拓扑变化信息传播到整个网络中,其他交换机收到拓扑变化信息后,会重复上述的P/A机制,确保整个网络拓扑的一致性
- 最终状态:经过一系列的P/A机制的协商和端口同步后,网络最终达到一个新的稳定状态,所有交换机都处于正确的端口角色和状态,新的生成树拓扑形成,网络恢复正常通信
MSTP对RSTP的改进
- 由于STP和RSTP只能防止环路,对某些端口进行阻塞,会导致资源的浪费,且可能产生次优路径
- MSTP既可以做到快速收敛,又能为数据的转发提供冗余路径,在数据转发过程中实现VLAN数据的负载均衡
MSTP的特点
- MSTP将一个或多个VLAN映射到一个实例,再基于实例计算生成树,映射到同一个实例的VLAN共享一颗生成树,不同生成树之间彼此独立
- 同域三要素:相同域名、相同级别、VLAN与实例的映射
STP的保护机制(RSTP&MSTP)
- BPDU保护:正常情况下边缘端口不会收到BPDU报文,如果收到BPDU报文后交换机会将边缘端口变成非边缘端口,并重新计算生成树,导致网络震荡。开启BPDU保护后,边缘端口收到BPDU后,边缘端口将会被
error-down
,但边缘端口属性不变 - 根保护:如果合法根桥收到优先级更高的BPDU报文,会导致合法根桥失去根地位,导致网络震荡;使用在指定端口开启根保护后,如果该端口收到优先级更高的BPDU报文,则会进入Discarding状态,不再转发报文。等待一段时间后,如果没有收到更高优先级的BPDU报文,则端口会回到Forwarding状态。确保合法根桥不会因为网络问题而变动
- 环路保护:RSTP的根端口和其他阻塞端口状态通过上游设备发送的BPDU报文维持的,如果因为链路阻塞或单向链路故障,会导致交换机长期收不到BPDU报文,并重新选举端口,将根端口变成指定端口,将阻塞端口变成转发状态,导致环路发生;使用环路保护后,如果根端口和阻塞端口长时间收不到BPDU报文时,端口角色都会变成指定端口,并且保持Discarding状态,不转发数据,防止环路。直到链路恢复,端口重新收到BPDU报文进行协商,并将端口角色和状态恢复到正常状态。(环路保护只能在根端口或AP端口上配置)
- 防TC-BPDU攻击:交换机收到TC BPDU报文后会执行MAC表和ARP表的删除操作,如果交换机短时间内收到伪造TC BPDU报文,会导致频繁的删除MAC表和ARP表,给设备造成负担;使用防TC-BPDU攻击后,交换机在单位时间内处理TC BPDU的报文次数可配置,如果收到的TC BPDU报文大于配置的阈值,则需等定时器到期后设备只对其同一处理一次,避免频繁删除MAC地址表和ARP表
VRRP
介绍一下VRRP
- VRRP是虚拟网关冗余协议,组播地址为224.0.0.18
- 主要用作:把几台路由器联合成一台虚拟的路由设备,主路由器故障时能够快速切换至备路由器转发
- 应用场景:应用于需要保证网络设备高可靠性的场景,如企业网络、数据中心、ISP网络等
- Master路由器:在一个VRRP组中承担报文转发任务,在每个VRRP组中,只有Master路由器才会响应针对虚拟IP地址的ARP请求,恢复虚拟IP的MAC地址;Master路由器会周期性发送VRRP报文,通知同一个组的Backup路由器自己还活着
- Backup路由器:实时监听Master路由器发来的VRRP报文,准备随时接替Master路由器的工作,Backup路由器不处理针对虚拟IP的ARP请求
- 优先级:路由器通过优先级选举,默认优先级100,取值0~255,越大越优先;优先级相同时,则比较接口的IP地址大小,大的为Master路由器;如果直接配置255则直接为Master路由器(不能手动配置为0或255)
VRRP主备选举流程
- 初始创建VRRP的设备工作状态为Initialize初始状态,收到接口的UP信息后,如果设备的优先级小于255,则会先切换为Backup状态,等待Master_Down定时器超时后自动切换为Master状态;如果设备优先级为255,则直接成为Master
- 若优先级高的设备先启动,优先级低的设备后启动,则优先级高的设备会先进入Master状态;优先级低的收到优先级高的VRRP通告报文,比较优先级后,低的保持Backup状态
- 若优先级低的设备先启动,优先级高的设备后启动,则优先级低的先由Backup变成Master状态(Master_Down超时更早),优先级高的设备收到优先级低的设备的VRRP通告报文时,重新进行选举,将优先级高的设备切换为Master
- 当路由器的接口IP地址配置与VRRP虚拟IP地址一样,则无需等待任何超时器超时,直接切换为Master同时优先级自动成为255(无论任何情况,优先级都不能手动配置为255)
- 新的Master设备会发送免费ARP报文,携带虚拟MAC地址和虚拟IP地址,用于将用户的流量引到Master设备上
VRRP工作过程
- 多个路由器组成虚拟路由器组,选举主路由器;主路由器发送免费ARP报文刷新下游设备MAC地址表
- 主路由器管理一个虚拟IP地址,备用路由器监控主路由器的状态
- 如果主路由器故障,备用路由器接管虚拟IP地址
- 主路由器恢复后可能重新选举成主路由器(抢占机制)
VRRP心跳线的作用
- 监控状态:主路由器定期向备路由器发送VRRP报文(心跳包),报告其运行正常
- 故障检测:如果备路由器连续三个通告周期内没有收到主路由器的心跳报,则备路由器会认为主路由器故障
- 触发切换:一旦检测到主路由器故障后,备路由器将启动故障恢复机制,并可能接管成为新的主路由器,负责流量转发
- 避免冲突:防止同一个VRRP组出现双主现象(两个路由器都错误的认为自己是主路由器,并且同时转发数据)
- 使用心跳线是为防止VRRP协议报文经过的链路不稳定;因为心跳线是二层链路,需要允许相关的VLANIF接口报文通过,且为防止出现环路,需要运行生成树协议(保证Master设备为根桥)
监控上行链路方法
- 使用track命令联动上行链路,当上行链路出现故障时降低优先级,恢复时增加优先级
- 联动BFD监视上行链路,当上行链路出现故障时降低优先级,恢复时增加优先级
- 联动NQA监视上行链路,当上行链路出现故障时降低优先级,恢复时增加优先级
设备虚拟化/软堆叠技术有哪些?有何优势?
- VRRP:提高网络可靠性,简化管理,实现透明切换
- 堆叠:增加端口密度和带宽,简化网络接口,增强可靠性,便于管理
- M-LAG:提高链路可靠性和可用性,增强网络性能,简化配置
- 优势:资源优化、节约成本、配置简单、快速部署、高可用性、高可靠性
在一个VRRP组中出现两个Master,如何排查?
- 同一个VRRP组配置的虚拟IP地址不同
- 传输VRRP通告报文的链路(心跳线)故障,VRRP报文无法正常传输
- VRRP组存在不同版本的VRRP,版本之间不兼容
- 如果VRRP组配置认证,可能认证方式或密码不一样
- 设备故障或软件bug导致VRRP协议无法正常运行
- 网络中存在环路,VRRP通告报文被错误的复制和广播
DHCP
介绍一下DHCP
- DHCP动态主机配置协议是一种网络层协议,为计算机分配TCP/IP参数,包括IP地址、子网掩码、网关、DNS服务器等
- 使用DHCP为客户端分配IP地址信息可以方便网络管理、避免IP地址冲突、提高网络利用率等
- UDP端口:Server 67、Client 68
DHCP常见的六种报文
一共有八种报文
报文类型 | 描述 | 发送方式 |
---|---|---|
DHCP Discover | 客户端用来寻找DHCP服务器 | 广播 |
DHCP Offer | DHCP服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息 | 广播/单播 |
DHCP Request | 客户端请求配置确认,或续租 | 广播 |
DHCP ACK | 服务器对DHCP REQUEST报文的确认响应 | 单播 |
DHCP NAK | 服务器对DHCP REQUEST报文的拒绝响应 | 单播 |
DHCP Release | 客户端要释放地址时用来通知服务器 | 单播 |
DHCP获取IP地址过程
- 客户端通过广播的方式发送Discover报文来寻找DHCP服务器:封装源IP 0.0.0.0,目的IP 255.255.255.255
- DHCP服务器收到报文后以单播的形式发送DHCP Offer报文:封装目的IP地址为给客户端分配的IP地址(封装的IP地址不影响,思科广播、华为单播)
- 客户端收到Office报文后,以广播的形式发送Request报文来告诉DHCP服务器表明要用这套地址信息;如果收到多个DHCP服务器的Office报文,则使用第一个收到的地址信息,其他服务器收到后则回收给客户端分配的地址信息
- 服务器收到Request报文后单播回复ACK报文进行确认(思科广播、华为单播)
- 冲突检测:客户端在收到该Ack报文后,会广播发送免费ARP报文,探测该IP地址是否有重复,无应答则使用该地址;有应答则发送DHCP Decline报文给DHCP服务器,告知该IP地址冲突,然后重新发送Discover报文继续按流程申请
DHCP客户端续租IP过程
- 当租约到达50%时,客户端会自动以单播方式向服务器发送Request报文,请求更新IP地址租期,如果收到ACK报文,则说明续租成功
- 当租期到达87.5%时,没有收到服务器的应答消息时,客户端会自动以广播的形式向所有DHCP服务器发送Request报文,请求更新租约,如果收到服务器发送的ACK报文,则说明续租成功
- 如果租约到期后还是没有收到服务器的回应,则客户端停止使用该IP地址,重新发送Discover报文按流程申请新IP
- 如果在上述的50%和87.5%时收到服务器发送的NAK报文,拒绝客户端的续租,则客户端重新发送Discover报文按流程申请新IP
DHCP客户端获取不到IP地址的原因?
- DHCP服务器故障或未启动DHCP服务器
- DHCP服务器配置错误,如IP地址池配置错误
- DHCP服务器地址池IP已用尽
- 跨子网访问,服务器未覆盖的子网无法获取IP(没配置DHCP中继)
- 防火墙或安全策略阻止DHCP消息
DHCP客户端部分主机没有IP地址
- DHCP地址池用尽或配置错误
- 网络连接问题或DHCP中继配置错误
- IP地址冲突(多台设备尝试使用同一个IP地址)
- 客户端配置错误
为什么使用DHCP中继
- 跨子网分配:DHCP报文只能在一个子网内传播,使用中继后可以一台DHCP服务器为多个子网上的设备分配IP地址
- 减少服务器数量:集中管理几台DHCP服务器,而不必在每个子网上都部署一个服务器
- 优化网络流量:避免不必要的广播,只在需要时转发DHCP消息,减少网络负载
怎么防止内网私接路由器?
- 使用DHCP Snooping功能,将连接合法服务器的接口设置为DHCP trust信任接口,其他接口默认为非信任接口(配置在距离客户端最近的设备)
- 设备只接收从信任接口发来的DHCP报文,丢弃其他接口发来的DHCP报文,防止客户端获取到错误的IP地址信息
WLAN
胖AP的瘦AP的区别
https://blog.csdn.net/qq_40613029/article/details/106622528
AP上线的流程
无线认证的方式
Poral认证不跳转到认证界面是什么原因
RIP
距离矢量协议和链路状态协议的区别
OSPF
基本介绍
- OSPF开放式最短路径优先协议(链路状态协议),OSPF的信息被封装在IP数据报中,并使用IP协议类型89来标识
- DR/BDR组播地址224.0.0.6,其他设备组播地址224.0.0.5
- OSPF主要应用在中大型网络中
Router ID的作用及生成方式
作用:用于在一个自治系统中标识唯一台路由器;一台路由器如果要运行OSPF协议,则必须存在唯一的Router ID
生成:可以手工配置或自动生成,如果没有手工配置,则按下面顺序自动生成
- 选取所有Loopback接口中最大的IP地址作为Router ID
- 如果没有Loopback地址,则选取已经配置IP地址的接口中的最大IP地址作为Router ID(接口必须UP)
- 重新配置Router ID后,需要重启OSPF进程才能生效
5种报文
报文类型 | 作用 |
---|---|
Hello | 建立并维护邻居关系(Down、Init、2-way) |
DD | 选举主从关系、LSDB数据库内容摘要交互(Exstart、Exchange) |
LSR | 请求自己没有或比自己更新的链路状态信息(Loading) |
LSU | 回复链路状态更新信息(Loading) |
LSACK | 对LSU的确认(Full) |
7种状态
状态 | 描述 |
---|---|
Down | 初始状态,无连接或连接中断 |
Init | 初始化状态,刚收到Hello报文,但报文中没有自己的Router ID |
2-way | 邻居关系建立,Hello报文中存在自己的Router ID |
Exstart | 交换LSA初始化,使用空DD报文协商主从关系 |
Exchange | 交换LSA摘要,使用DD报文交换LSDB的链路状态信息摘要 |
Loading | 请求和交换详细LSA信息,LSR/LSU请求自己没有的LSA和更新对端没有的LSA |
Full | 邻接关系建立,已互相交互完LSDB |
路由传递/邻接建立过程
- 初始状态下路由器状态为Down,路由器开始以组播的形式发送Hello报文
- 当路由器收到任意Hello报文后,就会将状态变成Init,如果收到的Hello报文包含自己的Router ID,则状态变为2-way
- 如果不需要形成邻接关系,则保持该状态(如广播网络中的DR Other之间的关系),如果需要形成邻接关系,则将状态变成Exstart
- 在Exstart状态时,路由器之间发送空的DD报文,用于主从选举(Router ID大的为主),选举完成后进入Exchange状态
- 在Exchange状态时,路由器之间通过DD报文发送包含LSDB中LSA的摘要信息,然后进入Loading状态
- 在Loading状态时,通过发送LSR请求自己没有的LAS详细信息,通过发送LSU响应其他设备没有的LAS详细信息,收到LSU后就回复LSACK报文
- 在LSR都为空时,表示LSDB同步完毕,进入Full状态
DR/BDR的选举
采用DR/BDR建立邻接关系,可以降低需要维护的邻接关系的数量
- 在2-way状态之后、Exstart状态之前进行选举,初始所有设备都为DR-OTHER
- 通过收到的Hello报文中的接口优先级与Router ID来选举DR、BDR、DR-Other,优先级越大越优先(0表示不选举)
- 先选一个BDR,当网络上没优先级或RID比他大的设备时,就会变成DR,然后再选举一个BDR
- 当DR/BDR选举完后,如果出现一个比现在的DR/BDR优先级高的接口,也不会改变DR/BDR状态(先下手为强,非抢占机制)
- DR BDR DR-Other是Full状态,DR-Other之间是2-way状态。DR-Other之间不会交互LSA,只会把LSA发送给DR BDR
邻居建立失败
- 网络层配置错误:区域号错误、网络地址错误、子网掩码错误、Router ID冲突
- Hello消息不匹配:Hello实践、网络类型、认证等不匹配
- MTU不匹配:两端路由器配置的MTU大小不一致
连接问题:物理层链路断开、数据链路层接口类型不匹配等
设备之间出现单向链路故障,就会卡Init或2-way状态
- 如果OSPF链路之间的DR优先级都为0,则邻接建立失败,卡在2-way状态
- 发送的DD报文,两端MTU不一致就会卡Exstart状态
Full状态学习不到路由
- LSDB同步问题:LSDB不一致导致路由信息无法正确同步
- 网络类型不匹配:如P2P与Broadcast之间只会Full不会传递路由
- 资源限制:设备CPU或内存资源不足,无法处理OSPF的路由计算
- 安全策略阻止:防火墙或安全策略阻止了OSPF报文的传输
- 路由过滤:路由汇总或过滤规则配置不当,导致某些路由被错误的排除
OSPF的区域
单区域与多区域的优势如下:
- 每个区域独立存储LSDB,减小了LSDB内存和SPF计算开销
- LSA泛洪被限制在区域内,有效的控制了拓扑变化的影响范围
- 区域边界可以做路由汇总,减小路由表
- Stub区域不允许引入外部路由,NSSA区域可以引入外部路由
- 有Totally表示没有3类明细路由,无Totally表示有3类明细路由
- NSSA区域的ABR将7类LSA转为5类LSA通告给其他区域,7类只在NSSA区域传播
- 特殊区域的ABR下发一条缺省路由用于特殊区域能够访问其他区域
区域 | 描述 |
---|---|
骨干区域 | 核心区域,所有其他区域必须与其相连 12345 |
标准区域 | 非骨干区域,通过骨干区域交换路由信息 12345 |
Stub末梢区域 | 不接受外部路由信息,使用默认路由转发外部流量 123(3是明细+缺省) |
Totally Stub完全末梢区域 | 同上,且不接受区域间汇总路由 123(3是缺省) |
NSSA非纯末梢区域 | 能够引入外部路由的Stub区域,不接受外部路由信息 1237(3是明细+缺省) |
Totally NSSA完全非纯末梢区域 | 能够引入外部路由的Stub区域,不接受外部路由信息 1237(3是缺省) |
LSA的类型
- 4类LSA为5类LSA服务;出现只有5类没有4类则为单区域内引入,出现只有4类没有5类则为路由引入失败(不管是否引入成功,都会成为ASBR,为其他区域下发4类LSA)
类型 | 名称 | 产生者 | 描述 | 泛洪 |
---|---|---|---|---|
1 | Router路由LSA | OSPF设备 | 设备直连拓扑信息 | 接口所属区域 |
2 | Network网络LSA | DR | 广播网络与自己形成邻接关系的路由器 (包括自己) | 接口所属区域 |
3 | Network Summary网络汇总LSA | ABR | 区域内路由信息 | 区域间 |
4 | ASBR Summary汇总LSA | ABR | 到达ASBR的路由 | 除ASBR区域外的区域 |
5 | AS External外部LSA | ASBR | 到达OSPF域外的路由 | 所有区域 |
7 | NSSA非完全末梢区域LSA | ASBR | 到达OSPF域外的路由,ABR将7类转换为5类注入到区域0 | NSSA区域 |
OSPF防环机制
- 原始的网络拓扑:发起LSA的路由器将其直连拓扑信息描述在LSA中,其他路由器只扶着泛洪,区域内的所有路由器都能拿到完整的始发网络拓扑信息
- 无环的SPF算法:使用SPF算法计算路由,计算结果是一棵树,路由在树的叶子节点上,从根节点到叶子节点
- 无环的多区域拓扑结构:非骨干区域必须和骨干区域相连,非骨干区域之间的路由交换必须经过骨干区域,从而使得OSPF多区域网络成为一个以骨干区域为根的树结构,保证区域间无环
OSPF网络类型
- Point-to-Point 点到点类型
- Point-to-Multipoint 点到多点类型
- Broadcast 广播类型
- NBMA 非广播多路访问网络
- Virtual-link 虚连接
VLink虚连接注意事项
- 只能配置在非骨干区域,不能配置在骨干或特殊区域
- 配置时peer对方的Router ID
- 不能跨区域建立,如果区域0做了认证,则VLink也要做认证
OSPF与RIP对比
RIP | OSPF |
---|---|
距离矢量路由 | 链路状态路由协议 |
将路由表周期性发给相邻路由器,使用距离矢量算法计算路由 | 使用LSA发起和泛洪拓扑信息,使用SPF算法计算路由 |
路由度量值基于跳数 | 路由度量值基于带宽 |
最大15跳 | 没有跳数限制 |
可能存在环路 | SPF无路由自环算法 |
使用计时器收敛路由,收敛速度慢 | 使用LSA泛洪收敛,收敛速度快 |
用于小型网络,设备资源差 | 用于中大型网络,能划分多区域,路由汇总等 |
OSPF FA地址的作用
BGP
什么是BGP
- 边界网关协议BGP,是一种实现自治系统AS之间的路由可达,并选择最佳路由的高级路径矢量路由协议
- BGP能够对路由进行优选、避免路由环路、更高效的传递路由和维护大量路由信息
- 虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP,如在数据中心上行的Internet出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备一般采用静态路由代替BGP与外部网络通信
- BGP采用触发式更新,并非周期性更新;只传递路由信息,不会暴露AS内的拓扑信息
- BGP基于TCP 179,只要能够建立TCP连接就能建立BGP邻居,无需直连链路
- BGP不生产路由,只是路由的搬运工;路由通过引入IGP或直连路由等,通过network、import-route、汇总的方式
什么是IBGP和EBGP
- 运行在同一AS内的BGP称为IBGP
- 运行在不同AS内的BGP称为EBGP
IBGP为什么要使用环回口建立邻居
- 因为Loopback地址非常稳定,而且可以借助AS内的IBGP和冗余拓扑来保证可靠性
- 如果使用普通接口或直连链路建立IBGP邻居,当接口或链路故障,BGP会话也就断开了
BGP的报文及作用
报文名称 | 作用 | 发送时刻 |
---|---|---|
Open | 协商BGP对等体参数,建立对等体关系 | BGP TCP连接建立成功之后 |
Update | 发送BGP路由更新或撤销路由 | BGP对等体关系建立之后有路由需要发送或路由变化时向对等体发送该报文 |
Notification | 报告错误信息,中止对等体关系 | 当BGP在运行中发现错误时,发送该报文将错误通告给BGP对等体 |
Keepalive | 标志对等体建立,维持BGP对等体关系 | BGP路由器收到对端发送的Keepalive报文,将对等体状态设置为已建立,同时后续定期发送该报文用于保持连接 |
Route-refresh | 用于在改变路由策略后请求对等体重新发送路由信息,只支持路由刷新功能的BGP设备会发送和响应该报文 | 当路由策略发生改变时,触发请求对等体重新通告路由 |
BGP状态机
状态机 | 用途 |
---|---|
Idle | 开始准备TCP的连接并监视远程对等体,启用BGP时要准备足够的资源 |
Connect | 开始进行TCP连接,等待完成中,认证都是在TCP建立期间完成;如果TCP建立失败则进入Active状态,反复尝试连接(主动建立TCP连接) |
Active | TCP连接没建立成功,反复尝试TCP连接(被动等待TCP连接) |
OpenSent | TCP连接已经建立成功,开始发送Open包,Open包携带参数协商对等体的建立 |
OpenConfirm | 参数、能力特性协商成功,自己发送Keepalive报文,等待对方的Keepalive报文 |
Established | 已经收到对方的Keepalive报文,双方能力特性经协商发现一致,开始使用Update通告路由信息 |
BGP邻居建立过程
- BGP路由器初始状态是Idle,BGP进程检查是否有前往邻居的路由,如果没有则保持Idle状态,有则进入Connect状态
- 在Connect状态下建立TCP连接,如果连接成功则向对等体发送Open消息,并进入OpenSent状态;如果连接失败则进入Active状态,在Active状态下多次连接失败则回到Idle状态,成功则向对等体发送Open消息,并进入OpenSent状态
- 在OpenSent状态下,BGP等待对等体的Open消息,当Open报文参数有错误则向对等体发送Notification消息,并进入Idle状态;Open报文参数无误则发送keepalive消息,进入OpenConfirm状态
- 在OpenConfirm状态下,BGP进程等待对等体的Keepalive消息或Notification消息,如果收到Notification消息则进入Idle状态,如果收到Keepalive消息则进入Established状态
- 在Established状态下,BGP与对等体之间交互Update、Keepalive、Notification消息,互相传递路由等;如果收到正确的Update、Keepalive消息则说明对端运行正常,如果收到Notification消息则进入Idle状态,如果TCP连接断开则进入Idle状态
BGP路由的生成
- BGP本身不会生产路由,BGP将IGP路由表中的路由注入到BGP路由表中,并通过Update报文传递给BGP对等体
- BGP通过Network、import-route、聚合路由的方式获取本地路由;手动聚合 > 自动聚合 > Network > import-route
BGP路由通告原则
- 只发布最优且有效的路由
- 从EBGP获取到的路由,会发布给所有的对等体(EBGP、IBGP)
- IBGP水平分割:从IBGP对等体获取到的路由,不会再发给IBGP对等体,防止AS内部环路
BGP的防环机制
- 水平分割:从IBGP对等体学习到的路由不会再传递给其他IBGP对等体(使用全连接、RR、联盟可以传递)
- AS_Path:每条路由在传递过程中都会将经过的AS号记录到AS_Path中,当EBGP路由器收到的路由的AS_Path中包含自己的AS号,就会忽略,防止环路
- 反射器在反射路由时会将Cluster_ID添加到路由的Cluster_List中,当RR收到BGP路由的Cluster_List包含自己的Cluster_ID时,就会忽略,防止环路
- 反射器在反射路由时会添加Originator_ID属性,当对等体收到BGP路由的Originator_ID属性与自己的Router ID相同时,就会忽略,防止环路
RR反射器的作用及规则
作用:因为水平分割的原因,如果IBGP需要传递路由则需要建立全互联连接,导致大量的BGP会话,消耗网络资源和CPU资源;使用路由反射器可以打破水平分割的规则,AS内路由器只需要与RR建立邻居,不需要与其他IBGP路由器建立邻居,减少了BGP的会话数量
- 反射器从非客户端学习到的IBGP路由,会反射给所有客户端
- 反射器从客户端学习到的IBGP路由,会反射给所有非客户端、客户端(除了学到路由的客户端)
- 反射器学习到EBGP路由,会反射给所有非客户端、客户端
RR场景下的路由防环
- 通过路由属性Originator_ID(起源者ID)、Cluster_List(簇列表)来规避环路的出现
- RR反射路由时会增加Originator_ID属性,如果对等体收到的路由中的Originator_ID属性与自己的Router ID相同时,则忽略该路由;如果存在多个RR,则Originator ID属性由第一个RR创建,并且不会被后续的RR所更改;Originator_ID是路由产生者的Router ID,不是RR的Router ID
- RR反射路由时会增加RR的Cluster_ID到Cluster_List中,当RR收到一条路由中携带Cluster_List属性且该属性中包含RR的Cluster_ID时,则认为该路由存在环路,忽略该路由的更新
BGP邻居建立不成功的原因
- AS号或Peer邻居地址错误
- BGP的Router ID冲突
- BGP对等体两端是否都采用环回口建立邻居
- 物理上非直连的EBGP使用环回口建立邻居是否配置多跳
- 用于创建底层TCP的路由是否可达
- BGP对等体两端认证配置是否一致
- 是否配置了对等体的ignore
- 是否配置禁止TCP 179端口的策略
BGP邻居建立不起来的排查思路
- 首先检查对等体之间是否能通信,不能通则检测是否有到达对等体的路由
- 检查BGP的邻居配置是否正确,如对等体地址、AS号、EBGP多跳、认证信息等
- 再检查TCP连接是否正常,确保没有安全策略限制了TCP 179的流量
- 如果卡在Idle状态则检查配置或网络,如果卡在Active、Connect状态则检查TCP连接
常见BGP选路属性
- Preferred-Value(首选值):华为特有属性值,仅在本地有效,不会传递给任何对等体
- Local_Preference(本地优先级):只传递给IBGP对等体,在AS边界路由器上使用import方向的策略修改该属性值,也就是收到路由后,在本地为路由赋予该属性值,缺省为100
- AS_Path(AS路径):路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加本地AS号(最前面),路由给通告给IBGP对等体时,AS_Path不会改变,AS_Path中的AS数量越少越优先;AS_Path也被用在EBGP防环,当收到的Update报文中AS_Path包含自身AS号时,不接收该路由
- Origin(起源):标识了BGP路由的起源,根据路由被引入到BGP的方式不同,存在IGP、EGP、Incomplete三种类型的Origin;BGP按照 IBGP > EGP > Incomplete 的顺序优选
- MED(度量值):用于向外部对等体指出进入本AS的首选路径,主要用在影响AS之间的BGP选路;如果该BGP路由是本地始发的则携带MED 0发送给EBGP对等体,如果是从EBGP对等体学到的路由再传递给EBGP对等体时不携带MED值,在IBGP对等体之间传递时MED会被保留并传递;如果通过IGP学习到一条路由并通过network或import-route的方式引入到BGP,则产生的BGP路由继承IGP的metric值(静态或直连为0)
- Next_Hop(下一跳):用于指定到达目标网络的下一跳地址,当路由器学习到BGP路由后,需要对Next_Hop属性进行检查,该属性值必须在本地路由可达,否则该BGP路由不可用;从EBGP学习到的路由Next_Hop为EBGP对等体的更新源地址,当通告给IBGP对等体时,Next_Hop属性值不变,如果IBGP对等体不能到达Next_Hop属性值时,则该路由不可用,需要将该路由的下一跳指定为自己才可以使用该路由
- Cluster_List(反射器列表):RR反射器将路由反射给客户端时,会将自己的簇ID添加到Cluster_List中,用于防环
- Orginator_ID(起源者ID):路由的发起人,也就是第一个宣告该路由的路由器Router ID
BGP选路规则
- 丢弃下一跳不可达的路由
- 优选
Preferred-Value
属性值最大的路由,缺省0 - 优选
Local_Preference
属性值最大的路由,缺省100 - 本地始发的BGP路由优于其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合 > 自动聚合 > network > import-route >从对等体学习到的
- 优选AS_Path属性值最短的路由
- 优选Origin属性最优的路由;Origin属性值按照优先级高到低排序:IGP、EGP、Incomplete
- 优选MED属性值最小的路由,缺省0
- 优选从EBGP对等体学来的路由(虽然优先级一样,但是EBGP优于IBGP)
- 优选到Next_Hop的IGP度量值最小的路由
- 优选Cluster_List最短的路由
- 优选Router ID (Orginator_ID)最小的设备通告的路由
- 优选具有最小IP地址的对等体通告的路由
IBGP和EBGP传递路由有什么区别
- 从IBGP邻居学习到的路由向EBGP邻居传递时,会将下一跳改为自己;从EBGP邻居学习到的路由向IBGP邻居传递时,不会修改下一跳
- 传递给EBGP邻居的时候会添加自己的AS号,传递给IBGP邻居的时候不会添加自己的AS号
- EBGP邻居传递路由时剥离Local_Preference属性,IBGP邻居传递路由时会携带Local_Preference属性
- 从IBGP邻居收到的路由传递给EBGP邻居时MED默认剥离,从EBGP邻居传递路由给IBGP邻居时MED不变
- 向IBGP反射路由时保留Cluster-list和Orginator_ID属性,向EBGP邻居传递路由时剥离这两个属性
- EBGP通过AS_Path防环,IBGP通过水平分割等防环
路由控制
ACL的作用及分类
- 访问控制列表ACL是一种用于网络设备的访问控制技术,主要用于过滤和管理网络流量
- ACL五元组:源IP、目的IP、源端口、目的端口、协议类型
- 每个接口方向只能绑定一条ACL,两个方向都可以绑定(出/入)
- 华为设备的ACL默认动作为放行
分类 | 编号范围 | 参数 |
---|---|---|
基本ACL | 2000~2999 | 源IP地址等 |
高级ACL | 3000~3999 | 源IP、目的IP、源端口、目的端口等 |
二层ACL | 4000~1999 | 源MAC、目的MAC、以太帧协议类型等 |
ACL与IP-Prefix的区别
- ACL通常用于流量的匹配与控制,而IP-Prefix主要用于匹配路由条目(比ACL精准)
- 如ACL匹配24位掩码的路由时也会把0~24位的掩码匹配进去,而IP-Prefix可以精准的只匹配到24位掩码的路由
路由策略与策略路由的区别
- 策略路由用来指导数据包的转发路径或丢弃数据包,而不是依赖传统的基于目的IP地址查表转发
- 路由策略用来对路由信息进行过滤,属性设置等,通过对路由的操控影响报文的转发路径
NAT
NAT可以解决什么问题?
- 解决IP地址不足的问题
- 有静态NAT和动态NAT,静态NAT是一对一的将私网IP映射到公网IP地址,动态NAT是一对多将多个私网IP地址映射到公网IP中
NAT的传输过程?
- 私网数据包到达边界网关设备后,先查路由表转发至出接口,当出接口为NAT Outside接口时,匹配NAT ACL,匹配上permit条目的执行NAT,匹配上deny条目的不执行NAT
- 第一个包会触发NAT表项的形成,后续数据包查找NAT转换表,转换后的数据包发生至公网
解释SNAT和DNAT
- SNAT源网络地址转换:将内部网络的源地址转换为外部网络的公网地址,以便内部网络设备能够安全的访问外部网络,隐藏了内部网络的结构同时节约了公网IP地址(用户上网)
- DNAT目的网络地址转换:将外部网络的公共地址转换为内部网络中的私有IP地址,以便外部用户能够访问内部网络中的服务或资源,常用于实现服务器对外暴露和负载均衡(外部用户访问内部服务器)
NAT地址转换方式及应用场景
- 静态NAT:将一个私网IP地址固定的映射到一个公网IP地址上,适用于需要固定公网IP地址的场景,如服务器对外提供服务
- 动态NAT:将多个私网IP地址动态的映射到一个公网IP地址池中的公网IP地址中,适用于私有网络中有多台主机需要访问外部网络,但是公网IP地址有限的情况下(还是一对一,用完放回地址池)
- 网络地址端口转换(NAPT/PAT):允许多个私网IP地址和端口组合映射到一个公网IP地址的不同端口上,适用于私网中有多台主机需要同时访问外部网络的场景
PAT可以让多个内部用户使用一个公网地址同时上网,原理是什么?
- PAT通过端口号来标识每个内部连接,使得多个内部设备可以共享一个公网IP地址,因为它们连接在PAT设备上通过不同的端口号进行区分
- 在响应返回时,PAT设备根据传入的端口号将响应数据包路由回对应的内部设备
- PAR设备维护一个端口号池,用于分配给内部设备的出站连接。当内部设备启动一个新的连接时,PAT设备会为该链接分配一个未被使用过的端口号,并在转发时使用该端口号,这样可以确保每个内部连接都具有唯一的标识符,即使它们共享一个公网IP地址
- 外部网络无法直接访问内部设备,而是通过PAT设备进行转发,隐藏了内部网络的真实结构,增强了网络安全的目的
VPN
其他高频问题
内网PC上不了网的原因?