对网络一窍不通的小白在考试前的吐血复习
路由表的更新和维护对于路由器至关重要。主要有静态路由和动态路由两种方式:
- 静态路由通常手动配置,不能对网络的改变做出及时的反应,无法适应规模较大的网络。
- 动态路由能够自动维护、发现和更新路由信息,常见的动态路由协议有:
- 距离矢量路由选择协议(RIP)
- 链路状态路由选择协议(OSPF)
- 边界网关协议(BGP)等。
交换机是工作在数据链路层的网络连接设备。它的基本功能是在多个计算机或者网段之间交换数据。并且基于 MAC 地址的数据转发。
- reset
- display
NAT 配置命令:
NAT 原理:
网络转换 NAT 技术主要是为了解决全球 IPv4 地址短缺的问题。
使用 NAT 技术可以将多个内部专用 IP 地址映射为少数几个甚至一个公网 IP 地址,用来减少公网 IP 地址的使用。
NAT 技术主要包括三种方式:
- 静态 NAT:内部网络中的每个主机都被永久映射成外部网络中的某个外网 IP 的地址。
- 动态地址 NAT:定义一系列的外网 IP 地址,采用动态分配的方法映射到内部网络。
- 网络地址与端口转换 NAPT:把内部地址映射到外部网络的一个 IP 地址的不同端口上。
数据链路层位于 OSI 参考模型的第二层,在物理层基础上为网络层提供服务,为物理链路上提供可靠的数据传输。
交换机是工作在数据链路层的网络设备,局域网的数据链路层协议有以太网、令牌环网等,广域网的数据链路层协议有 PPP、HDLC、Frame Relay 等。
解决方法一:STP
解决方法二:路由聚合
VLAN 端口:
- Access(Untagged)端口:只能属于1个VLAN,从该端口出去的数据包不带TAG,一般接主机或路由器;
- trunk端口:可以属于多个VLAN,可以接收和发送带多种VLAN标签的报文,一般用于交换机之间连接的端口;
- hybrid端口:可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于接用户的计算机。属于Access和trunk的混合模式。
- Hybrid端口和trunk端口的不同之处在于hybrid端口可以允许多个VLAN的报文不打标签,而trunk端口只允许缺省VLAN的报文不打标签
ICMP(Internet Control Message Protocol)ICMP是一个网络层协议,是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议,Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。
ICMP主要有两种功能:
- Ping:一般用于勘测到达目的网络的连通性
- Tracert:用于确定ip数据包访问目标所采取的路径
Ping
- 首先ping命令会先发送一个 ICMP Echo Request(请求包)给对端
- 对端接收到之后, 会返回一个 ICMP Echo Reply(应答包)
- 若没有返回,就是超时了,会认为指定的网络地址不存在。
Tracert
- 首先tracert送出3个TTL是1的IP UDP数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1,此时TTL等于0.
- 所以该路由器会将此数据包丢掉,并送回一个 ICMP time exceeded 消息(TTL超时消息),里面包括发IP包的源地址,IP包的所有内容及路由器的IP地址。
- tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器…以此类推
- 当数据包到达目的地后,该主机则不会送回 ICMP time exceeded消息
- 一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到 ICMP port unreachable 消息,故可判断到达目的地。
路由协议:
- 静态路由:由网络管理员在路由器上手工添加路由信息以实现路由目的。
- 动态路由:根据网络结构或流量的变化,路由协议会自动调整路由信息以实现路由。
- 缺省路由(也叫默认路由):Internet上大约99.99%的路由器上都存在一条缺省路由!缺省路由并不一定都是手工配置的静态路由,有时也可以由动态路由协议产生。
路由配置:
协议概述
路由协议:
- 按寻径算法划分:
- 矢量距离协议-RIP,BGP
- 链路状态协议-OSPF,IS-IS
- 按网络范围划分:
- 内部网关协议-RIP,OSPF,IS-IS
- 外部网关协议-EGP,BGP
RIP 协议的特点:周期性广播发送本路由器的所有RIP路由信息,有一定的盲目性,占用带宽;且每条路由的生成者不明确,易形成环路;协议在设计原理上存在缺陷,其优先级为100,较低;范围有限(15跳),只适用于小型网络;不需要维护邻居关系,协议实现简单;距离矢量算法的典型应用,开销小,效率较高,在特定环境下仍很实用。
OSPF 协议是基于链路状态算法的内部网关协议,是开放最短路由优先的缩写(Open Shortest Path First)。
OSPF 协议:
- 每个路由器生成自己周边的链路状态信息(明确指出其生成者);
- 相邻路由器转发获得的链路状态信息,但不改变其生成者;
- 每个路由器关于整个网络都有一个完整而准确的链路状态数据库,用最短路径优先算法计算路由。
OSPF 核心思想(论述):每一台路由器将其周边的链路状态(包括接口的直连网段,相连的路由器等信息)描述起来,发送给网络中相邻的路由器。经过一段时间的链路状态信息交互,每台路由器都保存了一个链路状态数据库,该数据库是整个网络完整的链路状态描述。在此基础上,应用最短路径优先算法就可以计算出路由。
- 自治系统(Autonomy System,AS):同一组选路策略的路由器的集合。系统内部可以自主采用路由选择协议,系统间使用 BGP 协议。
- 区域(Area):一个路由器的集合,相同区域有着相同的拓扑结构数据库。
- 区域 ID(Router ID):一个32-bit的无符号整数,它是一台路由器的唯一标识,在整个自治系统内唯一。如果一台路由器的 Router ID 在运行中改变,则必须重启OSPF协议或重启路由器才能使新的 Router ID 生效。
邻居和邻接(Neighbors & Adjacencies):OSPF 路由器启动后,会向外发送 Hello 报文,收到 Hello 报文的 OSPF 路由器检查双方参数一致就会形成邻居关系。而只有当双方成功交换链路状态通告信息,才能形成邻接关系。
基本配置
- 配置 Router ID
- 启动 OSPF
- 划分区域,设置 Area
- 指定网段使能 OSPF
基本配置:
引入直连路由:
引入静态路由:
其他命令:
OSPF 的五种协议报文:
- Hello 报文:周期性地发送给本路由器的邻居,以发现及维持邻居关系,并选举DR,BDR。
- DD 报文(Database Description Packet,数据库描述报文):用来交换邻居路由器之间链路状态数据库(Link State Database,LSDB)的摘要信息,开始时,两个邻居路由器相互发送空DD报文来确定 Master/Slave 关系,
- LSR 报文(Link State Request Packet,链路状态请求报文):两台路由器相互交换了 DD 报文之后,通过比较确定缺少和需要更新的 LSA,并发送 LSR 报文向对方请求所需的 LSA。
- LSU 报文(Link State Update Packet,链路状态更新报文):向发送 LSR 报文的路由器发送其所需要的 LSA。
- LSAck 报文(Link State Acknowledge Packet,链路状态确认报文):对接收到的 LSU 报文进行确认。
LSA( Link-State Advertisement,链路状态广播)是链路状态协议使用的一个分组,它包括有关邻居和链路成本的信息。LSAs 被路由器接收用于维护它们的 RIB(路由表)
OSPF 协议的状态机和报文交互过程:
获取 OSPF debug 信息:
问题:OSPF 协议中 Router ID 的作用是什么,它是如何产生的:
Router ID 通常要求人为指定,如果没有指定,路由器会自动选择一个接口的 IP 地址为 Router ID。
问题:DD 主从关系的协商过程和协商结果,其隐含的确认机制:
- 路由器认为自己是 Master,发送 DD 报文并指定 MS=1,Master 的选举与 Priority 无关。
- 选取 Router ID 最大的路由器作为 Master。
- 隐含确认机制:Master 定义序列号 Seq,每发送一个新 DD 报文,Seq+1,Salve 每次发送 DD 报文,携带最近接受到的一个 Master 发送的 DD 报文中的 Seq。
- 每个报文都有超时重传,加上隐含的确认机制,保证了传输是可靠的。
问题:LSA 摘要信息交互过程,其隐含的可靠传输机制如何起作用:
确认与可靠传输机制起作用的方式:Slave 通过重复 Master 的序列号确认已收到的 Master 报文,Master 通过将序列号加1来确认已收到 Slave 的报文。
问题:DR 和 BDR 的选举过程:
只有在广播或 NBMA(non-broadcast multiple access,非广播多路访问网络)类型接口才会选举 DR,在点到点或点到多点类型的接口上不需要选举 DR。DR 的生成是为了减少该网段中路由器之间交换报文的次数。
- 所有 Priority>0(默认是 1)的 OSPF 路由器认为自己是 DR。
- Priority 最大,相等时 Router ID 最大的路由器为 DR。次优的作为 BDR。
- 每台路由器相互发送 Hello 报文,写入自己选出的 DR,并共同选举出 DR。
区域划分的原因:
- 网络规模过大,导致单一区域的LSDB过于庞大。
- LSDB过于庞大,SPF算法运行的复杂度增加,CPU负担重。
- LSDB同步需要时间变长,网络动荡加剧,占用网络带宽,降低路由准确率。
OSPF 协议通过将自治系统划分成不同的区域:减少 LSA 的数量,缩小网络变化波及的范围。
路由器的类型:
- IAR(Internal Area Router)区域内路由器:所有接口属于一个区域,只有一个 LSA 和 LSDB。
- ABR(Area Border Router)区域边界路由器:接口属于两个以上区域,为所属的每个区域生成一个 LSA,保存一个 LSDB。
- ASBR(AS Boundary Router)自治系统边界路由器:引入其它路由协议的路由器,包括静态路由和直连路由,不一定在AS的边界。
- BBR(BackBone Router)骨干路由器:至少有一个接口属于骨干区域(Area=0)。
前五类 LSA:
- Router LSA(Type=1):本路由器运行 OSPF 的接口的连接状况和花费信息,每个区域一条 LSA,传递范围是整个区域。
- Network LSA(Type=2):由 DR 生成,Router LSA 只描述了到 DR 的连接,而 DR 通过 Network LSA 来描述本网段中所有已经同其建立了邻接关系的路由器(Router ID),传递范围是整个区域。
- Network Summary LSA(Type=3):由 ABR 生成,ABR 完成一个区域内的路由计算之后,查询路由表,将每一条 OSPF 路由封装成 Network Summary LSA 发送到相邻区域,传递范围是该 LSA 生成区域之外的其他区域。
- ASBR Summary LSA(Type=4):由 ABR 生成,描述本区域内部目的地址到 ASBR 的路由,传递范围是该 LSA 生成区域之外的其他区域。
- AS External LSA(Type=5):由 ASBR 生成,描述了自治系统外部路由的信息,与区域无关,传递范围是整个自治系统。
显示 OSPF LSA:
- VLAN 和 IP 配置
- OSPF 配置
- 静态+引入方法实现路由备份
协议概述
自治系统:Internet中相对独立的系统称为AS(自治系统),每个AS都由Internet注册机构分配一个唯一的数来表示。AS是一个拥有统一的策略,在统一的管理下运行的一组路由器。通过不同的编号来区分不同的自治系统。
BGP(Border Gateway Protocol)描述:BGP 是一种自治系统间的动态路由协议,基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有 AS 号序列属性的路径可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的路由策略。
自治系统内部的路由协议(IGP)主要是发现和计算路由,自治系统之间的外部路由协议(EGP)主要是控制路由的传播和选择最好的路由。(BGP 是 EGP,OSPF 和 RIP 是 IGP)
BGP 的工作机制:BGP 运行在一个特定的路由器上。系统启动时通过发送整个 BGP 路由表交换路由信息,之后为了更新路由表只交换更新报文(Update),并在系统运行过程中,通过 KEEP ALIVE 报文来检测连接是否正常。EBGP 对等体是不同自治系统交换 BGP 报文的对等体,IBGP 对等体是同一个自治系统交换 BGP 报文的对等体。
- BGP 协议仅仅在 BGP 对等体(邻居)之间管理和维护它所得到的路由。
- BGP 是 AS 之间的路由协议,AS 内部的边界路由器之间也要建立邻居关系。
BGP 报文的四种类型:
- Open:对版本,BGP 标识符等信息进行协商。
- KeepAlive:BGP 对等体间周期性发送,以确保连接有效。
- Update:携带路由更新信息,包括撤销路由信息和可达路由信息及其路径属性。
- Notification:BGP 检测到差错时关闭同对等体的连接。
基本配置
- Idle 状态:idle 是 BGP 连接的第一个状态,BGP等待一个启动事件。启动事件出现后,BGP 初始化资源/复位连接重试计数器,发起一条 TCP 连接,同时转入 CONNNECT 状态。
- Connect 状态:BGP 发起第一个 TCP 连接,如果超时就重新发起 TCP 连接,并继续保持 connect 状态,如果连接成功就转入 open-sent 状态,失败则转入 Active 状态。
- Active 状态:BGP 总是试图建立 TCP 连接,如果重试计时器超时,就退回到 connect 状态,若连接成功就转入 open-sent 状态,如果失败就保持 Active 状态,并继续发起 TCP 连接。
- Open-sent状态:TCP 连接已经建立,BGP 也已经发送了一个 open 消息,等待对等体发送 open 消息。检查收到的 open 消息,如果有错就发送出错通知并退回到 idle 状态,如果没错就开始发送 keepalive 消息,并复位 keepalive 计时器,开始计时,同时转入 open-confirm 状态。
- Open-confirm 状态:BGP 等待一个 keepalive 消息,同时复位保持计时器,如果收到了一个 keepalive 消息就转入 established 阶段,建立 peer 关系。
- Establish 状态:对等体关系已建立,对等体之间交换 update 消息,同时复位保持计时器。
获取 BGP debug 信息:
- Origin 起点:路径信息的来源,IGP,EGP,Incomplete 等。
- AS-Path 路径:标识路径经过的 AS 序列,即列出在到达所通告的网络之前所经过的 AS 清单。
- Next-hop 属性:到达更新报文所列网络的下一跳边界路由器的 IP 地址。
next-hop-local 配置:
- BGP 在向 IBGP 通告其他 EBGP 的路由时,不改变路由的下一跳地址。
- BGP 在向 EBGP 通告路由时,下一跳属性是与本地 BGP 与对端连接的端口地址。
- 如果不强制下一跳,会出现路由地址不可达的问题。
基于 ACL 的路由过滤:
基于 AS-PATH 的路由过滤:
基于 Route Policy 的路由过滤:
- VLAN 和 IP 配置
- BGP 配置
- 配置 BGP 路由策略
- 主机加入组播组:启动一个应用程序,应用程序向 IP 模块注册组播 IP 地址,请求加入组播组。同时数据链路层将该组播的 MAC 地址加入到数据链路层接收列表中。
- 主机接收组播数据:数据链路层接收数据帧后,将数据帧的 MAC 地址与接收列表进行匹配,同样网络层也将目的 IP 地址与网络层接收列表进行匹配,若匹配则接收该数据。
- 主机离开组播组:应用程序通告 IP 模块,将该组播 IP 从网络层接收列表中删除,同理 IP 模块会通告数据链路层,使其从数据链路层接收列表中删除该组播的 MAC 地址。
IGMP 加入组机制:
- 主机会主动向其要加入的组播组发送 IGMP 成员关系报告报文以声明加入,而不必等待 IGMP 查询器发来的 IGMP 查询报文。
- IGMP 查询器周期性地以组播方式向本地网段内的所有主机与路由器发送 IGMP 查询报文。
- 收到查询报文后,关注 G1 的 PAC 或 PCB 之一会向 G1 发送 IGMP 成员关系报告报文,以宣告其属于 G1,而本地网段的其他主机不在发送报告报文,即 IGMP 成员关系报告抑制机制,有助于减少本地网段的信息流量
IGMP 离开组机制:
- 主机向本地网段内的所有组播路由器发送离开组报文。
- 查询器收到该报文后,向该主机的组播组发送特定组查询报文。
- 如果所在组还要其他长远主机,则会发送成员关系报告报文。
- 如果在最大响应时间内收到了成员关系报告报文,则继续位于该组播组的成员关系,否则认为该网段内已无该组播组的成员,不在维护成员关系。
配置命令:
- PIM-DM(协议无关组播-密集模式)
- PIM-SM(协议无关组播-稀疏模式)
逆向路径转发(RPF,Reverse Path Forwarding):组播包的转发不是基于 IP 包的目的地址的,而是用RPF 检查决定是转发还是丢弃该组播包。路由器检查到达组播包的源地址,如果组播包是在可返回源站点的接口上到达,则 RPF 检查成功,组播包被转发;如果RPF检查失败,丢弃组播包。
配置命令:
配置命令:
被管对象必须维持可供管理程序读写的若干控制和状态信息,这些信息总称为管理信息库 MIB(Management Information Base)。
网络管理协议:并不是网管协议本身来管理网络,网管协议就是管理程序和代理程序之间进行通信的规则。
RMON(Remote Monitoring,远程网络监视)是对 SNMP 的增强,RMON 可以有效地降低对网络带宽的要求,实现网络数据的增值分析,减轻网管站和网络的负担。
RMON 原理:把一部分原来在网管侧实现的功能放到设备上去进行。避免了网络上许多不必要的流量,在减轻网络负担的同时也有效降低了对网络带宽的要求。
SNMP 工作方式:SNMP 代理是一个软件进程,监听 UDP 端口 161 上的 SNMP 信息,每一个 SNMP 报文都含有想要读取或修改的管理对象的列表,和一个密码(共同体名),如果共同体名一致则处理该请求。支持 MIB-II 的被管设备将维护关于其每个接口的管理信息。网管程序通过周期性地用 UDP 数据报来发送 SNMP 请求报文,来请求被管设备的信息。
SNMPv1 定义的协议数据单元 PDU 有五种类型:
- get-request:从代理进程处提取一个或多个参数值。
- get-next-request:从代理进程处提取一个或多个参数值的下一个参数值。
- set-request:设置代理进程的一个或多个参数值。
- get-response:由代理进程返回的一个或多个参数值。
- trap:代理进程主动发出,通知管理进程有事情发生。
配置命令:
TCP 连接的建立:TCP 连接的建立采用了 3 次握手方式。
- PCA 发送连接请求报文:SYN,SEQ=x
- PCB 发送确认报文:SYN,ACK,SEQ=y,ACK=x+1
- PCA 发送确认报文:ACK,SEQ=x+1,ACK=y+1
TCP 连接的建立过程中,还进行了双方最大报文段长度(MSS,Maximum Segment Size)的协商,使用较小的 MSS 应用于数据传送。
TCP 数据的传送:为了保证传输的可靠性,采用面向字节的方式,每个字节对应一个序号。在连接建立时,双方协商初始序号;在发送数据报文中,序号字段为发送字节的序号;在确认报文中,确认号字段表示了此序号之前的字节均已收到。这样既做到了可靠传输,也做到了全双工通信。
TCP 连接的释放:TCP 连接的释放采用了 4 次挥手方式。
- PCA 发送连接释放请求报文:FIN,SEQ=x
- PCB 发送确认报文:ACK,SEQ=y,ACK=x+1(在这之后 PCB 还可以向 PCA 发送数据,但不再接收 PCA 发来的数据)
- PCB 发送连接释放请求报文:FIN,ACK,SEQ=y,ACK=x+1(SEQ=y 因为ACK报文不消耗序号)
- PCA 发送确认报文:ACK,SEQ=x+1,ACK=y+1(SEQ=x+1 因为FIN报文要消耗序号)
TCP 的拥塞控制和流量控制:保证可靠传输的同时,尽量提高传输效率。
TCP 的滑动窗口机制:TCP 使用大小可变的滑动窗口进行流量控制,窗口大小的单位是字节。发送窗口在连接建立时由双方协定,但在通信过程中,接收方可以通过更改接收窗口,发送方可以通过更改拥塞窗口,从而动态调整发送窗口的值。
- 接收端口(rwnd,receiver window):接收端根据可接收缓存的大小,动态地调整接收端口的大小,其值在接收端发送的窗口字段中。
- 拥塞端口(cwnd,congestion window):发送端根据当前网络拥塞程度而确认的窗口值,其大小与网络的带宽和时延密切相关。
- 发送端口:Min(cwnd,rwnd)
窗口的滑动:发送窗口其左边沿对应已发送数据中被确认的最高序号 +1。
- 窗口合拢:左边沿向右移动,表示数据被发送和确认。
- 窗口张开:右边沿向右移动,表示接收端释放了 TCP 缓存。
- 窗口收缩:右边沿向左移动,表示网络拥塞程度加大。
TCP 的糊涂窗口综合征和 Nagle 算法:
什么是糊涂窗口综合征:接收方处理较慢,每次从接收缓存取走少量数据并改变接收端口,这样发送方会频繁发送很多小的报文段,而不是等待接收窗口变得更大而发送一个大的报文段,降低了网络的传输效率。
Nagle 算法解决糊涂窗口综合征:
- 接收端避免通告小窗口:接收缓存可用空间达到一半或一个 MSS 再通告。
- 发送端尽量发送大报文:发送数据填满发送缓存的一半或一个 MSS 再发送。
TCP 的慢启动和拥塞避免:为了保证网络的平稳高效,防止网络流量的剧烈起伏振荡。
- 慢启动:发送端逐渐增大拥塞窗口的值,每收到一个确认报文,拥塞窗口增加一个 MSS。
- 拥塞避免:发送方每收到一个确认报文,拥塞窗口增加 SMSS*SMSS/cwnd,即每收到 cwnd 个确认报文,cwnd 加一。(SMSS 是发送端的 MSS)
慢启动与拥塞避免算法,拥塞窗口增加的方式分别是指数方式和线性方式。需要设置一个门限变量 ssthresh,来进行慢启动和拥塞避免的切换,避免网络拥塞。
网络拥塞的处理:网络拥塞是指发送端没有按时收到确认报文或者收到了重复的确认报文。
只要发送端发现网络拥塞,立即进行处理:
- ssthresh = max(cwnd/2,2*MSS)
- cwnd = 1
能够迅速减少主机到网络的分组数,使得发生拥塞的主机或者路由器有时间把队列中的积压分组处理完毕。
TCP 的超时与重传:发送端每发送一个报文段,TCP 都保留其副本,并设定一个定时器等待确认信息。如果定时器超时,却并没有得到确认,则重传这一报文。重传超时时间应略大于平均往返时延 RTT。
Karn 算法:计算平均往返时延 RTT 时,不计算发生过报文段重传的往返时延样本;同时报文段每重传一次,相应增大重传时间:新的重传时间 = γ*旧的重传时间,典型 γ=2。当不再发生报文段重传时,再根据往返时延更新 RTT 和重传时间的数值。
TCP 的窗口探查技术:接收端的接收缓存已满,向发送端发送窗口为 0 的通告报文。发送方使用一个坚持定时器来周期性地向接收方查询,以便发现窗口是否已经增大。(窗口探查是包含一个字节的数据的报文段)
TCP 的快重传与快恢复:为了避免 TCP 因等待重传定时器超时而空闲较长时间。
- 快重传:当发送端连续收到三个重复的 ACK 报文,即可认为某一报文段丢失并且网络仍能够正常报文传输,因此不必等待报文的定时器超时,而直接重传认为丢失的报文段。(连续收到重复 ACK 说明收到报文的字节序中有一段丢失)
- 快恢复:是慢启动算法的补充,当网络拥塞时,设置 cwnd = ssthresh,并直接进入拥塞避免状态,而不是设置 cwnd = 1,并进入慢启动状态。(快恢复的慢启动算法只在 TCP 建立连接时使用)
UDP:UDP 也是位于 IP 之上,封装在 IP 报文中进行传输,基于数据报文的协议。UDP 报文的传输没有建立连接,传输过程中也没有确认。UDP 是无连接的、不可靠的传输层协议。
IPv6 配置:
- 在路由器上:ping ipv6
- 在windows下:ping
查看 PC 加入的组播组:
问题:On-link 和 Off-link 地址解析的全过程:源和目的地址在同一链路上(On-link),源和目的地址在不同链路上(Off-link)。
IPv4 通过 ARP 解析,IPv6 通过 NS 和 NA 解析(没有广播)。
- On-link:处于同一链路的两条主机要通信就要知道对方的 mac 地址,在 IPV4 中通过 ARP 实现,ARP 是通过广播实现的,但是 IPV6 中并没有广播的概念。在 IPV6 中,通过 ND 协议来完成这个地址解析的工作。ND 协议使用 ICMPv6 报文,其地址解析过程如下:
- 首先查找邻居缓存表(IPV6 nc),没有则进行地址解析 (类似于查找ARP表)。
- 源主机发送组播NS报文,该报文的目的地址为目标IPV6地址所对应的被请求节点组播地址(Solicited-node),在其中也包含了自己的链路层地址。
- 目标主机收到NS报文后,就会了解到发送主机的IPV6地址和相应链路层地址;同时由于目标主机正在使用报文内的目标地址,所以会目标主机向源主机单播发一个邻接点公告报文(NA),该报文中包含自己的链路层地址。
- Off-link:支持 IPV6 的主机有一个数据结构DestinationCache,要发送数据到某个目的地址的时候,首先查询这个数据结构,如果查不到,就查路由表,然后将查到的信息记录在这个数据结构中。如果查询到的目的地址是 on-link 的,将目的地址本身加入 DC 表的 nexthop 域;如果目的地址是 off-link 的,将路由表中的下一跳加入 DC 的 nexthop 域。
目前针对 IPv4 协议使用的是 OSPFv2,针对 IPv6 协议使用的是 OSPFv3。OSPFv3 是基于链路(Link)运行,OSPFv2 是基于网段(Network)运行
OSPFv3 配置:
- 静态路由配置的下一跳地址不能为自身地址,否则就会出现错误。
- 进入交换机接口为,进入路由器接口为。
- 实验室中的两台路由器的 S 口是默认连接的。
- 实验中的路由器连接主机可以使用 Hub 相连。
- windows 如何截图:
- PrintScreen 按键
- 开始搜索:截图
配置:
查看配置情况:
问题:OSPF 的报文种类和第一类和第二类 LSA 的信息:
OSPF 的报文种类:
- Hello 报文:周期性地发送给本路由器的邻居,以发现及维持邻居关系,并选举DR,BDR。
- DD 报文(Database Description Packet,数据库描述报文):用来交换邻居路由器之间链路状态数据库(Link State Database,LSDB)的摘要信息,开始时,两个邻居路由器相互发送空DD报文来确定 Master/Slave 关系,
- LSR 报文(Link State Request Packet,链路状态请求报文):两台路由器相互交换了 DD 报文之后,通过比较确定缺少和需要更新的 LSA,并发送 LSR 报文向对方请求所需的 LSA。
- LSU 报文(Link State Update Packet,链路状态更新报文):向发送 LSR 报文的路由器发送其所需要的 LSA。
- LSAck 报文(Link State Acknowledge Packet,链路状态确认报文):对接收到的 LSU 报文进行确认。
第一类和第二类 LSA 的信息:
- Router LSA(Type=1):本路由器运行 OSPF 的接口的连接状况和花费信息,每个区域一条 LSA,传递范围是整个区域。
- Network LSA(Type=2):由 DR 生成,Router LSA 只描述了到 DR 的连接,而 DR 通过 Network LSA 来描述本网段中所有已经同其建立了邻接关系的路由器(Router ID),传递范围是整个区域。
配置:
查看配置情况:
问题:BGP 的报文种类:
- Open:对版本,BGP 标识符等信息进行协商。
- KeepAlive:BGP 对等体间周期性发送,以确保连接有效。
- Update:携带路由更新信息,包括撤销路由信息和可达路由信息及其路径属性。
- Notification:BGP 检测到差错时关闭同对等体的连接。
组播需要在交换机的每个 vlan 和路由器的每个接口配置如下命令:
之后查看组播信息可用:
问题:根据 IGMP 报文分析加入组和离开组的机制
尝试了断开连接,主动离开组,主动加入组,截获到了如下几种报文:
- Membership Query
- Membership Report
- Leave Group
IGMP 加入组机制:
- 主机会主动向其要加入的组播组发送 IGMP 成员关系报告报文以声明加入,而不必等待 IGMP 查询器发来的 IGMP 查询报文。
- IGMP 查询器周期性地以组播方式向本地网段内的所有主机与路由器发送 IGMP 查询报文。
- 收到查询报文后,关注 G1 的 PAC 或 PCB 之一会向 G1 发送 IGMP 成员关系报告报文,以宣告其属于 G1,而本地网段的其他主机不在发送报告报文,即 IGMP 成员关系报告抑制机制,有助于减少本地网段的信息流量
IGMP 离开组机制:
- 主机向本地网段内的所有组播路由器发送离开组报文。
- 查询器收到该报文后,向该主机的组播组发送特定组查询报文。
- 如果所在组还要其他长远主机,则会发送成员关系报告报文。
- 如果在最大响应时间内收到了成员关系报告报文,则继续位于该组播组的成员关系,否则认为该网段内已无该组播组的成员,不在维护成员关系。
- 需要在交换机和路由器上打开:
- 配置 ipv6 地址:
- ping ipv6:
- 配置静态路由:
配置 OSPFv3:
查看配置情况:
问题:On-link 和 Off-link 的过程解析:
IPv4 通过 ARP 解析,IPv6 通过 NS 和 NA 解析(没有广播)。
- On-link:处于同一链路的两条主机要通信就要知道对方的 mac 地址,在 IPV4 中通过 ARP 实现,ARP 是通过广播实现的,但是 IPV6 中并没有广播的概念。在 IPV6 中,通过 ND 协议来完成这个地址解析的工作。ND 协议使用 ICMPv6 报文,其地址解析过程如下:
- 首先查找邻居缓存表(IPV6 nc),没有则进行地址解析 (类似于查找ARP表)。
- 源主机发送组播NS报文,该报文的目的地址为目标IPV6地址所对应的被请求节点组播地址(Solicited-node),在其中也包含了自己的链路层地址。
- 目标主机收到NS报文后,就会了解到发送主机的IPV6地址和相应链路层地址;同时由于目标主机正在使用报文内的目标地址,所以会目标主机向源主机单播发一个邻接点公告报文(NA),该报文中包含自己的链路层地址。
- Off-link:支持 IPV6 的主机有一个数据结构DestinationCache,要发送数据到某个目的地址的时候,首先查询这个数据结构,如果查不到,就查路由表,然后将查到的信息记录在这个数据结构中。如果查询到的目的地址是 on-link 的,将目的地址本身加入 DC 表的 nexthop 域;如果目的地址是 off-link 的,将路由表中的下一跳加入 DC 的 nexthop 域。
问题:OSPFv3 报文种类:
截获完整 ospfv3 报文需要重启 ospf:
- Hello 报文:周期性地发送给本路由器的邻居,以发现及维持邻居关系,并选举DR,BDR。
- DD 报文(Database Description Packet,数据库描述报文):用来交换邻居路由器之间链路状态数据库(Link State Database,LSDB)的摘要信息,开始时,两个邻居路由器相互发送空DD报文来确定 Master/Slave 关系,
- LSR 报文(Link State Request Packet,链路状态请求报文):两台路由器相互交换了 DD 报文之后,通过比较确定缺少和需要更新的 LSA,并发送 LSR 报文向对方请求所需的 LSA。
- LSU 报文(Link State Update Packet,链路状态更新报文):向发送 LSR 报文的路由器发送其所需要的 LSA。
- LSAck 报文(Link State Acknowledge Packet,链路状态确认报文):对接收到的 LSU 报文进行确认。
配置 BGP4+: