HCIA-路由基础
网络类型与拓扑
华为设备图标简介

网络通信基本概念
通信:是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流
网络通信:是指终端设备之间通过计算机网络进行的通信
常见术语
| 术语 | 说明 |
|---|---|
| 数据载荷 | 最终想要传递的信息 |
| 报文 | 网络中交换与传输的数据单元 |
| 头部 | 在数据载荷的前面添加的信息段 |
| 尾部 | 在数据载荷的后面添加的信息段 |
| 封装 | 对数据载荷添加头部和尾部,形成新的报文的过程 |
| 解封装 | 去掉报文的头部和尾部,获取数据载荷的过程 |
| 网关 | 剔红协议转换、路由选择、数据交换等功能的网络设备 |
| 路由器 | 为报文选择传递路径的网络设备 |
| 终端设备 | 数据通信系统的段设备,作为数据的发送者或接收者 |
网络设备
交换机
交换机:距离终端用户最近的设备,用于终端用户接入网络、对数据帧进行交换等。
- 终端设备(PC、服务器等)的网络接入
- 二层交换(Layer 2 Switching)

路由器
路由器:网络层设备,可以在因特网中进行数据报文转发。路由器根据所收到的报文的目的地址选择一条合适的路径,将报文传送到下一个路由器或目的地,路径中最后的路由器负责将报文送交目的主机。
- 实现同类型网络或异种网络之间的通信
- 隔离广播域
- 维护路由表(Routing Table)、运行路由协议
- 路径(路由信息)选择、IP报文转发
- 广播域接入、网络地址转换
- 连接通过交换机组建的二层网络
防火墙
防火墙:网络安全设备,用于控制两个网络之间的安全通信。它通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部地信息、结构和运行状况,以此来实现对网络的安全保护。
- 隔离不同安全级别地网络
- 实现不同安全级别的网络之间的访问控制(安全策略)
- 用户身份认证
- 实现远程接入功能
- 实现数据加密及虚拟专用网业务
- 执行网络地址转换
- 其他安全功能
局域网、城域网、广域网
按照地理覆盖范围来划分,网络可以分为局域网(Local Area Network)、城域网(Metropolitan Area Network)和广域网(Wide Area Network)。
局域网(LAN):
在某一地理区域内由计算机、服务器以及各种网络设备组成地网络。局域网的覆盖范围一般是房源几千米以内。
典型的局域网:一家公司的办公网络,一个网吧的网络,一个家庭网络等。
城域网(MAN):
在一个城市范围内所建立的计算机通信网络。
典型的城域网:宽带城域网、教育城域网、市级或省级电子政务专网等。
广域网(WAN):
通常覆盖很大的地理范围,从几十公里到几千公里。它能连接多个城市甚至国家,并能提供远距离通信,形成国际性的大型网络。
典型的广域网:Internet(因特网)。
网络拓扑
网络拓扑是指用传输介质(例如双绞线、光纤等)互连各种设备(例如计算机终端、路由器、交换机等)所呈现的结构化布局。

网络拓扑形态
按照网络的拓扑形态来划分,网络可分为星型网络、总线型网络、环形网络、树形网络、全网状网络和部分网状网络。

网络参考模型
网络参考模型与协议
OSI参考模型
| 7.应用层 | 对应用程序提供接口 |
|---|---|
| 6.表示层 | 进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解。 |
| 5.会话层 | 在通信双方之间建立、管理和终止会话。 |
| 4.传输层 | 建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。 |
| 3.网络层 | 定义逻辑地址;实现数据从源到目的地的转发。 |
| 2.数据链路层 | 将分组数据封装成帧;在数据链路上实现数据的点到点或点到多点的直接通信;差错检测。 |
| 1.物理层 | 在媒介上传输比特流;提供机械的和电器的规约。 |
TCP/IP参考模型
因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型。

TCP/IP常见协议

常见协议标准化组织
IETF(Internet Engineering Task Force)
- 负责开发和推广互联网协议(特别是构成TCP/IP协议族的协议)的志愿组织,通过RFC发布新的或者取代老的协议标准。
IEEE(Institute of Electrical and Electronics Engineers)
- IEEE制定了全世界电子、电气和计算机科学领域30%左右的标准,比较知名的由IEEE802.3(Ethernet)、IEEE802.11(Wi-Fi)等。
ISO(International Organization for Standardization)
- 在指定计算机网络标准方面,ISO是起着重大作用的国际组织,如OSI模型,定义于ISO/IEC 7498-1。
应用层
应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。
应用层的PDU(协议数据单元)被称为Data(数据)。

常见应用层协议
FTP
FTP(File Transfer Protocol)是一个用于从一台主机传送文件到另一台主机的协议,用于文件的“下载”和“上传”,它采用C/S(Client/Server)结构。
FTP客户端:
提供本地设备对远程服务器的文件进行操作的命令。用户在PC上通过应用程序作为FTP Client,并与FTP服务器建立连接后,可以对FTP Server上的文件进行操作。
FTP服务器:
运行FTP服务的设备。提供远程客户端访问和操作的功能,用户可以通过FTP客户端程序登录到服务器上,访问设备上的文件。
Telnet
Telnet是数据网络中提供远程登录服务的标准协议。Telnet为用户提供了在本地计算机上完成远程设备工作的能力。
用户通过Telnet客户端程序连接到Telnet服务器。用户在Telnet客户端中输入命令,这些命令会在服务器端运行,就像直接在服务器端的控制台上输入一样。

HTTP
HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的就是为了提供一种发布和接收HTML页面的方法。

传输层
传输层协议接受来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。
传输层的PDU被称为Segment(段)。
传输层协议
TCP
TCP:一种面向连接的、可靠的传输层通信协议,由IETF的RFC 793定义。
UDP
UDP:一种简单的无连接的传输层协议,由IETF的RFC 768定义。
端口号
客户端使用的源端口号一般随机分配,目标端口则由服务器的应用指定。
源端口号一般为系统中未使用的,且大于1023。
目的端口号为服务端开启的应用(服务)所侦听到的端口,如HTTP缺省使用80。

TCP的建立-三次握手
任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接。

可理解为PC1想跟PC2谈恋爱,PC1向PC2发送恋爱信号,PC2接收到PC1的恋爱信号后同意成为PC1的恋人,就会将同意信息返回给PC1,PC1接收到PC2同意的信息后大喜过望,向PC2发送收到恋爱同意的信息,则他们的恋爱就开始了。
网络层
传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另一台主机之间的传递。
网络层的PDU被称为Packet(包)。
网络层也叫Internet层,负责将分组报文从源主机发送到目的主机。
网络层作用:
- 为网络中的设备提供逻辑地址。
- 负责数据包的寻径和转发。
- 常见协议如IPv4,IPv6、ICMP、IGMP等。
网络层协议
网络层经常被成为IP层。但网络层协议并不只是IP协议,还包括ICMP(Internet Control Message Protocol)、IPX(Internet Packet Exchange)协议等。
IP协议
IP时Internet Protocol的缩写。Internet Protocol本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式。
经常被提及的IP一般不是特指Internet Protocol这个协议文件本身,而是泛指直接或间接与IP协议相关的任何内容。
作用:
为网络层的设备提供逻辑地址。
负责数据包的寻址和转发。
网络层协议工作过程

数据链路层
数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。
以太网(Ethernet)是最常见的数据链路层协议。
- 数据链路层位于网络层和物理层之间:
- 数据链路层向网络层提供“段内通信”。
- 负责组帧、物理编址、差错控制等功能。
- 常见的数据链路层协议有:以太网、PPPOE、PPP等。
以太网定义
- 以太网是一种广播式数据链路层协议,支持多点接入。
- 个人电脑的网络接口遵循的就是以太网标准。
- 一般情况下,一个广播域对应着一个IP网段。

以太网MAC地址
MAC(Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址。
MAC用于在一个IP网段内,寻址找到具体的物理设备。
工作在数据链路层的设备。例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发。
地址解析协议(ARP)
ARP(Address Resolution Protocol)地址解析协议,根据已知的IP地址解析获得其对应的MAC地址。

实验拓扑

PC1 ping PC2会向局域网内的所有设备发出ARP报文(广播),PC2确认是向自己发送的ICMP请求后进行回应(单播),PC1的arp列表中就会出现PC2的IP地址及MAC地址对应关系,PC2和PC3中则会出现PC1的IP地址及MAC地址对应关系。
物理层
数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。
物理层的PDU被称为比特流(Bitstream)。
物理层位于模型的最底层:
- 负责比特流在介质上的传输。
- 规范了线缆、针脚、电压、接口等物理特性规范。
- 常见的传输介质有:双绞线、光纤、电磁波等。
常见传输介质

常见的基础操作命令
文件操作命令
| 命令 | 用途 |
|---|---|
| pwd | 查看当前路径 |
| dir | 显示当前目录下的文件信息 |
| more | 查看文本文件的具体内容 |
| cd | 修改用户当前界面的工作目录 |
| mkdir | 创建新的目录 |
| rmdir | 删除目录 |
| copy | 复制文件 |
| move | 移动文件 |
| rename | 重命名文件 |
| delete | 删除文件 |
| undelete | 恢复删除的文件 |
| reset recycle-bin | 彻底删除回收站中的文件 |
基本配置命令
| 命令 | 用途 |
|---|---|
| sysname name | 配置设备名称 |
| clock timezone time-zone-name {add | minus} offset | 设置系统时钟,用来对本地时区信息进行设置 |
| clock datetime [utc] HH:MM:SS YYYY-MM-DD | 用来设置设备当前或UTC日期和时间 |
| clock daylight-saving-time | 用来设置设备的夏令时 |
| command-privilege level level view view-name command-key | 配置命令等级 |
| user-interface vty 0 4 set authentication password cipher information |
配置用户通过password方式登录设备,用来进入指定的用户视图。系统支持的用户界面包括console用户界面和VTY用户界面,Console界面用于本地登录,VTY界面用于远程登录。默认情况下,设备一般最多支持15个用户同时通过VTY方式访问 |
| idle-timeout minutes [ seconds ] | 用来设置用界面断开连接的超时时间。如果用户在一段时间内没有输入命令,系统将断开连接。缺省情况下,超时时间是10分钟 |
| interface interface-number ip address ip_address mask |
用来给设备上的物理或逻辑接口配置IP地址 |
| display current-configuration | 查看当前运行的配置文件 |
| save | 配置文件保存 |
| display saved-configuration | 查看保存的配置 |
| reset saved-configuration | 清除已保存的配置 |
| display startup | 查看系统启动配置参数 |
| startup saved-configuration configuration-file | 设备升级时,可以通过此命令让设备下次启动时加载指定的配置文件 |
| reboot | 设备重启 |
IP路由基础
路由
- 路由时知道报文转发的路径信息,通过路由可以确认转发IP报文的路径。
- 路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器。
- 路由设备维护着一张路由表,保存着路由信息。

路由中包含以下信息:
- 目的网络:标识目的网段
- 掩码:与目的地址共同标识一个网段
- 出接口:数据包被路由后离开本路由器的接口
- 下一跳:路由器转发到目的网段的数据包所使用的下一跳地址
这些信息标识了目的网段、明确了转发IP报文的路径

直连路由
直连路由指向本地直连网络的路由,由设备自动生成。
当路由器为路由转发的最后一跳路由器时,IP报文匹配直连路由,路由器转发IP报文到目的主机
使用直连路由进行路由转发时,报文的目的IP和路由器接口IP在同一个网段。

并不是所有接口生成的直连路由都会出现在路由表中,直连路由出现在路由表中的前提是该接口的物理状态、协议状态都为UP。

查看IP路由表

路由优先级
当路由器从多种不同的路径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,路由器会比较这些路由的优先级,优选优先级值最小的路由。
路由来源的优先级值(Preference)越小代表加入路由表的优先级越高。
拥有最高优先级的路由将被添加进路由表。

比较过程
RTA通过动态路由协议OSPF和手动配置的方法都发现了到达10.0.0.0/30的路由,此时会比较这两条路由的优先级,优选优先级值最小的路由。
每一种路由都有相应的优先级。
OSPF拥有更优的游侠你就,因此通过OSPF学习到的路由被添加到路由表中。

常见默认数值
| 路由来源 | 路由类型 | 默认优先级 |
|---|---|---|
| 直连 | 直连路由 | 0 |
| 静态 | 静态路由 | 60 |
| 动态路由 | OSPF内部路由 | 10 |
| OSPF外部路由 | 150 |
度量值
当路由器通过某种协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由器优选的依据之一。
路由度量值表示到达这条路由所指目的地址的代价。
一些常用的度量值有:跳数、带宽、时延、代价、负载、可靠性等。
度量值数值越小越优先,度量值最小路由将会被添加到路由表中。
度量值很多时候被称为开销(cost)

比较过程
RTA通过动态路由协议OSPF学习到了两条目的地为10.0.0.0/30的路由,学习自同一路由协议、优先级相同,因此需要继续比较度量值。
两条路由拥有不同的度量值,下一跳为30.1.1.2的OSPF路由条目拥有更小的度量值,因此被加入到路由表中。

路由转发
最长匹配原则
当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位(bit-by-bit)比对,知道找到匹配最长的条目,这就是最长前缀匹配机制。

示例1
根据最长匹配原则进行匹配,能够匹配192.168.2.2的路由存在两条,但是路由的掩码长度中,一个为16bit,另一个为24bit,掩码长度为24bit的路由满足最长匹配原则,因此被选择来知道发往192.168.2.2的报文转发。

示例2
根据最长匹配原则匹配,能够匹配到192.168.3.2的路由只有一条,此路有为最终转发依据

路由转发流程

静态路由
静态路由应用场景
静态路由是由网络管理员手动配置,配置方便对系统要求低,适用于拓扑结构简单并且稳定的小型网络。
缺点是不能自动适应网络拓扑的变化,需要人工干预。
RTA上转发的地址属于20.1.1.0/24的报文,在只有直连路由的情况下没有路由匹配。此时可以通过手动配置静态路由,使RTA发送前往20.1.1.0/24网段的报文交给下一跳10.0.0.2转发。

静态路由配置
关联下一跳IP的方法
1 | ip route-static ip-address{mask|mask-length} nexthop-address |
关联出接口的方式
1 | ip route-static ip-address{mask|mask-length} interface-type interface-number |
关联出接口和下一跳IP方式
1 | ip route-static ip-address{mask|mask-length} interface-type interface-number [nexthop-address] |
在创建静态路由时,可以同时指定出接口和下一跳。对于不同的出接口类型,也可以指定出接口或只指定下一跳。
对于点到点接口(如串口),只需要指定出接口。
对于广播接口(如以太网接口)和VT(Virtual-template)接口,必须指定下一跳。
实例

RTA的配置如下
1 | <Huawei>sys |
RTB的配置如下
1 | <Huawei>sys |
RTC的配置如下
1 | <Huawei>sys |
联通性测试
1 | RTA ping RTC |

目标:
PC1与PC2之间能够通信
AR1配置
1 | sys |
AR2配置
1 | sys |
AR3配置
1 | sys |
联通性测试


缺省路由
缺省路由是一种特殊的路由,当报文没有在路由表中找到配置的具体路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。
缺省路由在路由表中的形式为0.0.0.0/0,缺省路由也被叫做默认路由。

缺省路由应用场景
缺省路由一般用于企业网络出口,配置一条缺省路由让出口设备能够转发前往Internet上任意地址的IP报文。

动态路由
动态路由概述

动态路由分类

路由高级特性
路由递归
路由递归也被称为路由迭代,即路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由递归。


等价路由
路由表中存在等价路由之后,前往该目的网段的报文路由器会通过所有有效的接口、下一跳转发,这种转发行为被称为负载分担。

浮动静态路由
静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同、优先级不同、下一跳不同的静态路由,实现转发路径的备份。
浮动路由是主用路由的备份,保证链路故障时提供备份路由。主用路由下一跳可达时该备份路由不会出现在路由表。

等价-浮动路由实验
实验拓扑图

AR1配置
1 | sys |
AR2配置
1 | sys |
AR3配置
1 | sys |
AR4配置
1 | sys |
等价路由联通性测试


断掉AR1与AR2的连接再进行联通性测试


等价路由


浮动路由
修改AR1到AR4到AR3的静态路由优先级,使其成为备用线路。
1 | ip route-static 192.168.2.0 24 10.0.14.4 preference 70 |
修改AR3到AR4到AR1的静态路由优先级,使其成为备用线路。
1 | ip route-static 192.168.1.0 24 10.0.34.4 preference 70 |
路由汇总
CIDR(classless inter-domain routing,无类别域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。
CIDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。
路由汇总需求
子网划分、VLSM解决了地址空间浪费的问题,但同时也带来了新的问题:路由表中的路由条目数量增加。
为减少路由条目数量可以使用路由汇总。

对于RTB路由表中的ip地址,我们可以将RTB中的六个网段汇总成一个网段即192.168.0.0/21。
路由汇总简介
路由汇总将一组具有相同前缀的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源用率的目的。
路由汇总采用了CIDR的思想,将相同前缀的地址聚合成一个。
我们把聚合之前的这组路由称为精细路由或者明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。

汇总计算
基于一系列连续的,有规律的IP网段,如果需要计算相应的汇总路由,且确保得出的汇总路由刚好“囊括”上述IP网段,则需保证汇总路由的掩码长度尽可能长。
诀窍在于:将明细路由的目的网络地址都换算成二进制,然后排列起来,找出所有目的网络地址中“相同的比特位”。

汇总引发的问题
当RTA发送给10.1.255.254的数据走静态路由转发到RTB后,RTB路由表中没有找到10.1.255.254的地址,就会走静态路由0.0.0.0并且转发给12.1.1.2,如此循环产生环路。

遇到此类情况,需要在RTB中设置黑洞路由,在路由表中找不到10.1.255.254就会走下方的黑洞静态路由,将数据包丢弃。



