网络基础

MAC地址

简介

MAC地址由两部分组成,分别是供应商代码和序列号。前24(6)位代表该供应商的代码,由IEEE管理和分配,后24(6)位序列号由厂商自己分配

MAC地址会显示成16进制,如0A-00-27-00-00-05换算成2进制如下:

0 A 0 0 2 7 0 0 0 0 0 5
0000 1010 0000 0000 0010 0111 0000 0000 0000 0000 0000 0101

快速换算

0 1 2 3 4 5 6 7 8 9 A(10) B(11) C(12) D(13) E(14) F(15)

​ 1=1
​ 10=2
100=4
1000=8

1 1 1 1 是否取值
8 4 2 1 取值所代表的数值

例如换算十六进制的A则算法为:A表示10,8+2=10,对照换算表为1010
例如换算十六进制的B则算法为:A表示11,8+2+1=11,对照换算表为1011
例如换算十六进制的F则算法为:A表示15,8+4+2+1=15,对照换算表为1111
例如换算十六进制的5则算法为:4+1=5,对照换算表为0101

单播多播

单播:

1. 点到点,单对单的通信
1. 数据封装时源MAC和目的MAC都是单播MAC,则为单播通信
1. 单播MAC地址从高位向低拉(从左往右)第8为一定为0,其他任意

组播:

1. 点对多点,单对多通信
1. 数据封装时因组播代表的是一组的集合,面向一组的通信,此时组播MAC不能成为数据的源地址,仅能充当目的地址
1. 组播MAC地址从高位向低拉(从左往右)第8为一定为1,其他任意

广播:

1. 点对所有,单对所有通信。强制接受处理
1. 数据封装时因广播代表的是所有人集合,面向所有人的通信,此时广播MAC不能成为数据的源地址,仅能充当目的地址
1. 广播MAC地址从高位向低拉(从左往右)48位全部为1,且一定为1 (FF:FF:FF:FF:FF:FF)

IPv4 地址

简介

IPv4地址通过点分十进制表示,由4组十进制数组成。8个2进制数代表1个十进制数

IANA机构将IP地址分为5大类,ABC类地址为单播地址,D类地址为组播地址

  1. A类: 第一个8组的第1位,一定取值为0

    • 0xxx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx

    • 最小:0.0.0.0

    • 最大:127.255.255.255
  2. B类:第一个8组的前2位,一定取值为10

    • 10xx xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx

    • 最小:128.0.0.0

    • 最大:191.255.255.255
  3. C类:第一个8组的前3位,一定取值为110

    • 110x xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx

    • 最小:192.0.0.0

    • 最大:223.255.255.255
  4. D类:第一个8组的前4位,一定取值为1110

    • 1110 xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx

    • 最小:224.0.0.0

    • 最大:239.255.255.255
    • D类地址只能作为逻辑地址存在,不能配置在设备的接口上
  5. E类:第一个8组的前4位,一定取值为1111

    • 1111 xxxx . xxxx xxxx . xxxx xxxx . xxxx xxxx

    • 最小:240.0.0.0

    • 最大:255.255.255.255
    • E类地址为军事、科学研究、保留地址等使用
  6. 特殊地址

    • 地址:0.0.0.0 // 范围0.0.0.0 - 0.255.255.255.255
      • 未指定的IP地址:如DHCP请求IP时借用0.0.0.0地址进行
      • 路由层面:全网所有地址
    • 地址:127.0.0.0 // 环回地址,范围127.0.0.0 - 127.255.255.255
      • 用于设备内部的TCP/IP协议栈的使用

快速换算

二进制在不同位的表达含义是不一致的,0表示永远不取值,1则表达的信息和不同的位数进行对应
所以最大位数为255.255.255.255,最小位数为0.0.0.0

二进制 1 1 1 1 1 1 1 1
乘方 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
十进制 128 64 32 16 8 4 2 1

例如换算192.168.1.111则算法为:128+64=192 128+32+8=168 1 64+32+8+4+2+1=111,换算为二进制为 11000000.10101000.00000001.01101111

例如换算11000000.10101000.00001001.01101011则算法为128+64=192 128+32+16=168 8+1=9 64+32+8+2+1=107,换算为十进制为192.168.9.107

公私网地址

公网地址:全球唯一,付费使用,需要向运营商申请
私网地址:所有组织机构都可以任意使用,无需申请、重复使用

私有地址范围:

10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

特殊地址范围:

127.0.0.0 - 127.255.255.255
0.0.0.0
255.255.255.255

子网掩码

子网掩码由网络位 + 主机位组成
IP地址 + 掩码 == 可以定义的网段范围
子网掩码中的网络位相同时,则称之为同网段,反之则称为不同网段

计算网段范围、网络位、主机位等,需要将IP地址与掩码转为2进制,掩码位为1的部分为网络位,为0的部分为主机位。如下

1
2
1100 0000 . 1010 1000 . 0000 0001 . 0110 1111			// 192.168.1.111
1111 1111 . 1111 1111 . 1111 1111 . 0000 0000 // 255.255.255.0

则IP地址192.168.1为网络位,111为主机位,可用主机号为255个

网段数 = 2的可变的网络位次方
主机数 = 2的可变的主机位次方 - 2 (减掉网络地址和 广播地址)

地址 网络位 掩码 主机位 网段范围 网段数量 每个网段可用主机数
A 8 255.0.0.0 24 0-127 2^7=128 2^24-2=16777214
B 16 255.255.0.0 16 128-191 2^14=16384 2^16-2=65534
C 24 255.255.255.0 8 192-223 2^21=2097152 2^8-2=254

网络、广播地址

可以使用在线网络计算器来验证自己算的对不对

网络地址:主机位全0的地址为网络地址,一般出现在路由表中,如192.168.1.0
计算方法:将IP与掩码进行按位与运算(网络位不变,主机位全0)

1
2
3
4
192.168.1.190/28
1100 0000 . 1010 1000 . 0000 0001 . 1011 1110 # 192.168.1.190
1111 1111 . 1111 1111 . 1111 1111 . 1111 0000 # 255.255.255.240
1100 0000 . 1010 1000 . 0000 0001 . 1011 0000 # 与运算:192.168.1.176

广播地址:主机位全1的地址为广播地址,用于本网段的所有主机通信,如192.168.1.255
计算方法:网络位不变,主机位全1

1
2
3
4
192.168.1.190/28
1100 0000 . 1010 1000 . 0000 0001 . 1011 1110 # 192.168.1.190
1111 1111 . 1111 1111 . 1111 1111 . 1111 0000 # 255.255.255.240
1100 0000 . 1010 1000 . 0000 0001 . 1011 1111 # 192.168.1.191

主机号计算方法:将掩码取反,再与IP地址进行与运算,或者使用IP地址-网络地址就能得到主机号

1
2
3
4
192.168.1.190/28
1100 0000 . 1010 1000 . 0000 0001 . 1011 1110 # 192.168.1.190
0000 0000 . 0000 0000 . 0000 0000 . 0000 1111 # 反掩码0.0.0.15
0000 0000 . 0000 0000 . 0000 0000 . 0000 1110 # 与运算:0.0.0.14

VLSM子网划分

VLSM可变子网掩码,通过网络位向主机位进行借位

位数 24 25 26 27 28 29 30
掩码 255.X.X.0 255.X.X.128 255.X.X.192 255.X.X.224 255.X.X.240 255.X.X.248 255.X.X.252
主机数 256 256-128=128 256-192=64 256-224=32 256-240=16 256-248=8 256-252=4
网段数 1 2 4 8 16 32 64

网段数:2^(位数-原始位数) ,如26位 == 2^(26-24)=4
可用主机数:2^(32-位数)-2,如26位 == 2^(32-26)-2=30

划分子网

将C类地址划分为6个子网,则子网掩码为2^2=4 < 6 < 2^3=8,所以掩码后八位为1110 0000,十进制为224
将C类地址划分为12个子网,则子网掩码为2^3=8 < 12 < 2^4=16,所以掩码后八位为1111 0000,十进制为240

规划子网示例

通过用户划分子网:2^x-1 >= 人数 x为主机位
划分子网先求最大值,保证先求一个子网,该子网可以满足地址数量最多的情况

部门 研发部 项目部 市场部 财务部
人数 100 58 27 15
掩码 25 26 27 27
范围 0-127 128-191 192-223 224-255
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
将192.1.1.0/24分配给以上4个部门
# 研发部:
2^7-2 >= 100 使用7个主机位,借1位
192.168.1.0-127/25 (0~127一共128个IP)

# 项目部
2^6-2 >= 58 使用6个主机位,在上面的基础上再借1位
192.168.1.128-191/26 (128~191一共64个IP)

# 市场部
2^5-2 >= 27 使用5个主机位,在上面的基础上再借1位
192.168.1.192-223/27 (192~223一共32个IP)

# 财务部
2^5-2 >= 15 使用5个主机位,在上面的基础上无需借位
192.168.1.224-255 (224~255一共32个IP)

掩码转换

如193.1.1.0/24将掩码转成25位,则

1
2
3
4
# 24位掩码
1100 0001 . 0000 0001 . 0000 0001 . 0000 0000 // 网络地址193.1.1.0/24
1100 0001 . 0000 0001 . 0000 0001 . 1111 1111 // 广播地址193.1.1.255/24
1111 1111 . 1111 1111 . 1111 1111 . 0000 0000 // 子网掩码
1
2
3
4
5
6
7
8
9
# 25位掩码,网络位向主机位借1位,借的位数有2^1种可能(0 1),所以是2个网段
# 可用地址范围为:193.1.1.1 - 193.1.1.127 2^7-2=126
1100 0001 . 0000 0001 . 0000 0001 . 0000 0000 // 网络地址193.1.1.0/25
1100 0001 . 0000 0001 . 0000 0001 . 0111 1111 // 广播地址193.1.1.127/25
1111 1111 . 1111 1111 . 1111 1111 . 1000 0000 // 子网掩码255.255.255.128,此时主机位为000 0000

1100 0001 . 0000 0001 . 0000 0001 . 1000 0000 // 网络地址193.1.1.128/25
1100 0001 . 0000 0001 . 0000 0001 . 1111 1111 // 广播地址193.1.1.255/25
1111 1111 . 1111 1111 . 1111 1111 . 1000 0000 // 子网掩码255.255.255.128,此时主机位为000 0000

如193.1.1.0/24将掩码转成26位,则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 26位掩码,网络位向主机位借2位,借的位数有2^2种可能,所以是4个网段
# 可用地址范围为:193.1.1.1 - 193.1.1.62 2^6-2=62
1100 0001 . 0000 0001 . 0000 0001 . 0000 0000 // 网络地址193.1.1.0/26
1100 0001 . 0000 0001 . 0000 0001 . 0011 1111 // 广播地址193.1.1.63/26
1111 1111 . 1111 1111 . 1111 1111 . 1100 0000 // 子网掩码255.255.255.128,此时主机位为00 0000

1100 0001 . 0000 0001 . 0000 0001 . 0100 0000 // 网络地址193.1.1.64/26
1100 0001 . 0000 0001 . 0000 0001 . 0111 1111 // 广播地址193.1.1.127/26

1100 0001 . 0000 0001 . 0000 0001 . 1000 0000 // 网络地址193.1.1.128/26
1100 0001 . 0000 0001 . 0000 0001 . 1011 1111 // 广播地址193.1.1.191/26

1100 0001 . 0000 0001 . 0000 0001 . 1100 0000 // 网络地址193.1.1.192/26
1100 0001 . 0000 0001 . 0000 0001 . 1111 1111 // 广播地址193.1.1.255/26

如193.1.1.0/24将掩码转成27位,则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 27位掩码,网络位向主机位借3位,借的位数有2^3种可能,所以是8个网段
# 可用地址范围为:193.1.1.1 - 193.1.1.30 2^5-2=30
1100 0001 . 0000 0001 . 0000 0001 . 0000 0000 // 网络地址193.1.1.0/27
1100 0001 . 0000 0001 . 0000 0001 . 0001 1111 // 广播地址193.1.1.31/27
1111 1111 . 1111 1111 . 1111 1111 . 1110 0000 // 子网掩码255.255.255.224,此时主机位为0 0000

1100 0001 . 0000 0001 . 0000 0001 . 0010 0000 // 网络地址193.1.1.32/27
1100 0001 . 0000 0001 . 0000 0001 . 0011 1111 // 广播地址193.1.1.63/27

1100 0001 . 0000 0001 . 0000 0001 . 0100 0000 // 网络地址193.1.1.64/27
1100 0001 . 0000 0001 . 0000 0001 . 0101 1111 // 广播地址193.1.1.95/27

1100 0001 . 0000 0001 . 0000 0001 . 0110 0000 // 网络地址193.1.1.96/27
1100 0001 . 0000 0001 . 0000 0001 . 0111 1111 // 广播地址193.1.1.127/27

1100 0001 . 0000 0001 . 0000 0001 . 1000 0000 // 网络地址193.1.1.128/27
1100 0001 . 0000 0001 . 0000 0001 . 1001 1111 // 广播地址193.1.1.159/27

1100 0001 . 0000 0001 . 0000 0001 . 1010 0000 // 网络地址193.1.1.160/27
1100 0001 . 0000 0001 . 0000 0001 . 1011 1111 // 广播地址193.1.1.191/27

1100 0001 . 0000 0001 . 0000 0001 . 1100 0000 // 网络地址193.1.1.192/27
1100 0001 . 0000 0001 . 0000 0001 . 1101 1111 // 广播地址193.1.1.223/27

1100 0001 . 0000 0001 . 0000 0001 . 1110 0000 // 网络地址193.1.1.224/27
1100 0001 . 0000 0001 . 0000 0001 . 1111 1111 // 广播地址193.1.1.255/27

CIDR无类域间路由

将多个小的子网用一个相对更大的地址范围进行概括,以此实现表项的优化

概括的地址不可写太多,否则寻址时不存在地址则会丢包,浪费资源

示例1:将10.24.0.0/24、10.24.1.0/24、10.24.2.0/24、10.24.3.0/24四个网段进行通告

  1. 将IP地址转换为二进制
1
2
3
4
0000 1010 . 0001 1000 . 0000 0000 . 0000 0000		10.24.0.0
0000 1010 . 0001 1000 . 0000 0001 . 0000 0000 10.24.1.0
0000 1010 . 0001 1000 . 0000 0010 . 0000 0000 10.24.2.0
0000 1010 . 0001 1000 . 0000 0011 . 0000 0000 10.24.3.0
  1. 自高位向低位进行对比,数位相同原封不动进行取值,一旦不同,停止比对行为且后方取值全部为0
1
2
3
4
5
0000 1010 . 0001 1000 . 0000 0000 . 0000 0000		10.24.0.0
0000 1010 . 0001 1000 . 0000 0001 . 0000 0000 10.24.1.0
0000 1010 . 0001 1000 . 0000 0010 . 0000 0000 10.24.2.0
0000 1010 . 0001 1000 . 0000 0011 . 0000 0000 10.24.3.0
0000 1010 . 0001 1000 . 0000 00|00 . 0000 0000 到第22位截至,后面全部取值为0
  1. 将相同位置取值完毕,转换为十进制,将相同位数取值为掩码缩写前缀
1
2
0000 1010 . 0001 1000 . 0000 00|00 . 0000 0000		10.1.0.0/22
1111 1111 . 1111 1111 . 1111 1100 . 0000 . 0000 255.255.252.0 (将网络位转掩码)

反向验证

1
2
3
4
5
使用10.24.0.0/22通告路由,转换地址如下
网络地址:0000 1010 . 0001 1000 . 0000 0000 . 0000 0000 10.24.0.0
广播地址:0000 1010 . 0001 1000 . 0000 0011 . 1111 1111 10.24.3.255
子网掩码:1111 1111 . 1111 1111 . 1111 1100 . 0000 0000 255.255.252.0
可用地址范围:10.24.0.1 ~ 10.24.3.255

image-20230506214042838

示例2:将10.24.0.0/24、10.24.1.0/24、10.24.2.0/24、10.24.3.0/24、10.24.4.0/24五个网段进行通告

1
2
3
4
5
6
7
8
9
10
11
12
0000 1010 . 0001 1000 . 0000 0000 . 0000 0000		10.24.0.0
0000 1010 . 0001 1000 . 0000 0001 . 0000 0000 10.24.1.0
0000 1010 . 0001 1000 . 0000 0010 . 0000 0000 10.24.2.0
0000 1010 . 0001 1000 . 0000 0011 . 0000 0000 10.24.3.0
0000 1010 . 0001 1000 . 0000 0100 . 0000 0000 10.24.4.0

# 最优通告
10.1.1.0/22 # 前4条
10.1.4.0/24 # 最后一条,独立出来优化

# 不优化通告(假如可以保证以后不会有5、6、7三个网段,就可以使用下面的通告方法,使用16位也行)
10.1.1.0/21 # 包括0~7,多出了5、6、7三个网段

ICMP

消息、编码类型

ICMP请求一般发送类型为8的Echo Request的请求,回复时类型为0的Echo Reply。以下的不可达报文设备厂商一般都会为安全考虑而隐藏不可达信息

网络不可达:到目的IP地址中所经过的某台设备上没有目的IP的路由,则网络不可达
主机不可达:所经过的设备上有目的IP的路由,但目的设备不存在或关机等。或者设备上使用策略或防火墙限制了ICMP协议,则主机不可达
协议不可达:网络都可达,但对方关闭了某个协议(如TCP、UDP),则协议不可达
端口不可达:网络都可达,但是端口没有开放(如80、443),则协议不可达
重定向:跨网段通信时,数据会发到网关,网关再去转发数据。如不是最优路径时,网关会发送一个ICMP报文给主机,让主机以后直接去找最优的下一跳地址,不用再去找网关了(嵌套报文)

类型 编码 描述
0 0 Echo Reply
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向
8 0 Echo Request
11 0 TTL超时

通信理论

同网段可以直接通信,不同网段不能直接通信

通信时发送端的主机会使用对方的IP地址跟自己的掩码进行计算,算出对方的网络地址
计算之后,将对方的网络地址和自己的网络地址进行比对,相同则认为是同一个网段,不同则反之

示例1

PC1: 192.168.1.1/25
PC2: 192.168.1.2/26

1
2
3
4
5
6
7
# PC1使用对方的IP跟自己的掩码进行计算
0000 0010 # IP地址后八位192.168.1.2
1000 0000 # 自己的掩码后八位,所以此时对方的网络地址为192.168.1.0

# PC1使用自己的IP跟自己的掩码进行计算
0000 0001 # IP地址后八位192.168.1.1
1000 0000 # 自己的掩码后八位,所以此时自己的网络地址为192.168.1.0
1
2
3
4
5
6
7
# PC2使用对方的IP跟自己的掩码进行计算(回程)
0000 0001 # IP地址后八位192.168.1.1
1100 0000 # 自己的掩码后八位,所以此时对方的网络地址为192.168.1.0

# PC2使用自己的IP跟自己的掩码进行计算
0000 0010 # IP地址后八位192.168.1.2
1100 0000 # 自己的掩码后八位,所以此时自己的网络地址为192.168.1.0

PC1认为PC2跟自己的网络地址一样,属于同一网段,可以通信
PC2认为PC1跟自己的网络地址一样,属于同一网段,可以通信

示例2

PC1: 192.168.1.1/25
PC2: 192.168.1.5/30

1
2
3
4
5
6
7
# PC1使用对方的IP跟自己的掩码进行计算
0000 0101 # IP地址后八位192.168.1.5
1000 0000 # 自己的掩码后八位,所以此时对方的网络地址为192.168.1.0/25

# PC1使用自己的IP跟自己的掩码进行计算
0000 0101 # IP地址后八位192.168.1.1
1000 0000 # 自己的掩码后八位,所以此时自己的网络地址为192.168.1.0/25
1
2
3
4
5
6
7
# PC2使用对方的IP跟自己的掩码进行计算(回程)
0000 0001 # IP地址后八位192.168.1.1
1111 1100 # 自己的掩码后八位,所以此时对方的网络地址为192.168.1.0/30

# PC2使用自己的IP跟自己的掩码进行计算
0000 0101 # IP地址后八位192.168.1.5
1111 1100 # 自己的掩码后八位,所以此时自己的网络地址为192.168.1.4/30

PC1认为PC2跟自己的网络地址一样,属于同一网段,可以通信
PC2认为PC1跟自己的网络地址不一样,不属于同一网段,不可以通信

ping

发送一次ICMP请求时,就会携带该请求的ID、组别(请求序号)、TTL值
如果ICMP请求得到回复时,目的IP就向请求的IP会回复一个相同请求ID、组别(请求序号)的一个数据包
如果ICMP请求没有得到回复,则表示不能到达(必须要有来有回才算通)

image-20230507163206344

tracert

使用tracert时TTL每经过一个三层设备就减1,当TTL值为0时,将会回复TTL超时,当到了要去的设备时,将会回复端口不可达

示例1:PC1 --> R1 --> R2 --> PC2

  1. 当PC1发送tracert路由追踪命令到PC2时,就会携带一个TTL值,假设初始TTL值为2时,当PC1向R1发送ICMP请求时,R1就会将TTL值减一并且向PC1回复R1左边接口的IP地址(R1 TTL为1)
  2. R1再将ICMP请求发送给R2,R2再将TTL值减一,此时R2的TTL值为0,R2将数据包丢弃,并且告知PC1 TTL值超时,回复R2左边接口的IP地址(R2 TTL为0)
  3. 所以PC1路由追踪的效果为 R1 —> R2

示例2:PC1 --> R1 --> R2 --> PC2

  1. 当PC1发送tracert路由追踪命令到PC2时,就会携带一个TTL值,假设初始TTL值为3时,当PC1向R1发送ICMP请求时,R1就会将TTL值减一并且向PC1回复R1左边接口的IP地址(R1 TTL为2)
  2. R1再将ICMP请求发送给R2,R2再将TTL值减一,且向PC1回复R1左边接口的IP地址(R2 TTL为1)
  3. R2再将ICMP请求发送给PC2,PC2再将TTL值减一,此时PC2的TTL值为0,PC2将数据包丢弃,并且告知PC1 TTL值超时,回复PC2接口的IP地址(PC2 TTL为0)
  4. 所以PC1路由追踪的效果为 R1 —> R2 —> PC2

ARP

ARP地址解析协议:在知道IP地址的情况下,求MAC地址(正向ARP)

广播域:广播报文所能传递的范围

- 交换机所有端口为同一个广播域(不划分vlan)
- 路由器每个接口都是一个广播域
- 广播报文无法穿越路由器三层接口(路由器隔离广播域)

通信基本流程

  1. 会检测对方的IP地址是否在同一个网段

  2. 相同网段时会查看本地的ARP映射表,如果存在该IP对应的MAC地址时就直接封装发送数据。如果没有就广播发送一个ARP请求

    1. 在报文的E2字段中有D-MACS-MAC内容

      1. D-MAC表示目标MAC地址,默认全F,表示广播(FF:FF:FF:FF:FF:FF)
      2. S-MAC表示自己的MAC地址(00-00-00-00-00-01)
  1. 在报文的ARP字段中有sender-ipsender-mactarget-iptarget-mac内容

    1. sender-ip表示自己的IP地址(1.1.1.1)
    2. sender-mac表示自己的MAC地址(00-00-00-00-00-01)
    3. target-ip表示对端IP(1.1.1.2)
    4. target-mac表示对端MAC,默认为全0(00-00-00-00-00-00)

    image-20230514144147169

  1. 广播包会强制让所有设备处理,所有设备查看target-ip内容,如果不是自己就丢弃

  2. 如果target-ip是自己,就向对方答应一个单播报文,报文内容相反(发送方接收方相反)

    1. sender-ip表示自己的IP地址(1.1.1.2)
    2. sender-mac表示自己的MAC地址(00-00-00-00-00-02)
    3. target-ip表示对端IP(1.1.1.1)
    4. target-mac表示对端MAC(00-00-00-00-00-01)
    5. E2的报文内容为:D-MAC(00-00-00-00-00-01)、S-MAC(00-00-00-00-00-02)

    image-20230514144901193

    image-20230507202516841

  1. 双方都获取到对应的MAC地址时,就会缓存ARP映射表(动态ARP缓存),下次请求前直接发送数据包,不需要发送ARP请求。动态ARP映射表默认老化时间20分钟,老化时间到时,会向目标发送三次ARP请求(单播,单播,广播),如果目标有回应则把ARP表项时间延长20分钟
  1. 不同网段时会查看本地的ARP缓存,如果存在网关IP对应的MAC地址时就直接封装发送数据。如果没有就广播发送一个ARP请求询问网关的MAC地址

    1. 没有配置网关且本地没有ARP缓存表时,对跨网段发送数据,数据会直接不出接口
    2. 配置网关后如果本地没有网关的ARP映射表,会广播ARP请求,询问网关的MAC地址

    image-20230514150439060

    image-20230514150534245

  1. 剩下步骤给网关处理数据的转发(路由)

ARP请求报文

image-20230514142003037

注意:在ensp中的arp老化时间是不足20分钟的,做实验的时候要注意

  1. 在PC1上执行arp -a可以看到本机缓存的ARP映射表,最开始ARP映射表是空的(可以使用arp -d命令请求ARP映射表)
1
2
PC>arp -a
Internet Address Physical Address Type
  1. 使用PC1 ping PC2时,PC1会广播一个ARP请求,当PC2收到请求时就会向PC1回应一个ARP请求。PC1就会获取到PC2的MAC地址,同时在本地缓存,然后再发送ICMP包(PC2不会缓存PC1的ARP表项)
1
2
3
4
5
PC>ping 1.1.1.2

Ping 1.1.1.2: 32 data bytes, Press Ctrl_C to break
From 1.1.1.2: bytes=32 seq=1 ttl=128 time=31 ms
From 1.1.1.2: bytes=32 seq=2 ttl=128 time=31 ms
1
2
3
4
PC>arp -a

Internet Address Physical Address Type
1.1.1.2 00-00-00-00-00-02 dynamic

image-20230514144206593

image-20230514144147169

  1. 再PING时PC1因为有ARP缓存的原因,就不会再次发送ARP请求,而是直接封装数据发送

image-20230514144703883

免费ARP

免费ARP用来检测IP地址是否冲突

免费ARP请求的源、目的地址都是自己,当同网段内有人回复该请求时,就表示IP地址已经被占用。假如没人回应该请求时,则表示该IP地址可以使用没有冲突。免费ARP会一直发送导致泛洪

ARP代理

同一网段,不同物理网络上的计算机之间,可以通过ARP代理实现相互通信

当主机A要访问主机B时,向主机B发送ARP请求,但主机B会接收不到(被路由器丢弃),则无法获取到MAC地址,数据包无法封装。如果在路由器的接口上开启ARP代理时,当主机A访问主机B时,路由器就会查询路由表,看看有没有主机B的路由,如果有的话就会转发APR包到主机B,同时向主机A回复说以后有到主机B的请求,MAC地址都写路由器接口的MAC地址

1
2
3
4
5
6
7
# 主机B如果要PING通主机A,就要在接口1上开启arp代理,如果只需要主机A通主机B,就只需要在接口0开启

[R1]int gi0/0/0
[R1-GigabitEthernet0/0/0]arp-proxy enable

[R1]int gi0/0/1
[R1-GigabitEthernet0/0/1]arp-proxy enable

image-20230521165229434

TCP

简介

TCP传输控制协议:面向连接的协议
基于应用级别的互访,就是端口到端口的互访。端口范围0-65535

TCP只适用于单播通信,可以给予建立好的连接灵活的对接下来的数据传递进行控制
在正式发送数据前会提前建立好一种虚拟的点到点的连接(单播模式)

TCP感知上层数据大小,对数据进行分片

缺点:无法很好的满足即时性的业务
优点:传递一些文件时,稳定性支持性高
对时间要求较高就用UDP,对稳定性比较高就使用UDP

TCP头部报头

TCP头部字段中的ACK跟Acknowledge Number时关联的,当ACK置位为1时,Acknowledge N umber才会生效有意义
Acknowledge Number称为ack,注意这里的大小写是有区别的!
Source Port源端口、Destination Post目的端口、SYN同步位、seq序列号、ack确认号
SYN为1表示想要建立,FIN为1表示想要断开

image-20230519125607307

连接过程

TCP在连接建立完毕之前是不会传递数据的,建立连接时使用三次握手

三次握手:

  1. 主机A向服务器发送SYN(同步位)数据段,置位为1(数据为1)。seq值为随机(序列号,第一次握手是才是随机)
  2. 服务器A向主机发送SYN(同步位)数据段,置位为1(数据为1)。seq值为随机(序列号),ACK置位为1,ack(确认号)置位为第一次握手的数据+1 (服务器A接收到了报文,且也要与主机A建立连接)
  3. 主机A向服务器A发送ACK数据段,置位为1(数据为1)。seq值为第二次握手的ack值,ack值为第二次握手的seq值+1

image-20230519125540064

确认机制:

超时重传机制:

RTTS加权的平均往返时间

四次挥手

  1. 前提:在主机A向服务器发送完所有数据后,服务器A会向主机A回应确认收到,主机A才会继续发送断开连接包
  2. 主机A向服务器A发送FIN断开连接包,服务器A收到后回复同意断开
  3. 服务器A再向主机A发送FIN断开连接包,主机A收到后回复同意断开
  4. 连接关闭

image-20230521131202627

UDP

简介

UDP用户数据包协议:面向无连接的协议

保证数据的进行,但UDP无法对于传输的数据进行控制,如果想对数据做控制,只能借用应用层
可以很好的满足实时性,但是相对TCP不够稳定

UDP头部报头

UDP头部仅占8字节,传输数据时没有确认机制
Checksum可以不要,剩下字段都是必要的,所以UDP头部也可以是6字节

image-20230521131800946

传输过程

使用UDP传输数据时,由应用程序根据需要提供报文到达确认、排序、流量控制等功能。对于网工方面,UDP传输不需要管

image-20230521132648731

image-20230521132743868

eNSP基础

视图

用户视图、系统视图、接口视图、协议视图

1
2
3
4
5
6
7
8
9
10
11
12
<HuaWei>		# 用户视图

<HuaWei> system-view # 切换到系统视图
[HuaWei] # 系统视图
[HuaWei] quit # 退回到上级视图(一级一级退)
<HuaWei> # 用户视图

[Huawei]int gi0/0/0 # 进入接口视图
[Huawei-GigabitEthernet0/0/0] # 接口视图

[Huawei]ospf 10 # 进入协议视图(ospf协议)
[Huawei-ospf-10] # 协议视图

命令等级

有些命令是需要管理级用户才能操作的,级别越高权限越大。低等级用户执行不了高等级命令

用户等级 命令等级 名称
0 0 访问级
1 0 and 1 监控级
2 0,1 and 2 配置级
3-15 0,1,2 and 3 管理级

远程登录时用户的默认等级为0

1
2
3
[Huawei]user-interface vty 0 4		# 远程管理,允许5个终端同时登录
[Huawei-ui-vty0-4]authentication-mode password # 认证模式为密码认证
[Huawei-ui-vty0-4]user privilege level 3 # 指定用户等级为3级,默认0

常用命令

常用命令

1
2
3
4
sysname 设备名			# 设备重命名
undo 命令 # 删除命令
quit # 退出
undo terminal monitor # 关闭日志(烦人的提示信息)

查看配置

1
2
3
4
display current-configuration 		# 查看当前设备所以配置
display this # 查看当前配置(在接口或协议下)
display ip int br # 查看接口IP
display ip routing-table # 查看路由表

路由基础

基础知识

每个路由器上都有一个路由表,路由器寻址转发时查询路由表,根据路由进行相关的转发

设备公共路由表下默认都会有下面的四条路由(没有转发价值),掩码32位的路由为主机路由,其他掩码都为网段路由

优先级:形成路由协议的优先级数值
开销值:
下一跳地址:数据离开本路由器需要抵达的地址
出接口:去往下一跳地址,自己的设备应该从哪个接口发出

1
2
3
4
5
6
7
8
9
10
11
12
13
[Huawei]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public # 公共路由表
Destinations : 4 Routes : 4

# 目的网络/掩码 协议 优先级 开销值 下一跳 出接口
Destination/Mask Proto Pre Cost Flags NextHop Interface

127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 # 网络地址
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 # 私有本地地址
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 # 广播地址
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 # 特殊广播地址

路由表的形成

路由加表

  1. 最优加表,直连优先级0、静态优先级60、
  2. 如果目的地网络及掩码信息不一致,则都会全部加表,如果一致的情况下才会触发比较
    1. 优先级:优先级越小越优
    2. Cost:开销值越小越优
    3. 优先级与Cost都一致时称为等价路由,都会加表
  3. 直连路由/静态路由的Cost值都为0,路由协议要一样比较Cost值才有意义

直连路由

给设备接口配置IP后,会自动生成该接口IP的主机路由、接口广播地址、接口网络地址
接口物理链路、协议必须是UP才会有路由
自连路由无法进行非直连的通信

1
2
[Huawei]int gi0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 12.0.0.2 255.255.255.252
1
2
3
4
5
6
7
8
9
10
[Huawei]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost Flags NextHop Interface

12.0.0.0/30 Direct 0 0 D 12.0.0.2 GigabitEthernet 0/0/0 # 网络地址
12.0.0.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/0 # 主机路由
12.0.0.3/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/0 # 广播地址

静态路由

R1添加R2、R3、R4下的静态路由,由于三条路由的掩码不一致,所以三条路由都会出现在路由表上

1
2
3
192.168.1.0/24  Static  60   0          RD   1.1.1.2         GigabitEthernet 0/0/0
192.168.1.0/25 Static 60 0 RD 2.1.1.2 GigabitEthernet 0/0/1
192.168.1.0/30 Static 60 0 RD 3.1.1.2 GigabitEthernet 0/0/2

最长掩码匹配:假如有一条数据要发往192.168.1.2,则R1上的三条路由都可以被匹配上(拿IP跟自己的掩码计算,得出网络号都为1.0),则会优先发给掩码短的下一跳。因为主机位短、主机数量少、范围小则更加准确

1
192.168.1.0/30  Static  60   0          RD   3.1.1.2         GigabitEthernet 0/0/2

image-20230521152940703

动态路由协议:

  1. IGP内部网关协议:在AS自治系统内(OSPF、RIP、ISIS)
  2. EGP外部网关协议:在AS自治系统外(BGP)

静态路由

静态路由

格式

静态路由的下一跳地址要可达,不然没意义
静态路由的优先级默认为60

1
ip route-static 目的IP 掩码 下一跳地址

示例

目的:实现全网通,如果只需要业务网段能通信,则可以省略R1/R3的设备互联网段的路由

1
2
3
4
[R1]dis cu | i ip rou
ip route-static 23.1.1.0 255.255.255.252 12.1.1.2 # 可省略
ip route-static 192.168.2.0 255.255.255.0 12.1.1.2
ip route-static 192.168.3.0 255.255.255.0 12.1.1.2
1
2
3
[R2]dis cu | i ip rou
ip route-static 192.168.1.0 255.255.255.0 12.1.1.1
ip route-static 192.168.3.0 255.255.255.0 23.1.1.2
1
2
3
4
[R3]dis cu | i ip rou
ip route-static 12.1.1.0 255.255.255.252 23.1.1.1 # 可省略
ip route-static 192.168.1.0 255.255.255.0 23.1.1.1
ip route-static 192.168.2.0 255.255.255.0 23.1.1.1

image-20230521163927715

默认路由

默认路由就是特殊的静态路由
目的地址与掩码都为0时,该路由就为默认路由(缺省路由),该路由匹配所有IP地址
默认路由匹配顺序最劣,本地没有目标的路由时,才会考虑默认路由

1
ip route-static 0.0.0.0 0 下一跳地址

浮动路由

浮动路由就是特殊的静态路由,他配置了静态路由的优先级,当出口1的线路异常时,出口2的线路就会代替上去
两条线路的带宽不一样大时,不能做负载均衡配置。一般备用线路的带宽会小于主线路(成本问题)

1
ip route-static 0.0.0.0 0 下一跳地址 preference 优先级
1
2
3
# 示例:让所有流量优先走电信(1.1.1.1),当电信线路异常时就走联通线路(2.2.2.2)
ip route-static 0.0.0.0 0 1.1.1.1 preference 60 # 静态默认优先级为60,所以也可以不配置优先级
ip route-static 0.0.0.0 0 2.2.2.2 preference 100

示例

需求:优先走电信线路,当电信线路DOWN时,走联通线路,当电信线路恢复时,走电信线路

1
2
3
[GW]dis cu | i ip rou
ip route-static 0.0.0.0 0.0.0.0 1.1.1.2
ip route-static 0.0.0.0 0.0.0.0 2.2.2.2 preference 100

正常情况下访问外网时走的是电信线路

1
2
3
4
5
6
[GW]tracert 100.100.100.100

traceroute to 100.100.100.100(100.100.100.100), max hops: 30 ,packet length: 4
0,press CTRL_C to break

1 1.1.1.2 30 ms 20 ms 20 ms

当手动关闭电信线路时,走的是联通线路,当电线线路恢复时,又走电信线路

1
2
3
4
5
6
[GW]tracert 100.100.100.100

traceroute to 100.100.100.100(100.100.100.100), max hops: 30 ,packet length: 4
0,press CTRL_C to break

1 2.2.2.2 30 ms 10 ms 20 ms

GW的路由表。华为去锐捷不同,配置多条默认路由时,华为路由表显示一条默认路由,锐捷可以显示多条

1
2
3
4
5
# 电信线路可用时,优先级为60
0.0.0.0/0 Static 60 0 RD 1.1.1.2 GigabitEthernet0/0/0

# 使用联通线路时,优先级为100
0.0.0.0/0 Static 100 0 RD 2.2.2.2 GigabitEthernet 0/0/1

image-20230521200832926

路由环路

两个或多个设备互相指定默认路由时,并且访问一个双方都不知道的IP地址,就会出现路由环路

R1因为没有1.2.3.4的路由,就会选择默认路由发给R2,R2也没有这个IP的路由,就会选择默认路由发给R1,如此反复,直到TTL值为0丢包

1
2
3
4
5
# R1
0.0.0.0/0 Static 60 0 RD 1.1.1.2 GigabitEthernet 0/0/0

# R2
0.0.0.0/0 Static 60 0 RD 1.1.1.1 GigabitEthernet 0/0/0
1
2
3
4
5
6
7
8
9
[R1]ping 1.2.3.4
PING 1.2.3.4: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out

# 发送了5组ICMP包,所以会有5个超时的报文

image-20230521160142213

image-20230521160306273

image-20230521155833046

OSPF

概念

AS自治系统:

  1. 网络系统==网络架构
  2. 统一的管理者后见的网络系统叫做一个AS
  3. 公有AS:网络系统,需要申请AS号
  4. 私有AS:不需要申请AS号

OSPF与RIP的区别

OSPF是开放式最短路径优先协议,是IETF定义的一种基于链路状态内部网关路由协议(IGP)
RIP是一种基于距离矢量算法的路由协议,存在收敛慢、易产生路由环路、可拓展性差等问题,已经逐步被OSPF取代。

RIP通过邻居传递,如R3有3.3.3.3的路由就会发给R2,R2再将路由发给R1,当R1要访问3.3.3的时候就会去找R2,当R2要访问3.3.3.3时就会去找R3。谁传路由给他,他就把数据发给谁(只知道路由的传递,不知但路由具体的始发信息)

OSPF先进行信息同步,在R1、R2、R3上都互有三台设备的信息(信息的产生者[R3]、信息产生者的链路状态[以太网链路]、链路的开销等),然后再通过SPF算法计算路由,找最短最优路径发送。OSPF通过LSA泛洪传递链路状态信息,运行OSPF的接口收到一份链路状态信息后,就会发送给除收到信息的端口外的其他运行OSPF的接口发送一份链路状态信息,信息同步后再计算路由

SPF算法:最短路径优先算法(带宽越大越优先,cost越小越优先)

image-20230611205812390

运行OSPF协议的设备会产生的参数

  1. LSA:链路状态通告(链路状态信息,只在相同区域中同步)
  2. LSDB:链路状态数据库,用于存放LSA
  3. 邻居/邻接:必须保证设备能够建立起该关系,才可以保证接下来的同步

DR/BDR/DR-OTHER

  1. DR是整个OSPF网络的大哥,它会跟其他运行了OSPF的设备建立Full邻接关系
  2. BDR是整个OSPF网络的二哥,它会跟其他运行了OSPF的设备建立Full邻接关系,是DR的备份路由器,当DR挂了就顶替上去变DR
  3. DR-OTHER是整个OSPF网络的小弟,它跟其他小弟之间只建立邻居关系,只在2-way状态
  4. 两个设备运行OSPF必须要有一个DR,不能所有的优先级都设置为0,否则状态卡在2way
  5. DR/BDR跟主从是没有关系的,DR/BDR针对整个网络,每个广播域中都会选举DR/BDR
  6. DR/BDR是接口状态,2-way跟full是链路状态
  7. 注意:这三种状态的选举都是在同一个网段里面选举,不同网段都会单独选举这三个

DR/BDR的选举

  1. 在2-way状态之后、Exstart状态之前进行选举,初始所有设备都为DR-OTHER
  2. 比较接口优先级(Router Priority),越大越优。默认1,范围0~255,人为修改为0表示不参与选举(DR-OTHER)
  3. 比较设备的Router ID,越大越优
  4. 先选一个BDR,当网络上没优先级或RID比他大的设备时,就会变成DR,然后再选举一个BDR
  5. 当DR挂掉后BDR变成DR,再从其他设备中选一个BDR
  6. 在4个Hello包后就会选举出DR/BDR,每个Hello间隔10s,共40s
  7. 当DR/BDR选举完后,如果出现一个比现在的DR/BDR优先级高的接口,也不会改变DR/BDR状态(先下手为强)。
  8. 当DR挂掉后又活过来,优先级都比不过BDR的话,就变成DR-OTHER状态
1
2
int 接口
ospf dr-priority 优先级 # 修改dr优先级,默认1,范围0~255

image-20230710110208877

五种报文

OSPF报文封装在IP报文中,协议号为89

IP Header OSPF Protocol Packet

OSPF报文在一个广播域内进行传递

OSPF报文类型有5种:Hello报文、DD报文、LSR报文、LSU报文、LSACK报文

  1. Hello报文:建立、维护邻居关系(报文在Down、Init、2-way状态下活跃)

image-20230611225029499

image-20230611231047546

  1. DB Description报文:交互摘要(报文在Exstart、Exchange状态下活跃)
    1. 第一组DD报文不包含LSA摘要,用于选举主从(Router ID大的为主)
    2. 从设备先发起LSA摘要的交互信息,主设备再发起LSA的摘要信息
    3. 从设备发送确认报文

image-20230611232748977

image-20230611234359755

Interface MTU:指示在不分片的情况下此接口最大可发出的IP报文长度,在两个邻居发送DD报文中包含MTU参数,如果收到的DD报文中MTU值不一致则会丢弃该报文,一直卡在Exstart、Exchange状态;默认华为设备未开启MTU检查,如果开启后默认MTU值为1500

1
2
3
4
5
int 接口
ospf mtu-enable # 开启mtu检查
mtu 值 # 指定mtu值,默认1500

display ospf peer # 查看邻居的MTU值

image-20230711113157103

  1. LS Request报文:自己没有对方的LSA信息时,就会发起LSR报文去请求自己没有的信息(报文在Loading状态下活跃)

  2. LS Update报文:回复对方没有的LSA详细信息(报文在Loading状态下活跃)

  3. LS Acknowledge报文:回复确认收到详细信息,并将状态置为Full(报文在Loading状态下活跃)

image-20230611235745624

七种状态

OSPF七种状态:当前OSPF协议与其他设备的OSPF处于什么状态(对方的状态)

  1. Down:协议刚开启时的状态
  2. Init:初始化状态,刚收到hello包时的状态
  3. 2-way:建立了邻居关系,收到数据包中携带Active Neighbor活跃邻居字段时的状态
  4. Exstart:交换信息初始化,发送DD报文
  5. Exchange:交换信息,发送DD报文交换LSA摘要信息
  6. Loading:加载,对方发送的摘要信息没有自己需要的信息时,就会将该设备置为Loading状态
  7. Full:建立了邻接关系,互为知道LSDB时的状态

image-20230611231202009

邻接关系建立

重点请求是同步进行的,不是你发送时我等待接收你的请求才答复,而是同时可以发送或接收,可以同时进行的

设备A(1.1.1.1)中有路由条目1、2、3、5,设备B(2.2.2.2)中有路由条目2、4、5、6

  1. 建立邻居(双方只发送Hello包时)
    1. 首先设备A、B都开始以组播的形式发送OSPF Hello报文,此时双方的状态都为DOWN
    2. 设备收到任意的Hello报文时,就会将状态变为Init初始化状态,这里的Hello报文不携带Active Neighbor字段
    3. 当收到Hello报文中携带Active Neighbor字段且内容为自己的Router ID时,状态变为2-way
  2. DR/BDR的选举

    1. 从Hello报文中携带的接口优先级与Router ID来选举DR/BDR/DR-OTHER
    2. 注意DR/BDR跟OSPF链路的主从是没有任何关联的
  3. 主从选举(状态为Exstart

    1. 设备A、B初始都觉得自己是主设备,就会向对方发送一个空的DD报文(不包含LSA描述)
    2. 收到对方的DD报文时,就会拿对方的OSPF Router ID与自己的对比,哪个路由ID大哪个就是主设备,设备B为主设备
    3. 注意这里的主从选举跟DR、BDR选举不是一个东西;DR、BDR是从一个网段中选举,主从在两个相邻的OSPF邻居之间选举一个主从设备
  4. LSA摘要传递状态为Exchange
    1. 当确认主从设备后,从设备A会先发送一个DD报文来表示自己是从设备,并且报文中携带自己的LSA摘要信息(1、2、3、5),此时状态为Exchange
    2. 主设备B也会发送一个DD报文给从设备A,并且报文中携带自己的LSA摘要信息(2、4、5、6),此时状态为Exchange
    3. 主从设备收到对方的DD报文时就会与自己本地的LSA摘要信息进行比对,当本地没有对方的LSA摘要时,就会向对方发送LSR请求报文(注意请求是同步进行的,没有谁先谁后),设备收到LSR请求报文时,就会回应LSU更新报文,此时状态为Loading
    4. 举例:当设备B收到设备A的DD报文中的LSA摘要时,发现自己没有对方的1、3路由,就会向对方发送LSR请求报文,来索要这两条路由的详细信息。设备A收到设备B的LSQ请求报文后,就会向设备B发送LSU更新报文,报文中携带设备A有设备B没有的LSA的详细信息
  5. 邻接状态
    1. 当收到对方发来的LSU更新报文时,就会回复一个LSAck报文来表示自己收到了对方发来的LSA详细信息,此时状态为Loading
    2. 举例:当设备B收到设备A的LSU更新报文时,就会向设备A回复LSAck报文来表示收到了LSA详细信息,此时状态为Loading
    3. 当双方都收到LSAck报文时,状态更新为Full邻接状态

image-20230611211249127

OSPF配置

OSPF配置的常用参数

  1. Process ID进程号:本设备表示OSPF进程的(仅在本地),OSPF进程相互独立
  2. Router ID路由ID:
    1. 多设备路由ID不能一样(身份标识)
    2. 人为配置:手动配置的
    3. 自动生成:没配置路由ID时,就会自动使用系统的路由ID(设备上第一个UP的接口IP地址[环回或物理接口])
    4. OSPF路由ID确定后,除非设备重启或ospf进程重置,否则不会改变
  3. area区域号:
    1. 区域号相同则视为相同区域
    2. 骨干区域:区域0为骨干区域,ospf必须要有区域0
    3. 非骨干区域:不为0的区域
    4. 不同区域之间的数据不会同步
  4. 接口宣告
    1. ospf建立关系需要借助接口
    2. 区域下宣告:使用network参数指定
    3. 接口下宣告:必须保证全局开启ospf并创建该进程与区域
1
2
3
4
5
6
7
8
9
10
11
ospf router-id x.x.x.x	 # 配置router-id,需要重置ospf进程
display router id # 查看设备router id
display ospf lsdb # 查看LSDB
display ospf routing # 查看ospf的路由表
display ospf peer # 查看ospf配置
display ospf peer brief # 查看ospf配置(简明)
display ospf int # 查看OSPF信息(DR|BDR优先级等)
display ospf int 接口 # 查看接口的OSPF简明信息
display ospf int 接口 verbose # 查看接口的OSPF详细信息
dis default-parameter ospf # 查看osfp的缺省值
reset ospf process # 重置OSPF进程(用户视图下)
1
2
3
4
# 在区域下宣告
ospf 进程号 router-id 路由id
area 区域号
network 接口信息 反掩码
1
2
3
4
5
# 在接口下进行ospf宣告(使用接口宣告优先于network命令宣告)
ospf 进程号 router-id 路由id
area 区域号
int 接口
ospf enable 进程号 area 区域号

OSPF认证

OSPF同时使用区域认证和接口认证时,以接口认证为准(越精确越优先)

1
2
3
# 接口认证(连接的链路接口需要配置认证)
int 接口
ospf authentication-mode md5 keyid号 密码 # 默认为密文
1
2
3
4
# 区域认证
ospf 进程号
area 区域号
authentication-mode md5 keyid号 密码 # 默认为密文

image-20230710145746739

image-20230710145956754

交换基础

概念

交换机接口具有自动协商的行为:工作方式、端口速率的协商,向下兼容

自动学习:记录接口收到数据的源MAC地址,接入信息

划分子网对于广播流量是没有作用的,当PC1发送一个广播报文,默认所有二层接口都会收到该报文(一个交换机默认同一个广播域)

发送单播流量可以分隔该报文,因为二层设备只看MAC地址,不看IP

动态MAC地址老化时间

  1. 老化时间为300秒(5分钟)
  2. 当有数据流经该接口时,就会重新开始计时
  3. 交换机一个接口可以对应多个MAC,当该接口Down掉时,对应的MAC地址表也会被删除

当收到未知单播数据帧时(交换机不知道目的MAC地址的接口)

  1. 查看MAC地址表,存在则进行转发
  2. 不存在则进行泛洪

当收到已知单播数据帧时(交换机知道目的MAC地址的接口)

  1. 直接转发
1
display mac-address		# 查看MAC地址表

VLAN

概念

虚拟局域网,设备上的一个VLAN可以理解成一个虚拟的交换机(隔离广播域)

VLAN的取值范围为1~4094,0跟4095作为保留,共4096个vlan

交换机所有接口默认为VLAN 1

VID是报文中Tag下的VLAN ID,PVID是交换机接口分配的VLAN号

VLAN帧格式

当接口划分VLAN后,传输数据时就会打上Tag标签,Tag下有个VLAN ID字段用来存储vlan号,通过该字段区分不同的VLAN

image-20230614220910211

不同接口类型对VLAN数据的处理

Access

  1. access接口一般用于接入终端
  2. 一个access接口只能有一个vlan
  3. 交换机泛洪时会向除了接收端口外的其他能够转发本VLAN的端口进行泛洪
  4. 交换机收到报文时判断是否有Tag,没有就会打上Tag标签,有就会判断VID与PVID是否相同,相同则接收,不同则丢弃
  5. 交换机发送报文时会剥离Tag再发送

Trunk

  1. Trunk一般用于设备与设备间的通信(干道类型)
  2. Trunk允许多个不同VLAN通过,默认只放行vlan 1
  3. 交换机转发数据经过Trunk接口时,就会比较VID与PVID是否相同,相同时就会剥离Tag标签再发送,不一样时就会保留Tag标签再发送

hybrid

  1. 杂合类型、混合,默认交换机接口为hybrid类型,默认Tag打上vlan 1且允许vlan 1 通过
  2. 接收到报文时,如果没有携带Tag就打上PVID的Tag,有携带就保留,再判断是否允许VID通过,不允许则丢弃,允许则接收
  3. 交换机转发数据经过hybrid接口时,判断配置发送帧时是否携带Tag,如果携带Tag就保留发送,没有携带Tag就剥离Tag发送
1
2
3
# 代表着接口发出数据时对标签的处理动作,该接口是否允许指定vlan通过
tag # 保留报文原有vlan id 发送
untag # 剥离报文原有vlan id 发送

VLAN配置

Trunk接口配置命令

  1. 交换机下联的接口为Access,与设备互联的接口为Trunk且放行指定的VLAN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# S1&S2配置

vlan batch 10 20

interface GigabitEthernet0/0/1
port link-type access # 转access口
port default vlan 10 # 划分vlan

interface GigabitEthernet0/0/2
port link-type access
port default vlan 20

interface GigabitEthernet0/0/3
port link-type trunk # 转trunk
port trunk allow-pass vlan 10 20 # 允许vlan 10 20 通过

image-20230615220431606

image-20230615223027636

hybrid接口配置命令

  1. 华为交换机接口默认为hybrid
  2. 一般来说连接终端的接口配置untagged,与交换机互联的接口配置tagged
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# S1配置

vlan batch 10 20 30 # 批量创建VLAN

interface GigabitEthernet0/0/1
port hybrid pvid vlan 10 # 配置接口pvid
port hybrid untagged vlan 10 30 # 配置允许通过的vlan id

interface GigabitEthernet0/0/2
port hybrid pvid vlan 20
port hybrid untagged vlan 20 30

interface GigabitEthernet0/0/3
port hybrid tagged vlan 10 20 30
1
2
3
4
5
6
7
8
9
10
# S1

vlan batch 10 20 30 # 批量创建VLAN

interface GigabitEthernet0/0/1
port hybrid pvid vlan 30 # 配置接口pvid
port hybrid untagged vlan 10 20 30 # 配置允许通过的vlan id

interface GigabitEthernet0/0/2
port hybrid tagged vlan 10 20 30 # 配置允许通过的vlan id

image-20230615212150299

单臂路由

理论

  1. 路由器物理接口默认为三层接口,三层接口不能配置二层的vlan,也无法识别Tag,就会直接丢弃
  2. 路由器sub子接口能够配置IP、处理Tag,兼备二层功能。接收带Tag的数据就剥离Tag,再发送数据时就打上子接口的Tag
  3. 路由器子接口共用物理接口MAC地址
  4. 缺陷:消耗路由器运算能力,打标剥标的工作应该给三层交换机完成,不要让路由器负责二层的工作

步骤

  1. 二层交换机划分vlan,将上联口改为Trunk,且放行指定VLAN、
  2. 路由器下联口配置子接口,子接口配置IP作为网段的网关地址,且指定vlan id
  3. 华为路由器子接口默认关闭发送广播报文的功能,需要手动开启
1
2
3
4
5
6
7
8
9
10
11
# R1

interface GigabitEthernet0/0/1.1 # 进入gi0/0/1的子接口1
dot1q termination vid 10 # 封装vlan 10
ip address 192.168.1.254 255.255.255.0 # 配置子接口IP
arp broadcast enable # 开启arp广播

interface GigabitEthernet0/0/1.2
dot1q termination vid 20
ip address 192.168.2.254 255.255.255.0
arp broadcast enable
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# S1

vlan batch 10 20
interface Ethernet0/0/1
port link-type access
port default vlan 10

interface Ethernet0/0/2
port link-type access
port default vlan 20

interface Ethernet0/0/4
port link-type trunk
port trunk allow-pass vlan 10 20

image-20230616181535343

VLANIF

理论

  1. vlanif接口是一种三层的逻辑接口,能够实现不同vlan、不同网段的用户进行三层互通
  2. 终端发送跨网段数据时就会找到网关,由于目的网段也在三层设备上,三层发送数据时就直接查路由表,找到对应的vlan后就将数据发送到vlan接口上

步骤

  1. 创建并划分接口vlan
  2. 配置vlan的IP地址
1
2
3
4
5
6
7
8
9
10
11
12
13
vlan batch 10 20

interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20

interface Vlanif10
ip address 192.168.1.254 255.255.255.0
interface Vlanif20
ip address 192.168.2.254 255.255.255.0

image-20230616183422579

image-20230616183450882

STP生成树

BPDU报文

配置BPDU报文

PVI值:0代表STP、2代表RSTP、3代表MSTP
Root ID:根桥ID(老大),默认自己为根桥,等协商完成后就会变成其他或自己的根桥ID
RPC:根路径开销,开销越小越优先
Bridge ID:桥ID,参数为自己的ID,表示数据从此设备发出
Port ID:接口ID,表示数据从指定的接口发出
Message Age:消息年龄,数据会从根桥首发,每经过一个交换机设备就+1
Max Age:最大年龄,当Message Age到达最大年龄时,就会丢弃(默认20)
Hello Time:根桥每2秒会发送一个BPDU表示自己是根桥且还存活

image-20230620153553505

TCN BPDU报文(通知拓扑改变用的)

  1. 当下游交换机的接口变成Forwarding状态时,就会向上联设备发送TCN BPDU报文
  2. 上联交换机收到报文后会向下游交换机发送配置BPDU报文,会在Flags标志位的TC字段置为1,表示收到且告诉下游交换机不要再发送
  3. 上联交换机就会向他的上联交换机执行同样的操作,直到根桥了解情况后停止发送,表示告诉全网设备需要更新MAC地址表了

选举过程

  1. 根桥选举
    1. 比较Bridge ID,16位的优先级 + 48位的交换机背板MAC地址,越小越优先
    2. 优先级默认32768,手动指定优先级需要为4096的倍数,最优为0
    3. 优先级相同时比较MAC地址,越小越优先。优先的设备直接抢占为根桥
  2. 根端口选举
    1. 根端口指距离根桥最近的一个端口,根桥自己没有根端口
    2. 比较入方向的根路径开销(RPC),默认cost为200000,越小越优先且为根端口
    3. RPC相同时,比较上联设备的Bridge ID以及交换机背板MAC地址,越小越优且为根端口
    4. 如果还是比较不出来(两个设备做STP的情况),就比较对端接口优先级(默认128,越小越优),不行再比较端口号(STP通过端口编号生成端口号)
  3. 指定端口选举
    1. 根桥上所有端口都是指定端口
    2. 每个链路上只能有一个指定端口,根端口对面的端口一定是指定端口
    3. 比较根路径开销,开销小的为指定端口
    4. 开销一样时比较Bridge ID,16位的优先级 + 48位的交换机背板MAC地址,越小越优先
  4. 剩下端口自动阻塞
    1. 参与STP的其他端口如果没有被选举则直接阻塞
    2. 端口被阻塞时只能接收BPDU报文,不转发用户数据

STP端口状态

  1. 端口UP或使用了STP,就会从Disabled状态进入到Blocking状态
  2. 端口被选举为根端口或指定端口,就会进入Listening状态
  3. 端口的Forward Delay定时器超时(30s),就会进入Learning/Forwarding状态
  4. 端口不再是根端口或指定端口时,就会进入Blicking状态
端口状态 描述
Disabled 端口为Down,不处理BPDU报文,不转发用户流量
Listening 过渡状态,开始生成树计算,端口接收发送BPDU,不转发用户流量
Learning 过渡状态,建立无环的MAC地址转发表,不转发用户流量
Forwarding 端口接口发送BPDU,也转发用户流量,只有根端口、指定端口才能进入该状态
Blocking 端口仅接收处理BPDU,不转发用户流量

配置示例

命令

1
2
3
4
5
6
7
8
9
10
11
stp enable		# 开启生成树协议,默认开启
stp mode stp # 修改stp模式为stp,默认mstp
stp priority 优先级 # 配置设备STP优先级
stp root priority # 配置设备为根桥,等同于优先级0
stp root secondary # 配置设备为备根桥
stp edged-port enable # 非参与STP的端口配置为边缘端口,不接收BPDU报文

int gi0/0/0
stp cost 接口cost值 # 配置接口开销值

disable stp # 查询stp桥信息

配置示例

  1. S1交换机因为优先级小所以选举为根桥
  2. S3的Bridge ID小于S2,所以选举为指定端口
  3. 其他端口也就是S2的1口为阻塞端口
1
2
3
# S1
stp mode stp
stp priority 4096
1
2
# S2/S3
stp mode stp

image-20230621183207968

image-20230621182531276

image-20230621182654825

image-20230621183058183

修改接口开销值(默认20w),达到修改根端口的目的

  1. S2的2口到达根桥的开销为50w(S2-02口)
  2. S2的1口到达根桥的开销为20w(S3-01口)+ 20w(S2-01口)=40w,所以1口变为根端口
1
2
3
# S2
int e0/0/2
stp cost 500000

image-20230621184850895

链路聚合

链路聚合模式

  1. 手工负载分担模式:华为私有协议(默认),所有活动接口都从参与数据转发、负载流量
  2. LACP模式:共有协议,支持链路备份(备用)

image-20230621215108469

配置

特点:提升带宽、提高可用性、负载均衡

Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、流控必须一致,链路聚合最大为8条

1
2
3
4
5
6
7
# 二层聚合
int eth-trunk 1 # 创建聚合组1
trunkport gi0/0/1 # 将接口加入聚合组
mode manual load-balance # 指定接口为手工分担模式(默认)

int gi0/0/1
eth-trunk 1 # 方法2:加入聚合组1
1
2
3
4
5
6
7
8
# 三层聚合
int eth-trunk 1 # 创建聚合组1
undo postswitch # 关闭二层接口
mode manual load-balance # 指定接口为手工分担模式(默认)
ip add xx.xx.xx.xx xx # 配置IP地址

int gi0/0/1
eth-trunk 1 # 加入聚合组1
1
2
# 验证
dis int Eth-Trunk 1 # 查看聚合组状态

image-20230621221341517

ACL

理论

  1. 华为ACL默认为放行全部
  2. 一个ACL列表中可以定义多个不同规则,再根据规则执行具体动作
  3. 一个接口同方向只能挂一个ACL,不同方向分别能挂一个ACL
分类 编号范围 参数
基本ACL 2000~2999 源IP地址等
高级ACL 3000~3999 源IP、目的IP、源端口、目的端口等
二层ACL 4000~1999 源MAC、目的MAC、以太帧协议类型等

ACL应用顺序

  1. 定义ACL匹配参数
  2. 定义匹配参数的动作
  3. 将ACL挂接在指定接口下
1
2
3
4
# 给接口指定访问控制列表
int gi0/0/1
traffic-filter outbound acl acl编号 # outbound表示出去
traffic-filter inbound acl acl编号 # inbound表示进去

基本ACL

1
2
3
4
5
6
7
8
9
# 创建acl访问控制列表(从2000开始)
acl acl编号

# 允许指定网段或IP访问
rule permit source 源IP或网段 反掩码

# 禁止指定网段或IP访问
rule deny source 源IP或网段 反掩码
rule deny # 禁止所有网段IP访问
1
2
3
4
5
6
7
8
9
10
11
# 示例
# 只允许192.168.1.10访问
rule permit source 192.168.1.10 0
rule deny

# 只允许192.168.1.0网段访问
rule permit source 192.168.1.0 0.0.0.255
rule deny

# 禁止某个IP访问
rule deny source 192.168.1.10 0

高级ACL

1
2
3
4
5
6
7
8
# 禁止某个IP或网段访问服务
rule deny tcp source 源IP或网段 反掩码 destination-port eq 服务

# 禁止某个IP或网段访问目标IP或或网段服务
rule deny tcp source 源IP或网段 destination 目标IP或网段 反掩码 destination-port eq 服务

# 禁止某个IP或网段访问目标IP或或网段服务
rule deny 协议 source 源IP或网段 destination 目标IP或网段 反掩码
1
2
3
4
5
6
7
8
9
# 示例
# 禁止192.168.1.10访问www服务
rule deny tcp source 192.168.1.10 0 destination-port eq www

# 禁止192.168.1.10访问192.168.1.100的www服务
rule deny tcp source 192.168.1.10 0 destination 192.168.1.100 destination-port eq www

# 禁止192.168.1.10通过ping访问192.168.1.100
rule deny icmp source 192.168.1.10 0 destination 192.168.1.100

DHCP

DHCP报文

报文类型 描述
DHCP Discover 客户端用来寻找DHCP服务器
DHCP Offer DHCP服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息
DHCP Request 客户端请求配置确认,或续租
DHCP ACK 服务器对DHCP REQUEST报文的确认响应
DHCP NAK 服务器对DHCP REQUEST报文的拒绝响应
DHCP Release 客户端要释放地址时用来通知服务器

DHCP原理

DHCP工作原理

  1. 客户端通过广播的方式发送DHCP Discover报文来寻找DHCP服务器
    1. 客户端封装的源IP为0.0.0.0,目的IP为255.255.255.255
  2. DHCP服务器收到报文时通过单播(华为设备)的形式发送DHCP Offer报文,下发各种配置信息
    1. 思科或windows使用广播的形式回应,华为使用单播回应
    2. 服务端封装的目的IP为DHCP服务器给客户机分配的IP地址,这里地址是多少都不影响
    3. 交换机收到报文后就会解封装,通过MAC地址给客户端转发报文
  3. 客户端收到Offer报文后,就会广播回应一个Request报文来告诉DHCP服务器要用这套地址信息
    1. 如果有多个DHCP服务器回应Offer报文,客户端会用收到的第一个报文来配置本机地址信息
    2. 其他DHCP服务器收到后就会回收给客户端分配的地址信息
  4. 服务器收到Reques报文时就会回复ACK报文进行确认(思科广播,华为单播)

image-20230622110011986

image-20230622112104979

租期更新

  1. 当客户端的IP租约时间达到50%时,就会向服务器单播发送Request报文来续约
  2. 服务器收到报文后回复ACK报文确认

image-20230622110248989

重绑定

  1. 当DHCP客户端租约时间达到97.5%时,还没收到服务器响应,就会广播发送Request报文申请重新绑定IP

image-20230622110607169

地址释放

  1. 如果IP租约到期前都没收到dhcp服务器的响应,客户端就停止使用此IP地址
  2. 如果客户端不再使用分配的IP地址时,可以主动向DHCP服务器发送Release报文来释放该IP地址

image-20230622110900190

配置示例

接口下分配地址

  1. 使用接口下分配地址时,接口的IP地址成为客户端的网关地址,IP地址从大到小分配
1
2
3
4
5
6
dhcp enable		# 全局下开启DHCP

interface GigabitEthernet0/0/0
ip address 192.168.10.1 255.255.255.0
dhcp select interface # 使用接口地址池
dhcp server dns-list 8.8.8.8

image-20230622112035789

1
2
3
# 静态绑定
interface GigabitEthernet0/0/0
dhcp server static-bind ip-address 192.168.10.100 mac-address 5489-98FE-3824

image-20230622112705957

image-20230622113343430

地址池分配IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dhcp enable		# 全局下开启DHCP

ip pool vlan10 # 创建一个名为vlan10的地址池(名字随意)
gateway-list 192.168.10.1 # 网关
network 192.168.10.0 mask 255.255.255.0 # dhcp地址范围
lease day 10 hour 0 minute 0 # 租约10天
dns-list 8.8.8.8

interface GigabitEthernet0/0/0
ip address 192.168.10.1 255.255.255.0
dhcp select global # 开启全局模式

# 三层交换机使用vlan时
int vlanif 10
dhcp select global # 开启全局模式
1
2
3
dis ip pool		# 查看所有地址池

dis ip pool name 地址池名字 used # 查看地址池中已被分配的地址

image-20230622113343430

NAT地址转换

静态NAT

  1. 静态NAT实现了私有地址和共有地址的一对一映射
  2. 一个公网IP只会分配给唯一且固定的内网主机
1
2
3
4
5
int 端口
nat static global 映射的公网IP inside 内网IP

# 查看静态nat
display nat static

动态NAT

  1. 与静态NAT一样,当设备需要上网时就把公网IP一对一给设备
  2. 当设备不需要上网时就把IP归还到地址池,谁需要谁从地址池拿IP
  3. 如果多个设备同时上网,就只能轮流上,不能并发
1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建一个ACL,用于匹配内部地址
acl 2000
rule permit source 网段 反掩码

# 创建一个NAT地址池
nat address-group 地址池ID 公网起始IP 公网结束IP

# 将NAT池指定给接口
int 接口
nat outbound ACL编号 address-group 地址池ID no-pat

# 查看outbound信息
display nat outb

NAPT端口映射

  1. NAPT允许多个内部地址映射到同一个公有地址的不同端口
  2. 将内网设备的指定端口映射到公网地址的指定端口中
  3. NAT地址池的IP不能包含出接口的IP
1
2
3
4
5
6
7
# 静态端口映射,一般用于映射服务器的服务端口

int 端口
nat server protocol tcp global 公网IP 映射端口 inside 内网IP 源端口

# 查看端口映射状态
dis nat server
1
2
3
4
5
6
7
8
9
10
11
12
# 动态映射,一般用于上网

# 创建一个ACL,用于匹配内部地址
acl 2000
rule permit source 网段 反掩码

# 创建一个NAT地址池
nat address-group 地址池ID 公网起始IP 公网结束IP

# 将NAT池指定给接口
int 接口
nat outbound ACL编号 address-group NAT地址池ID

image-20230622220247874

Easy IP

  1. 将多个内部地址映射到网关出接口地址上的不同端口
  2. 一般用于动态公网IP的设备
1
2
3
4
5
6
7
# 创建一个访问控制列表,指定允许转换的IP或网段
acl 2000
rule permit source 网段 反掩码

# 在出接口上配置EASY IP
int 出接口
nat outbound ACL编号

补充

帧中继交换机

基本概念

  1. 帧中继用于连接计算机系统的面向分组通信方法,主要用在公共或专用网上的局域网互联以及广域网连接
  2. 帧中继工作再OSI参考模型的物理层、数据链路层;帧中继在第二层建立虚电路,用帧作为传输的基本单位,没有第三层
  3. 帧中继交换机通过DLCI(数据链路标识符)进行工作,接口使用Serial串口传输,一般用在广域网
  4. 帧中继协议也叫LAP-D协议,帧结构中没有控制字段
  5. 特点:简单高效、只检错不重传、没有流量控制、只有拥塞控制
  6. InARP逆向地址解析协议:用于获取每条虚电路连接的对端设备的IP地址,知道对端IP地址后就在本地生成对端IP与本地DLCI的映射,从而避免手动配置地址映射
  7. 帧中继接口在转发数据包时必须查找帧中继地址映射表来确定下一跳的DLCI,只有找到对应的映射表项才能完成二层帧中继报头的封装,类似于ARP,可以手动(静态)也可以自动(动态)配置
  8. 默认情况下帧中继不支持广播或组播数据的转发,如果在帧中继上运行一些动态路由(如OSPF),需要在静态映射后加上broadcast参数来实现路由协议的广播或组播流量,还需要手动指定peer(帧中继不组播广播,而OSPF用组播)

常用配置

1
2
3
4
5
6
7
link-protocol fr		# 将端口协议转为帧中继
fr interface-type dte # 将帧中继类型指定为dte (终端设备,默认)或dce(数据通信设备)
fr dlci 数据链路标识符 # 配置数据链路标识符
fr inarp # 开启帧中继逆向地址解析(MAC寻找IP,默认开启)

display fr pvc-info # 查看帧中继虚电路的配置情况、统计信息
display fr map-info # 查看帧中继地址映射表
1
2
3
4
# 手动映射(静态映射)
link-protocol fr # 将端口协议转为帧中继
undo fr inarp # 关闭逆向地址解析
fr map ip 目的IP地址 本地标识符 # 手动配置静态映射,将对端虚链路IP映射到本地标识符

静态映射配置示例

配置完成后R1、R2、R3都能实现互通,R2、R3通信时经过R1

R1

1
2
3
4
5
6
interface Serial1/0/0
link-protocol fr
undo fr inarp
fr map ip 10.0.0.2 100 broadcast
fr map ip 10.0.0.3 200 broadcast
ip address 10.0.0.1 255.255.255.0

R2

1
2
3
4
5
6
interface Serial1/0/0
link-protocol fr
undo fr inarp
fr map ip 10.0.0.1 101 broadcast
fr map ip 10.0.0.3 101 broadcast
ip address 10.0.0.2 255.255.255.0

R3

1
2
3
4
5
6
interface Serial1/0/0
link-protocol fr
undo fr inarp
fr map ip 10.0.0.1 201 broadcast
fr map ip 10.0.0.2 201 broadcast
ip address 10.0.0.3 255.255.255.0

image-20230915140136626

image-20230915161649415

image-20230915161509658

自动地址解析配置示例

R1

1
2
3
interface Serial1/0/0
link-protocol fr
ip address 10.0.0.1 255.255.255.0

R2

1
2
3
4
interface Serial1/0/0
link-protocol fr
fr map ip 10.0.0.3 101 broadcast # 为了与R3通信,手动添加上R3的虚电路IP与本地DLCI映射
ip address 10.0.0.2 255.255.255.0

R3

1
2
3
4
interface Serial1/0/0
link-protocol fr
fr map ip 10.0.0.3 201 broadcast # 为了与R2通信,手动添加上R2的虚电路IP与本地DLCI映射
ip address 10.0.0.3 255.255.255.0

image-20230915145416963

image-20230915152258005

帧中继与OSPF

注意:OSPF在帧中继中默认的网络类型为NBMA(非广播多路访问),这种类型不支持广播和组播,而OSPF默认使用组播发送,所以默认情况下因为OSPF无法在帧中继中发送组播报文,所以无法建立邻居,需要手动配置邻居后单播发送报文

1
2
ospf 1
peer 邻居IP

以下内容在静态映射的基础上进行配置

R1

1
2
3
4
5
6
ospf 1 
peer 10.0.0.2
peer 10.0.0.3
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.0.0.1 0.0.0.0

R2

1
2
3
4
5
ospf 1 
peer 10.0.0.1
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 10.0.0.2 0.0.0.0

R3

1
2
3
4
5
ospf 1 
peer 10.0.0.1
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 10.0.0.3 0.0.0.0