网络设备
大刘的电脑 A 和小美的电脑 B 可以通过网线连接起来,组成一个网络。A 发出来数据,B 都能接收到。反之 A 可以接收 B 发出来的所有数据。
网线
交换机
没过多久,隔壁老王的电脑 C、阿丽的电脑 D、敏敏的电脑 E 也要加入到网络中来。只使用网线连接是搞不定的了,搞不定的问题就用分层的办法处理。
数据链路层处理示意图
于是就有了二层网络设备交换机,交换机提供网络互联功能。
交换机
交换机可以接入多台电脑,那么它是如何识别不同的电脑呢?又是如何进行数据转发呢?
每个电脑网卡的MAC 地址都是不一样的,电脑发送数据时,数据头部携带网卡的 MAC 地址,用 MAC 地址标识来不同的电脑。交换机就可以识别数据头部的 MAC 地址来区分不同的电脑。
MAC地址
交换机除了能识别不同的电脑,还需要找到电脑连接的交换机端口,才能顺利的把数据从相应端口发送出去。交换机通过自学机制,把学习到的设备 MAC 地址和交换机端口号添加到MAC 地址表,并根据 MAC 地址表进行数据转发。
MAC地址表
路由器
随着韩国棒棒的电脑 F、美国山姆的电脑 G、印度三三的电脑 H 等等的陆续加入,网络规模越来越大。交换机需要记录的 MAC 地址表也越来越多,需要的交换机也越来越多。但是交换机的容量和性能有限,MAC 地址表无法记录全世界电脑的 MAC 地址和对应的端口号,MAC 地址表太大也无法快速查找到对应的 MAC 地址表项。
交换机的上限
交换机搞不定的问题,就用分层的办法处理。
网络层处理示意图
于是就有了三层网络设备路由器,路由器可以把全世界的网络连接起来。
路由器
局域网内的网络连接可以使用交换机,例如一个公司内的网络或者一个校园内的网络通过交换机连接。不同区域的局域网互联使用路由器,那么如何区分不同的网络区域呢?又是如何跨网络区域进行数据转发的呢?
MAC 地址是烧录到网卡上的,也叫硬件地址,可以标识某一台设备,但无法用来标识某一个网络区域。为了区分不同的网络区域,IP 地址闪亮登场。IP 地址由网络号和主机号两部分组成,网络号可以标识网络区域,网络号相同的主机位于同一个网络区域内,即相同网段内。不同的网络区域使用不同的网络号。主机号标识相同网段内的不同主机,不允许相同网段内出现重复的主机号。在整个网络中通过设置网络号和主机号,保证每台主机的 IP 地址不会重复出现,即 IP 地址具有唯一性。
IP地址
路由器有多个端口,分别连接不同的网络区域,不同网络区域的 IP 地址网络号不同。它通过识别目的 IP 地址的网络号,再根据路由表进行数据转发。
路由器数据转发原理
网络地址规划
IP 地址
IP 地址由 32 位二进制数组成,为方便查看和记录,使用十进制数表示。
IP地址表示方法
常用二进制数与十进制数的转换
进制转换表
分配给主机使用的分类地址有A 类、B 类、C 类,分类地址使用的是固定网络位数,A 类8位网络号,B 类16位网络号,C 类24位网络号。既可以通过判断分类地址类型( A 类、B 类、C 类其中之一)识别出网络号,也可以通过子网掩码识别出网络号。
分类地址
分类地址
A 类地址第一位以 0 开头,可变化的网络位有 7 位,即 128 个 A 类地址。其中 0 和 127 属于特殊地址,可用的 A 类地址就是 128 - 2 =126个。
可变化的主机位有 24 位,即 16777216 个主机地址。其中主机位全为 0 和主机位全为 1 分别为网段地址和广播地址,不能分配给主机使用,每个 A 类地址可用的主机地址就是 16777216 - 2 =16777214个。
A 类地址的范围是1.0.0.0 ~ 126.255.255.255。
A 类地址子网掩码是255.0.0.0,也可写作/8。
A类地址
B 类地址前两位以 10 开头,可变化的网络位有 14 位,即 16384 个 B 类地址。其中 128.0 和 191.255 属于特殊地址,可用的 B 类地址就是 16384 - 2 =16382个。
可变化的主机位有 16 位,即 65536 个主机地址。其中网段地址和广播地址不能分配给主机使用,每个 B 类地址可用的主机地址就是 65536 - 2 =65534个。
B 类地址的范围是128.0.0.0 ~ 191.255.255.255。
B 类地址子网掩码是255.255.0.0,也可写作/16。
B类地址
C 类地址前三位以 110 开头,可变化的网络位有 21 位,即 2097152 个 C 类地址。其中 192.0.0 和 223.255.255 属于特殊地址,可用的 C 类地址就是 2097152 - 2 =2097150个。
可变化的主机位有 8 位,即 256 个主机地址。其中网段地址和广播地址不能分配给主机使用,每个 C 类地址可用的主机地址就是 256 - 2 =254个。
C 类地址的范围是192.0.0.0 ~ 223.255.255.255。
C 类地址子网掩码是255.255.255.0,也可写作/24。
C类地址
网段地址是主机号全为 0 的地址,表示某个网段,比如:网段地址 192.168.10.0/24 表示的是网络号为 192.168.10 的所有地址。
广播地址是主机号全为 1 的地址,向同一个网段中的所有主机发送数据包的一个地址,比如:网段地址 192.168.10.0/24 的广播地址是 192.168.10.255 。
广播地址
分类地址保留了几个可以自由使用的私网地址。
A 类私网地址是10.0.0.0
B 类私网地址范围是172.16.0.0 ~ 172.31.0.0
C 类私网地址范围是192.168.0.0 ~ 192.168.255.0
私有地址范围
举个栗子
A 类私网地址 10.10.10.10
可推算出:10.10.10.10 的网段地址是 10.0.0.0/8 ,子网掩码是 255.0.0.0 ,广播地址是 10.255.255.255 ,第一个可用地址是 10.0.0.1 ,最后一个可用地址是 10.255.255.254 ,可用地址范围是 10.0.0.1 ~ 10.255.255.254 。
B 类私网地址 172.20.20.20
可推算出:172.20.20.20 的网段地址是 172.20.0.0/16 ,子网掩码是 255.255.0.0 ,广播地址是 172.20.255.255 ,第一个可用地址是 172.20.0.1 ,最后一个可用地址是 172.20.255.254 ,可用地址范围是 172.20.0.1 ~ 172.20.255.254 。
C 类私网地址 192.168.30.30
可推算出:192.168.30.30 的网段地址是 192.168.30.0/24 ,子网掩码是 255.255.255.0 ,广播地址是 192.168.30.255 ,第一个可用地址是 192.168.30.1 ,最后一个可用地址是 192.168.30.254 ,可用地址范围是 192.168.30.1 ~ 192.168.30.254 。
分类地址举例
子网掩码
子网掩码必须和 IP 地址一起使用,子网掩码也是由 32 位二进制数组成,网络位为 1 ,主机位为 0 。子网掩码和 IP 地址进行与( AND )运算,得到这个 IP 地址的网段地址。换句话说, IP 地址有多少位网络号,子网掩码就有多少位取 1 ,其余都取 0 。
子网掩码
子网掩码可以使用十进制数表示,还可以使用斜线记法表示。
子网掩码两种表示方法
根据 IP 地址和子网掩码计算网段地址,先将 IP 地址和子网掩码转换成二进制数,然后将 IP 地址与子网掩码二进制数一位一位的做 AND 运算,再将结果转换为十进制,就是网段地址。
计算网段地址
与( AND )运算
IP 地址和子网掩码的二进制数,逐位进行计算。只有当 IP 地址和掩码都是 1 时,运算结果为 1 。其余情况计算结果都为 0 。
AND运算
无类地址
分类地址使用的是固定网络位数,可分配的主机 IP 地址也是固定的。但是在实际使用网络时,需要的 IP 地址数量却是各不相同。
举个栗子:一个公司有 500 台电脑,需要分配 500 个 IP 地址。如果分配一个 C 类地址,一个 C 类地址的可用 IP 地址数量是 254 个,可用地址不够使用。如果分配一个 B 类地址,一个 B 类地址的可用 IP 地址数量是 65534 个,会造成大量的 IP 地址浪费。
再来个栗子:一个家庭有 2 台电脑需要上网,如果分配一个 C 类地址也很浪费,但是没有比 C 类范围更小的地址。
为了解决地址浪费问题,可使用CIDR(无类域间路由)和VLSM(可变长子网掩码)技术。
VLSM可以对 A 、 B 、 C 类地址进行划分,划分成各种类型大小的网络,可用主机地址数量可以灵活变化大小。划分分类地址的过程也叫子网划分。
VLSM
CIDR可以把多个分类地址进行聚会到一起,生成一个更大的网段,以减少路由器中路由条目的数量,减轻路由器的负担。分类地址合并的过程也叫超网合并。
CIDR
子网划分后或超网合并后的网段地址,不再是固定的网络位数,这种网络位数可变的网段地址也叫做无类地址。无类地址只能通过子网掩码识别出网络号。
无类地址
子网划分
子网划分是从 IP 地址主机位的最左边开始,把主机位划入网络位,得到多个子网地址。主机位变成网络位的部分叫做子网号,划分后的子网数量等于 2 的 N 次方,N 等于子网号的位数。
子网号
即每把一位主机位变成网络位,一个网段地址就变成两个子网地址,子网地址的地址数量只有原来网段地址的一半。
子网划分
举个栗子
一个学校有 150 台电脑,有三个电脑室,每个电脑室 50 台电脑。使用私有地址 192.168.0.0/24 给每个电脑室都分配一个网段地址。
网络规划步骤:
- 每个电脑室 50 台电脑,计算出子网地址的主机位是 6 位。
计算主机位
- 计算子网地址的网络位,即 32 - 主机位 = 26 位。
- 使用私网地址 192.168.0.0/24 分配三个主机位同为 26 位的子网地址。子网号有 2 位,因此可以划分出 4 个大小相同的子网地址。
计算子网地址
- 按照子网号从小到大的顺序,分配 3 个子网地址给电脑室使用。即分配 192.168.0.0/26 、192.168.0.64/26 、192.168.0.128/26 这三个子网地址。
子网网段信息
再来个栗子
一个公司有 157 人,市场部 100 人,技术部 50 人,行政部 4 人,财务部 3 人,每人一台办公电脑。使用私有地址 192.168.100.0/24 分别为每个部门划分网络地址。
网络规划步骤:
- 按照需要IP 地址数量,从大到小依次进行子网划分。先计算有 100 人的市场部所需子网的主机位是 7 位。
计算主机位
- 计算市场部所需子网地址的网络位,即 32 - 主机位 = 25 位。
- 使用私网地址 192.168.100.0/24 分配第一个主机位为 25 位的子网地址,即 192.168.100.0/25 。
划分第一个子网
- 保证与第一个子网地址不重复的前提下,使用未分配的子网值最小的子网地址,计算第二个需要分配的子网地址。即使用 192.168.100.128/25 分配第二个子网地址给技术部( 50 人)使用。重复步骤 1 ~ 3 ,计算出第二个子网的主机位是 6 位,网络位是 26 位,第二个子网地址是 192.168.100.128/26 。
划分第二个子网
- 保证与前面两个子网地址不重复的前提下,使用未分配的子网值最小的子网地址,计算第三个需要分配的子网地址。即使用 192.168.100.192/26 分配第三个子网地址给行政部( 4 人)使用。重复步骤 1 ~ 3 ,计算出第三个子网的主机位是 3 位,网络位是 29 位,第三个子网地址是 192.168.100.192/29 。
- 依次类推,计算给财务部( 3 人)使用的第四个子网地址。得出第四个子网的主机位是 3 位,网络位是 29 位,第四个子网地址是 192.168.100.200/29 。
超网合并
与子网划分相反,把一些小网络组合成一个大网络就是超网合并。
超网合并
192.168.3.64/26 和 192.168.3.128/26 可以合并吗?
192.168.3.64/26 和 192.168.3.128/26不能合并。
判断网段能否合并
当子网掩码向左移动一位时,网络号不相同,无法合并;
网络号不同
当子网掩码向左移动两位是,网络号是相同了,但是合并了四个网段,非 192.168.3.64/26 和 192.168.3.128/26 合并。
网段合并多了
结论:子网掩码左移一位,且网络号相同,能够合并两个网段;左移两位,且网络号相同,能够合并四个网段;左移三位,能够合并八个网段。依次类推。
网段合并
静态路由
路由器在收到数据包时,会识别目的 IP 地址的网络号,来查询路由表的路由条目,根据最长匹配的路由条目,来判断应该从哪个接口转发数据包。路由表中有匹配的路由条目才会发送数据,无匹配的路由条目则直接丢弃。
路由条目
路由表
路由表由路由条目组成,路由条目包含目的地址、下一跳和出接口等。
路由表
目的地址( Destination / Mask )表示目的网段地址或目的 IP 地址。目的地址既可以是直连在路由器接口上的网段地址,也可以是其它路由器上的网段地址或 IP 地址。
下一跳/出接口( NextHop / Interface )表示转发目的地址的数据包时,下一跳设备的接口 IP 地址,或者是将数据包从哪个接口转发出去。
协议类型( Proto / Protocol 简写 )表示路由条目的获取方式,一共有三种方式。
- 直连路由:路由器直接连接的路由条目,只要接口配置了 IP 地址,接口状态正常,就会自动生成对应的直连路由。
直连路由
- 静态路由:通过命令手动添加的路由条目就是静态路由。
静态路由
- 动态路由:通过路由协议从相邻路由器动态学习到的路由条目。
动态路由
优先级( Pre / Preference 简写 )表示有多条去往同一个目的地址的路由条目,根据路由条目的类型,选择优先级最高的路由条目添加到路由表里面。
默认路由优先级表
路由优先级的值越小,代表这种类型的路由优先级越高。
按优先级转发
路径开销( Cost )表示通过同一种路由类型学习到多条去往同一个目的地址的路由条目,选择路径开销最小的路由条目添加到路由表里面。
按路径开销转发
直连路由
直连路由是唯一一种自动向路由表中添加路由条目。这种路由条目指向的目的网络是路由器接口直连的网络,直连路由的路由优先级和路径开销值都是 0 。
为了保障直连路由的可用性,路由器只会把状态正常的接口所连接的网络,作为直连路由放入自己的路由表中。
直连路由
静态路由
默认情况下,路由器只会自动生成直连路由。对于非直连网络,路由器并不知道要如何转发才能到达非直连网络。这时,就可以手动添加静态路由,告诉路由器如何转发去往某个网络的数据包。
静态路由的默认路由优先级为 60 ,还可以手动调整静态路由的优先值。静态路由的路径开销值是 0 。路由器静态路由配置命令:
ip route-staticdestination-address mask-length nexthop-address
配置举例
通过目的地址相同、下一跳或出接口不同的两条静态路由实现数据流量的负载分担,路由器会同时使用这两条静态路由条目转发数据包。但是在实际网络环境中,不推荐使用,因为数据报文往返路径不对称,会导致上层应用受影响。
负载分担
通过目的地址相同、路由优先级不同的两条静态路由实现路由备份,当优先级高的路由条目出现问题时,路由器就会使用另一条优先级低的路由条目来转发数据包。
路由备份
优点:
- 对比动态路由,静态路由条目不会被自动删除,路由条目更稳定;
- 只要手动添加,就会出现对应的静态路由,路由器也会使用这条静态路由转发数据包,路由条目更可控;
- 配置去往某个网络的静态路由,只需要在路由器上添加一条简单的命令就可以实现,更容易部署。
缺点:
- 在越大型网络中,配置和维护路由协议的工作量越大,出差的概率就越大。在大型网络中,静态路由只能作为动态路由的补充,因为静态路由的扩展性差。
动态路由可以自动删除失效的动态路由条目。而静态路由无法反映拓扑变化,必须进行手动干预删除失效静态路由,否则路由器仍会按照配置的静态路由进行数据包转发。
默认路由
路由器只能转发有路由条目的数据包,对于网络未知的数据包,只能选择丢弃。实际上,也不可能知道所有网站或者应用程序的 IP 地址,需要使用一种特殊的路由条目解决这个问题。
路由转发的最长匹配原则是:当匹配目的 IP 地址的路由条目有多条时,路由器会选择子网掩码最长的路由条目,也就是最精确的路由条目来转发数据包。
最长匹配
通常会配置一条0.0.0.0/0的静态路由,根据最长匹配原则,可以匹配任何目的 IP 地址的数据包,保证任何数据包都能被转发出去;同时,只要路由器上还有任何一条可以匹配目的 IP 地址的路由条目,这条路由条目一定比 0.0.0.0/0 更精确,于是路由器会用更精确的路由条目来转发数据包。这就是静态默认路由,也是静态路由的一种。
默认路由
一般家用路由器上除了本地直连路由外就只设置个默认路由,把去往互联网的流量都转发给运营商的路由器。网关和默认网关
两个网络之间要实现通信,必须要通过网关。网关通常位于有路由功能的设备上,网关的 IP 地址可以是路由器的某个接口的 IP 地址,也可以是三层交换机 VLAN 端口的 IP 地址。
一台主机可以由多个网关,当一台主机找不到可用的网关时,数据包可以发送给默认网关。其实主机上配置的默认网关就是默认路由。
主机路由表实战演练
静态路由实验
实验拓扑图
拓扑图PC 表示电脑/主机
-
实验要求
使用 ENSP 模拟器
- PC1 能 ping 通 PC2
- PC1 和 RT1 使用网段 1 互联:192.168.1.0/24
- PC2 和 RT2 使用网段 2 互联:192.168.2.0/24
- RT1 和 RT2 使用网段 3 互联:192.168.3.0/24
实验步骤
- 分配 IP 地址,并把IP 地址配置到 PC 和 RT 的接口上。
IP地址分配图
PC1 的 E0/0/1 口配置 192.168.1.1/24 ;
PC1的IP配置PC2 的 E0/0/1 口配置 192.168.2.2/24 ;
PC2的IP配置
RT1 的 G0/0/1 口配置 192.168.1.10/24 ,RT1 的 G0/0/0 口配置 192.168.3.10/24 ;
RT1的IP配置
RT2 的 G0/0/1 口配置 192.168.2.20/24 ,RT2 的 G0/0/0 口配置 192.168.3.20/24 。
RT2的IP配置
- PC1 分别 ping 网段1 、网段2 、网段3 的 IP 地址,结果只能 ping 通同网段的 192.168.1.10 ,其余不同网段的 IP 地址都无法 ping 通。其它主机和路由器也是只能 ping 通同网段的 IP 地址。
PC1 ping 测试
- 打通从 PC1 到 PC2 的路由,即 PC1 配置默认网关,RT1 配置到达 192.168.2.0/24 网段的静态路由。
PC1配置默认网关
RT1配置静态网关
- PC1 还是只能 ping 通同网段的 192.168.1.10 ,其余不同网段的 IP 地址都无法 ping 通。检查各个设备的路由表,发现 PC1 的报文可以发送到 PC2 ,但是 PC2 和 RT2 没有回程路由,即 PC2 和 RT2 没有到达 PC1 的路由表项,返程报文无法到达 PC1 。
RT2无PC1的路由表项
- 打通从 PC1 到 PC2 的回程路由,即 PC2 配置默认网关,RT2 配置到达 192.168.1.0/24 网段的静态路由。
PC2配置默认网关
RT2配置静态网关
- PC1 ping PC2 成功,并使用 tracert 命令查看网络路径。
实验总结
配置路由时,需要在通信双方都进行配置,不要忘记配置回程路由。
浮动静态路由实验
实验拓扑图
实验要求
- RT1 的 GE0/0/2 口和 RT2 的 GE0/0/2 口分别配置网段 4 的 IP 地址。
RT1的IP配置
RT2的IP配置
- 通过修改静态路由优先级,使一条路由成为备份条目的路由,这就是浮动静态路由。在 RT1 上配置从 192.168.4.0/24 到 192.168.2.0/24 的浮动静态路由,并且优先级设置为 50 。
- 新增浮动路由前,查看 RT1 上 192.168.2.0/24 的路由条目。
新增浮动路由前
- 新增浮动路由后,查看 RT1 上 192.168.2.0/24 的路由条目。
新增浮动路由后
- 路由优先级的值越小,静态路由的优先级越高,静态路由的默认路由优先级为 60 。因此新增优先级为 50 的静态路由为主路由条目,原来优先级为 60 的静态路由为备份路由。
- 当一台路由器上有两条不同的路径去往同一个网络的优先级相同的静态路由时,路由器就会同时使用这两条路由来转发流量,这就是等价静态路由。在 RT1 上配置从 192.168.4.0/24 到 192.168.2.0/24 的等价静态路由,即使用默认优先级的值 60 。
等价静态路由