第4章 IP路由基础
文章目录
IP协议功能:
- 负责在网络中对设备进行标识
- 负责报文防环、Qos优化、分片
- 负责报文的寻址
4.1 IPv4地址规划
4.1.1 IP有类编址
-
IP地址
IP地址长度为32bit,4byte,有由两部分组成:网络号+主机号;
网络号标识设备所属的网段;主机号标识同一个网络中不同的主机
IP地址的表示方式:
-
二进制格式,机器方便处理
-
点分十进制,方便人使用
-
每8个bit为一组用,隔开,在每组转换成10进制即可
-
27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1
-
补充:一个16进制数值可以用4bit的2进制俩描述
- 1 = 0001
- 5 = 0101
- F = 1111
-
-
IP地址结构
地址结构就是IP地址网络部分长度以及主j机部分长度。
-
IP地址类型
任何一个网段都有2个特殊地址:
-
网络地址(网络号): 主机位全为0的地址,不能分配给接口使用,代表网段本身,用于标识一个网段
-
广播地址: 主机位全为1的地址,不能分配给接口使用,代表网段中的所有接口,实现广播通信
-
可用地址: 主机位既不全为0,也不全为1的地址,可以分配给该网段的所有接口
问题:172.16.10.1/16这个B类地址的网络地址、广播地址以及可用地址数分别是?
- IP地址和子网掩码都转换成二进制
- 两者相与,转换成十进制得出网络号
- 剩余的0全部改为1,得出广播地址
- 网络号加为第一个地址
- 广播地址减一为最后一个地址
-
-
IP地址分类
-
A类可用于分配使用的地址范围:1.0.0.0~126.255.255.255
-
A、B、C类为单播地址,用于1对1通信
-
D类为组播地址。用于1对多通信
-
E类为暴露的单播地址,用于军事、科研、现在也已经分配完毕
-
私有的IP地址:所有机构或者个人可以随意使用,无需申请,用于企业内部组网。私网地址可以重复使用,提高地址利用率,节省了公网地址。
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
-
其他均为公网地址,目前所有IPv4公网地址均已分配完毕
-
其他特殊的IP地址:
255.255.255.255: 有限的广播地址
0.0.0.0: 任何网络的IP地址
127.0.0.0/8: 环回地址,用来测试设备自身的软件系统;IP协议规定:
-
IP报文源地址不能是127.0.0.0网段的地址;
-
IP报文目的地址如果是127.0.0.0网段的地址的报文无法被发出接口。
-
问题:环回口有什么特点?
- 逻辑接口,没有物理接口与之对应
- 不会出现无力故障,设备启动后,loopback接口一直保持up状态,稳定性特别好
- 做网络测试使用
- 某些协议(OSPF/BGP/LDP)使用,保持协议工作的稳定性
- 作为带内设备的网管地址
- loopback接口通常配置/32的掩码长度,理解只有一台主机的网络
169.254.0.0/16: 进行临时通信的IP地址
-
-
4.1.2 VLSM技术
-
子网掩码
本身不是一个IP地址,并且必须是若干个连续的1后接若干个连续的0组成。(长度为32bit,1代表网络位;0代表主机位)
作用:
- 用于识别IP地址的格式,区分网络位和主机位
- 用于计算主机所属的网络号
- 用于计算主机所属的网络的广播地址
-
IP地址表示法
掩码表示法:192.168.1.10 255.255.255.0
前缀表示法:192.168.1.10/24
-
子网划分
问题:公司想把192.168.5.0/24划分为5个部门,每个部门大概有20台主机,怎样划分?
2n = 子网的地址数量 n=5 地址数量 32
2m = 子网的数量 m = 3 子网的数量 8
n+m = 8
-
点到点链路上通常建议分配/30的掩码长度,地址利用率最高
4.1.3 IP头部报文格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Tota l Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
版本号(Version):0100代表IPv4;0110代表IPv6
报文长度(IHL):整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
服务类型(Type of Service):
标识(Identification):主机每发一个报文,加1,分片重组时会用到该字段。如报文A标识为1000,但被分片为A1、A2、A3三个分片,A1、A2、A3的标识都为1000。
标识位(Flags):分为0(保留为);DR置位0表示允许分片、置位为1表示不允许分片;MF置位为0表示是分片但不是最后一个分片、置位为1表示是分片且是最后一个分片。
片偏移量(Fragment Offset):表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
-
首个分片的(传输层大小+PDU大小)/8 =第二个分片的偏移量
-
首个分片传输层大小+PDU大小+第二个分片的PDU/8=第三个分片的偏移量
-
生存时间(Time to Live):取值范围0~255,默认值取决于操作系统设置的默认值,常见的默认TTL为64、128、255。作用:用于防止IP报文转发时产生环路、防环用,当路由器接受到IP报文后将报文ttl值减一,如果减到0还没有到达目的地址则将报文丢弃,防环报文在网络中无限被转发。
4.2 ICMP
全称:Internet Control Message Protocol
中文名称:Internet控制报文协议
作用:用于网络设备间传递各种差错和控制信息
ICMP的应用场景:ICMP用来传递差错、控制、查询等信息
ICMP报文格式
+0------7-------15---------------31
| Type | Code | Checksum |
+--------------------------------+
| Message Body |
| (Variable length) |
+--------------------------------+
Type表示ICMP消息类型,Code表示同一消息类型中的不同信息
类型 | 编码 | 描述 |
---|---|---|
0 | 0 | Echo Reply |
3 | 0 | 网络不可达 |
3 | 1 | 主机不可达 |
3 | 2 | 协议不可达 |
3 | 3 | 端口不可达 |
5 | 0 | 重定向 |
8 | 0 | Echo Request |
有些ICMP消息使用Type字段定义消息大类,用Code字段表示消息的具体类型。比如,类型为3的消息表示目的不可达,不同的Code值表示不可达的原因,包括目的网络不可达(Code=0)、目的主机不可达(Code=1)、协议不可达(Code=2)、目的TCP/UDP端口不可达(Code=3)等
4.2.1 ICMP重定向
ICMP重定向过程:
- 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。
- 网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,此转发路径是更优的路径,所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。
- 主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A。
安全隐患:攻击者主动向主机A发送ICMP重定向报文,访问任何网段都要交给某个路由器,但这个路由可能不存在,于是导致无法通信。
解决方法:主机关闭ICMP报文处理功能。
IPv4 ICMP重定向功能触发前提:
- 报文的目的地址不是一个组播地址。报文并非通过路由转发给路由器。
- 经过路由计算后。路由的下一跳出接口是接收报文的接 。
- 路由器发现报文的最佳下一跳IP地址和报文的源1P地址处于同一网段。
4.2.2 ICMP差错检测
#静态路由配置
[R1]ip route-static 4.4.4.4 32 10.0.12.2
[R2]ip route-static 1.1.1.1 32 10.0.12.1
[R2]ip route-static 4.4.4.4 32 10.0.23.3
[R3]ip route-static 1.1.1.1 32 10.0.23.2
[R3]ip route-static 4.4.4.4 32 10.0.34.4
[R4]ip route-static 1.1.1.1 32 10.0.34.3
- ping
- -a source-ip-address指定发送ICMP ECHO-REQUEST报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。
- -c count指定发送ICMP ECHO-REQUEST报文次数。缺省情况下发送5个ICMP ECHO-REQUEST报文。
- -h ttl-value指定TTL的值。缺省值是255。
- -t timeout指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间
- tracert
- -a source-ip-address指定tracert报文的源地址。
- -f first-ttl指定初始TTL。缺省值是1。
- -m max-ttl指定最大TTL。缺省值是30。
- -name使能显示每一跳的主机名。
- -p port指定目的主机的UDP端口号。
4.3 路由基础
什么是路由?
就是将一个网段的数据转发到另一个网段,是一种逐跳行为。
**实现路由的设备:**凡是具有路由功能的网络设备。
**自治系统(AS):**由同一个管理机构管理、使用统一路由策略的路由器集合,
路由来源:
-
直连路由:自动发现 默认优先级为0,不能改
-
静态路由:管理员手动配置 默认优先级为60
ip route-static 1.1.1.0 24 10.1.12.1
-
动态路由:路由协议交换路由信息获取
**补充:**除了直连路由其他的路由优先级都能改。
问题:数据帧被封装成IP报文后,主机会进行一个怎样的判断?
SIP和DIP是否在同一个网段,明确是同子网互访还是跨子网互访。
判断依据:
SIP和自身子网掩码做逻辑与运算,得到自身的网络号
DIP和自身子网掩码做逻辑与运算,得到目标主机所在的网络号
如果SIP和DIP的网络号相同,则代表同子网互访,如果不同则代表跨子网互访
如果同子网互访,则查ARP缓存;如果ARP缓存存在目标的ARP表项,进行2层封装
如果跨子网互访,则查路由表,查找网关地址,知道网关地址后,查ARP缓存表是否存在网关地址的MAC地址信息。如果不存在网关的ARP表项,则对网关地址发起ARP解析,解析完毕后,进行2层封装,交给网关做进一步处理。
4.3.1 路由表
**display ip routing-table **查看路由表
[Huawei]display ip routing-table
Route Flags: R - relay, D - download to fib
-------------------------------------------------------------
Routing Tables: Public Destinations : 2 Routes : 2
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 D 120.0.0.2 Serial1/0/0
8.0.0.0/8 RIP 100 3 D 120.0.0.2 Serial1/0/0
9.0.0.0/8 OSPF 10 50 D 20.0.0.2 Ethernet2/0/0
9.1.0.0/16 RIP 100 4 D 120.0.0.2 Serial1/0/0
11.0.0.0/8 Static 60 0 D 120.0.0.2 Serial2/0/0
20.0.0.0/8 Direct 0 0 D 20.0.0.1 Ethernet2/0/0
20.0.0.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
目的地址(Destination)/网络掩码(Mask):用于标识一条路由。
路由协议(Proto):该路由的类型,或者该路由是通过什么途径学习到的。
优先级(Preference):认为定义对的一个值,用于判断路由来源的可信任度,取值为0~255,越小越优。思科上称为管理距离(AD)
开销(cost):本路由器到达目的网段的代价值。
下一跳IP地址(NextHop):指明IP数据包所经由的下一跳路由器的接口地址。
输出接口(Interface):指明IP数据包将从该路由器的哪个接口转发出去。
目的地址(Destination)/网络掩码(Mask)、下一跳IP地址(NextHop)、输出接口(Interface):只需要这三要素就能实现报文转发,剩下的是解决冲突的。
4.3.2 路由优先级
- 人为定义的一个值,用于判断路由来源的可信任的程度,取值范围0~255,值越小优先级越高,思科称为路由管理距离,AD
- 当去往相同的网段有多种协议的路径可供选择的时候,选择路由优先级值越小,代表可信任程度越高。
- 除了直连路由,其他的路由优先级都可以改。
- 不同路由来源,相同的优先级比较内部优先级。
路由协议的类型 | 路由协议的外部优先级 |
---|---|
Direct | 0 |
OSPF | 10 |
IS-IS | 15 |
Static | 60 |
RIP | 100 |
OSPF ASE | 150 |
OSPF NSSA | 150 |
IBGP | 255 |
EBGP | 255 |
路由协议的类型 | 路由协议的内部优先级 |
---|---|
Direct | 0 |
OSPF | 10 |
IS-IS Level-1 | 15 |
IS-IS Level-2 | 18 |
Static | 60 |
RIP | 100 |
OSPF ASE | 150 |
OSPF NSSA | 150 |
IBGP | 200 |
EBGP | 20 |
4.3.3 路由度量值
- 又称为cost开销/Metric(思科)/成本。
- 使用同一种路由来源去往相同网段有多条路径时,选择cost最小的。
- 不同路由协议对cost的计算方式不同。
- 路由进表的规则:
4.3.4 最长前缀匹配
**路由表报文转发机制:**根据IP报文目的地址查路由表,找到最匹配的路由表进行转发,即掩码长度最长的。
4.3.5 路由类型
- 从工作原理上分类:
- DV 距离矢量路由协议 RIPv1、RIPv2、IGRP(思科独有、淘汰)、
- LS 链路状态路由协议 OSPFv2、OSPFv3、ISIS
- 路径矢量路由协议 BGP
- 从工作范围上分类:
- IGP 内部网关协议(实现AS内部互联互通的通信) RIPv1、RIPv2、IGRP、EIGRP、OSPFv2、OSPFv3、ISIS
- EGP 外部网关协议(实现AS之间互联互通的通信) BGP
4.3.4 静态路由
**功能:**负载均衡和路由备份
- 带宽差距比较大的链路不适合做负载分担
[R1]ip route-static 192.168.2.0 24 10.1.12.2
[R1]ip route-static 192.168.2.0 24 20.1.12.2 preference 100 #路由备份
[S2]ip route-static 192.168.1.0 24 10.1.12.1
[S2]ip route-static 192.168.1.0 24 20.1.12.1 preference 100
[S2]ip route-static 192.168.2.0 24 10.1.23.3
[S3]ip route-static 192.168.1.0 24 10.1.23.2
问题:IP路由网络(静态路由/路由协议)如何做负载分担?
- 基于流实现负载分担
- 流:SIP+DIP+SPORT+DPORT+(TCP/UDP)五元组相同的报文组成同一个流
- 属于同一个流的报文走相同的路径
- 华为设备负载分担是基于流,因为易于排错
- 基于报文实现负载分担
- 匹配相同等价路由的报文,以报文为单位,在多条等价路径上轮询转发
- 非TCP/UDP的IP报文,比如IICMP协议报文
- SIP+DIP相同的报文组成一个流
4.3.5 缺省路由
-
缺省有静态和动态之分
-
作用:末节网络的边缘路由器通常会缺省路由访问外部网络
-
末节网络:只有一个出口的网络
-
缺省路由不能互指
-
缺省路由也能做负载分担和路由备份
4.3.6 CIDR
-
CIDR(classless inter-domain routing,无类域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。
-
CIDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。
4.3.7 路由汇总
- 本质:通过一条或者多条路由信息把大量的路由信息给概括起来
路由汇总优点:
- 减少了路由表的条目数量,节省设备资源,提升转发效率
- 增强了网络的稳定性
路由汇总的缺点:
- 不精确地路由汇总会导致路由黑洞
- 错误的路由汇总会导致路由环路
精确地路由汇总要求良好的地址规划,对地址规划的要求比较高
4.3.6 CIDR
-
CIDR(classless inter-domain routing,无类域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。
-
CIDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。
[外链图片转存中…(img-1f1qARrn-1678691816813)]
4.3.7 路由汇总
- 本质:通过一条或者多条路由信息把大量的路由信息给概括起来
路由汇总优点:
- 减少了路由表的条目数量,节省设备资源,提升转发效率
- 增强了网络的稳定性
路由汇总的缺点:
- 不精确地路由汇总会导致路由黑洞
- 错误的路由汇总会导致路由环路
精确地路由汇总要求良好的地址规划,对地址规划的要求比较高