文章目录

网络技术基础

IP地址基础

什么是IP地址

  • IP地址是指在网络中用于标识发送或接收数据报文设备的唯一的逻辑地址
  • IP地址的主要作用:
    • 标识主机或网络设备(标识其网络接口,提供其在网络中的位置)
    • 网络寻址

什么是IP地址

[!tip]

在IP网络上,如果用户要将一台计算机连接到Internet上,就需要申请一个IP地址。IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我们通过IP地址实现全球范围内的网络通信。
IP地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个IP地址时,实质上是指给这台设备的某个接口分配一个IP地址。如果设备有多个接口,通常每个接口都至少需要一个IP地址。
注:需要使用IP地址的接口,通常是路由器和计算机的接口。

IP地址表示

  • 一个IPv4地址有32 bit
  • IPv4地址通常采用“点分十进制”表示
  • IPv4地址范围:0.0.0.0~255.255.255.255

IP地址表示

[!tip]

IP地址表示:
IP地址的长度是32 bit,由4个字节组成。为了阅读和书写方便,IP地址通常采用点分十进制数来表示。
点分十进制表示法:
这种IP地址表现形式因为方便理解所以广泛使用,但通信设备在对IP地址进行计算时使用的是二进制的操作方式,因此掌握十进制、二进制的转换运算非常有必要。
IPv4地址范围:
00000000.00000000.00000000.0000000011111111.11111111.11111111.11111111,即0.0.0.0255.255.255.255。

IP地址构成

  • 网络部分:用来标识一个网络
  • 主机部分:用来区分一个网络内的不同主机
  • 子网掩码:区分一个IP地址中的网络部分及主机部分

IP地址构成

[!tip]

IPv4地址由如下两部分组成:
网络部分 (网络号):用来标识一个网络。
IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。
对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。
主机部分 (主机号):用来区分一个网络内的不同主机。
子网掩码(Subnet Mask),又称网络掩码(Netmask):
网络掩码为32 bit,与IP地址的位数一样,通常也以点分十进制数来表示。
网络掩码不是一个IP地址,在二进制的表示上是一堆连续的1、后面接一堆连续的0。
通常将网络掩码中1的个数称为这个网络掩码的长度。如:掩码0.0.0.0的长度是0,掩码252.0.0.0的长度是6。
网络掩码一般与IP地址结合使用,其中值为1的比特对应IP地址中的网络位;值为0的比特对应IP地址中的主机位,以此来辅助我们识别一个IP地址中的网络位与主机位。即网络掩码中1的个数就是IP地址的网络号的位数,0的个数就是IP地址的主机号的位数。

IP地址分类(有类编址)

IP地址分类

  • 为了方便IP地址的管理及组网,IP地址分成五类
  • A/B/C类默认子网掩码
    • A类:8 bit, 0.0.0.0~127.255.255.255/8
    • B类:16 bit,128.0.0.0~191.255.255.255/16
    • C类:24 bit,192.0.0.0~223.255.255.255/24

[!tip]

为了方便IP地址的管理及组网,IP地址分成五类:
A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。
A、B、C三类地址是单播IP地址(除一些特殊地址外),只有这三类地址才能分配给主机接口使用。
D类地址属于组播IP地址。
E类地址专门用于特殊的实验目的。
本节内容,只关注A、B、C三类地址。

[!tip]

A、B、C类地址比较:
使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的网络称为C类网络。
A类网络的网络号为8 bit,个数很少,但所允许的主机接口的个数很多;首位恒定为0,地址空间为:0.0.0.0~127.255.255.255。
B类网络的网络号为16 bit,介于A类和C类网络之间;首两位恒定为10,地址空间为:128.0.0.0~191.255.255.255。
C类网络的网络号为24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒定为110,地址空间为:192.0.0.0~223.255.255.255。
注:
主机(Host),通常指路由器和计算机的统称。并且常把主机的某个接口的IP地址简称为主机IP地址。
组播地址:组播能实现一对多传递消息。

公网和私网IP地址

  • 公网IP地址
    IP地址是由ICANN统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址
  • 私网IP地址
    实际上一些网络不需要连接到Internet,比如一个大学的封闭实验室内的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中各预留了一些地址专门用于上述情况,称为私网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

公网和私网IP地址

[!tip]

为了解决IP地址短缺的问题,提出了私有地址的概念。私有地址是指内部网络或主机地址,这些地址只能用于某个内部网络,不能用于公共网络。
公网IP地址:连接到Internet的网络设备必须具有由ICANN分配的公网IP地址。
私网IP地址:私网IP地址的使用使得网络可以得到更为自由的扩展,因为同一个私网IP地址是可以在不同的私有网络中重复使用的。
私有网络连接到Internet:私有网络由于使用了私网IP地址,是不允许连接到Internet的。后来在实际需求的驱动下,许多私有网络也希望能够连接到Internet上,从而实现私网与Internet之间的通信,以及通过Internet实现私网与私网之间的通信。私网与Internet的互联,必须使用网络地址转换(NAT)技术实现。
注:
NAT(Network Address Translation),网络地址转换,其基本作用是实现私网IP地址与公网IP地址之间的转换。
ICANN(Internet Corporation for Assigned Names and Numbers),互联网名称与数字地址分配机构

特殊IP地址

特殊IP地址地址范围作用
有限广播地址255.255.255.255可作为目的地址,发往该网段所有主机
(受限于网关)
任意地址0.0.0.0“任何网络”的网络地址;
“这个网络上这个主机接口”的IP地址
环回地址127.0.0.0/8测试设备自身的软件系统
本地链路地址169.254.0.0/16当主机自动获取地址失败后,可使用该网段中的某个地址进行临时通信

[!tip]

255.255.255.255
这个地址称为有限广播地址,它可以作为一个IP报文的目的IP地址使用。
路由器接收到目的IP地址为有限广播地址的IP报文后,会停止对该IP报文的转发。
0.0.0.0
如果把这个地址作为网络地址,它的意思就是“任何网络”的网络地址;如果把这个地址作为主机接口地址,它的意思就是“这个网络上主机接口”的IP地址。
例如:当一个主机接口在启动过程中尚未获得自己的IP地址时,就可以向网络发送目的IP地址为有限广播地址、源IP地址为0.0.0.0的DHCP请求报文,希望DHCP服务器在收到自己的请求后,能够给自己分配一个可用的IP地址。
127.0.0.0/8
这个地址为环回地址,它可以作为一个IP报文的目的IP地址使用。其作用是测试设备自身的软件系统。
一个设备产生的、目的IP地址为环回地址的IP报文是不可能离开这个设备本身的。
169.254.0.0/16
如果一个网络设备获取IP地址的方式被设置成了自动获取方式,但是该设备在网络上又没有找到可用的DHCP服务器,那么该设备就会使用169.254.0.0/16网段的某个地址来进行临时通信。
注:DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,用于动态分配网络配置参数,如IP地址。

子网掩码及主机可用地址

  • 我们通常把一个网络号所定义的网络范围称为一个网段

  • 子网掩码:用于计算IP地址中的网络号(网络地址)和主机号(主机地址),和IP地址一起使用

    例如:192.168.10.0/24

    image-20260915160348063

  • 广播地址:用于向该网络中的所有主机发送数据的特殊地址

    例如:192.168.10.255/24

    image-20260915160419945

  • 可用地址:可分配给网络中的节点或网络设备接口的地址

    例如:192.168.10.1/2

    image-20260915160448030

[!tip]

注意
网络地址和广播地址不能直接被节点或网络设备所使用。
一个网段可用地址数量为:2ⁿ-2(n:主机部分的比特位数)

[!tip]

可用地址
又称主机地址,可以分配给具体的主机接口使用。
一个网段可用地址数量计算
一个网段的主机位为n位,则IP地址数为:2ⁿ,可用IP地址数为:2ⁿ-2 (减去网络地址和广播地址)。

IP地址计算

  • 计算172.16.10.1/16这个B类地址的网络地址、广播地址以及可用地址数

IP地址计算

[!tip]

网络地址:将IP地址的主机位全设为0,所得结果是该IP地址所在网络的网络地址。
广播地址:将IP地址的主机位全设为1,所得结果是该IP地址所在网络的广播地址。
IP地址数:2ⁿ,n为主机位位数。
可用IP地址数:2ⁿ-2,n为主机位位数。
练习题答案:
网络地址:10.0.0.0
广播地址:10.255.255.255
IP地址数:224
可用IP地址数:224-2
可用IP地址范围:10.0.0.1~10.255.255.254

子网划分

  • 为什么需要子网划分
  • 子网划分使用的技术:变长子网掩码VLSM(Variable-Length Subnet Mask)
    VLSM允许一个组织根据网络规模的大小来划分网络。将一个网络再划分为更小的多个子网,以供不同组织部门使用
  • 举例:某公司分配到C类地址201.222.5.0。假设需要20个子网,每个子网有5台主机,我们该如何划分
子网地址可用的主机地址
201.222.5.8/29201.222.5.9~201.222.5.14
201.222.5.16/29201.222.5.17~201.222.5.22
…………
201.222.5.232/29201.222.5.233~201.222.5.238
201.222.5.240/29201.222.5.241~201.222.5.246

[!tip]

为什么需要子网划分?
现实中,如果将一个A类网络分配给一个组织使用,但是这个组织内部的计算机又没有16777214这么多台,这就会造成大量的IP地址闲置与浪费。因此,需要有一种更加灵活的方式根据网络规模的大小来划分网络。思路就是将一个网络再划分为更小的多个子网,以供不同组织使用。
这种划分网络的方式所使用的技术就是可变长度子网掩码(VLSM)。可变长度子网掩码在公网与企业内部中都可以使用。
在这个例子中,网段地址是一个C类地址:201.222.5.0/24。假设需要20个子网,其中每个子网5个主机,就要把主机地址的最后一个八位组分成子网部分和主机部分。
子网部分的位数决定了子网的数目。在这个例子中,因为是C类地址,所以子网部分和主机部分总共是8位,因为24<20<25,所以子网部分占有5位,最大可提供32(25)个子网。剩余3位为主机部分23=8。主机部分全是0的IP地址,是子网网络地址;主机部分全是1的IP地址是本子网的广播地址。这样就剩余6个主机地址,可以满足需要。
每个网段分别为:
201.222.5.0~201.222.5.7
201.222.5.8~201.222.5.15
201.222.5.16~201.222.5.23
………
201.222.5.232~201.222.5.239
201.222.5.240~201.222.5.247
201.222.5.248~201.222.5.255

网络技术介绍

网络通信基本概念

  • 通信:是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流
  • 网络通信:是指终端设备之间通过计算机网络进行的通信
  • 网络通信的举例:

网络通信基本概念

[!tip]

网络通信的例子:
A:两台计算机通过一根网线相连,就组成了一个最简单的网络。
B:由一台路由器(或交换机)和多台计算机设备组成的小型网络。在这样的网络中,通过路由器的中转,每两台计算机之间都可以自由地传递文件。
C:当计算机想从某个网址获取文件时,必须先接入Internet,然后才能下载。
Internet(译名:英特网、互联网、网际网等),是目前世界上规模最大的计算机网络,其前身诞生于1969年的ARPAnet(Advanced Research Projects Agency Network)。Internet的广泛普及和应用是当今信息时代的标志性内容之一。

信息传递过程

信息传递过程

  • 虚拟的信息传递与真实的物品传递过程有许多相似之处

[!tip]

快递过程与网络通信过程的对比:
需要快递的物品:
应用程序生成需要传递的信息(或数据)。
物品被包装起来形成包裹,并粘贴含有收货人姓名、地址的快递单:
应用程序将数据打包成原始的“数据载荷”,并添加“头部”和“尾部”形成报文,报文中的重要信息是接收者的地址信息,即“目的地址”。
在一个信息单元的基础上,增加一些新的信息段,使其形成一个新的信息单元,这个过程称为“封装”。
包裹被送到集散中心,集散中心对包裹上的目的地址进行分检,去往同一个城市的物品被放入同一架飞机,并飞向天空:
报文通过网线到达“网关”,网关收到报文后,对其“解封装”,读取目的地址,再重新封装,并根据目的地址不同,送往不同的“路由器”,通过网关及路由器的传递,报文最终离开本地网络,进入Internet的干道进行传输。
其中,网线所起的作用跟公路一样,它是信息传输的介质。

快递对比

快递对比

[!tip]

飞机抵达目的机场后,包裹被取出进行分检,去往同一地区的包裹,被送到了同一集散中心:
报文经过Internet干道的传输,到达目的地址所在的本地网络,本地网络的网关或路由器对报文进行解封装和封装,并根据目的地址决定发往相应的下一台路由器,最终到达目的计算机所在网络的网关。
集散中心根据包裹上的目的地址进行分检,快递员送包裹上门,收件人拆开包裹,确认物品完好无损后收下。整个快递过程完成。
报文到达目的计算机所在网络的网关,解封装和封装,然后根据目的地址发往相应的计算机。计算机收到报文后,对报文进行校验处理,校验无误后,接收下报文,并将其中的数据载荷交由相应的应用程序进行处理。一次完整的网络通信过程就结束了。

什么是网关

什么是网关

  • 网关是主机的默认下一跳,用于实现不同网段之间的通信

[!tip]

网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层以上实现网络互连。
大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络(网段)向另一个网络(网段)发送信息,也必须经过一道“关口”,这道关口就是网关。
网关主要意义:
网关设备主要意义:在主机(无论是PC、服务器、路由器还是防火墙,这里统称主机)想要访问另一网段地址时,负责反馈ARP报文,并接收、转发随后而来的数据报文。
网关配置主要意义:在主机上生成默认路由,下一跳指向网关设备。

通信网络基本组成架构

  • 通信网络
    由路由器、交换机、防火墙,以及个人电脑、网络打印机、服务器等设备构成的通信网络
  • 功能
    数据通信网络最基本的功能是实现数据互通

通信网络基本组成架构

[!tip]

以企业数据中心网络为例,企业对于数据中心的主体需求主要是业务运行与计算、数据存储以及服务访问。
那么围绕这几点需求,数据中心网络的主体作用就是提供设备与设备、用户与设备之间的互联并提供业务的外部访问能力。其中,就需要接入交换机设备连接各办公区的用户主机,汇聚交换机汇聚接入交换机侧的流量,路由器负责不同办公区、内部与外部不同网络间的通信转发,防火墙负责不同安全等级的区域、内部与外部网络的安全接入与访问控制。每种网络设备在整体架构中各司其职,共同完成整个数据中心网络的通信需求。

网络设备 - 交换机

交换机(Switch)

  • 交换机:距离终端用户最近的设备,用于终端用户接入网络、对数据帧进行交换等
    • 实现终端设备(PC、服务器等)的网络接入
    • 隔离冲突域
    • 广播转发未知报文
    • MAC地址学习、维护MAC地址表
    • 基于MAC地址表转发报文

交换机

路由器(Router)

  • 路由器:网络层设备,可以在因特网中进行数据报文转发。路由器根据所收到的报文的目的地址选择一条合适的路径,将报文传送到下一个路由器或目的地,路径中最后的路由器负责将报文送交目的主机
    • 实现同类型网络或异种网络之间的通信
    • 隔离广播域
    • 维护路由表(Routing Table)、运行路由协议
    • 路径(路由信息)选择、IP报文转发
    • 广域网接入、网络地址转换
    • 连接通过交换机组建的二层网络

[!tip]

交换机:
在园区网络中,交换机一般来说是距离终端用户最近的设备,接入层的交换机一般为二层交换机,又称为以太网交换机,二层是指TCP/IP参考模型的数据链路层。
以太网交换机可以实现:数据帧的交换、终端用户设备的接入、基本的接入安全功能、二层链路的冗余等。
广播域:一个节点发送一个广播报文其余节点都能够收到的节点的集合。
冲突域:在同一个网络上两个设备同时进行传输会产生冲突,在网络报文转发中产生与发生冲突的区域称为冲突域。
MAC(Media Access Control)地址:在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址。
MAC地址表:每台交换机中都有一个MAC地址表,存放了MAC地址与交换机端口编号之间的映射关系。

网络设备 - 路由器

路由器

防火墙(Firewall)

  • 防火墙:网络安全设备,用于控制两个网络之间的安全通信。它通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现对网络的安全保护
    • 隔离不同安全级别的网络
    • 实现不同安全级别的网络之间的访问控制(安全策略)
    • 用户身份认证
    • 实现远程接入功能
    • 实现数据加密及虚拟专用网业务
    • 执行网络地址转换
    • 其他安全功能

[!tip]

路由器:
路由器工作在TCP/IP参考模型的网络层;
路由器可以实现:维护路由表和路由信息、路由发现及路径选择、数据转发、隔离广播域、广域网接入和网络地址转换及特定的安全功能。

网络设备 - 防火墙

  • 防火墙:网络安全设备,用于控制两个网络之间的安全通信。它通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现对网络的安全保护
    • 隔离不同安全级别的网络
    • 实现不同安全级别的网络之间的访问控制(安全策略)
    • 用户身份认证
    • 实现远程接入功能
    • 实现数据加密及虚拟专用网业务
    • 执行网络地址转换
    • 其他安全功能

防火墙

[!tip]

防火墙:
是位于两个信任程度不同的网络之间(如企业内部网络和Internet之间)的设备,它对两个网络之间的通信进行控制,通过强制实施统一的安全策略,防止对重要信息资源的非法存取和访问,以达到保护系统安全的目的。

故事的起源 - 应用

故事的起源 - 应用

  • 应用的存在,是为了满足人们的各种需求,比如访问网页,在线游戏,在线视频等。
  • 伴随着应用会有信息的产生。比如文本,图片,视频等都是信息的不同呈现方式。

应用的实现 - 数据

应用的实现 - 数据

  • 数据的产生
    • 在计算机领域,数据是各种信息的载体。
  • 数据传输
    • 大部分应用程序所产生的数据需要在不同的设备之间传递。

[!tip]

计算机只能识别0和1的组成的电子数据(digital data)。它不具备读取各种信息的能力,所以信息需要通过一定的规则翻译成数据。
而对人来说,我们不具备读取电子数据的能力,所以在读取信息的时候,需要将数据转成人能理解的信息。
对于一名网络工程师来说,需要更关注数据的端到端传递的过程。

网络如何传输?

网络如何传输

  • 思考一下:我们日常使用的INTERNET是怎样通过传输介质把分布在世界各地的我们联系起来的,网络到底传输什么,又是怎么传输的呢?

什么是协议?

  • 为了使数据可以在网络上从源传递到目的地,网络上所有设备需要“讲”相同的“语言”
  • 描述网络通信中“语言”规范的一组规则就是协议
  • 例如:两个人交谈,必须使用相同的语
  • 言,如果你说汉语,他说阿拉伯语……
  • 决定数据的格式和传输的一组规则或者一组惯例

协议分层

  • 数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够阅读
  • 为了降低网络设计的复杂性,将协议进行了分层设计

分层的意义

  • 用户服务层的模块设计可相对独立于具体的通信线路和通信硬件接口的差别
  • 而通信服务层的模块设计又可相对独立于具体用户应用要求的不同
  • 例如:文件传输或电子邮件服务模块的设计,不必关心底层通信线路是光纤还是双绞线

邮局分层实例

邮局分层实例

[!tip]

邮局对于写信人来说是下层
运输部门是邮局的下层
--下层为上层提供服务
写信人与收信人之间使用相同的语言
邮局之间的约定
--同层次之间使用相同的协议

OSI七层模型诞生

OSI七层模型诞生

  • 网络通信的过程很复杂,为了降低复杂性
  • 1974年,ISO组织发布了OSI参考模型

[!tip]

ISO:国际标准化组织 ( International Organization for Standardization )
OSI:开放系统互联 ( open system interconnection )
20世纪70年代后期,ISO创建OSI参考模型,希望不同供应商的网络能够相互协同工作,但迄今为止,这仍然是一个伟大的目标!

OSI模型

OSI模型

  • 为了使数据可以在网络上从源传递到目的地,网络上所有设备需要“讲”相同的“语言”

  • 描述网络通信中“语言”规范的一组规则就是协议

  •                   例如:两个人交谈,必须使用相同的语     
    
  •                   言,如果你说汉语,他说阿拉伯语……
    
  • 决定数据的格式和传输的一组规则或者一组惯例

  • 数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够阅读

  • 为了降低网络设计的复杂性,将协议进行了分层设计

OSI参考模型

层次功能
7. 应用层对应用程序提供接口
6. 表示层进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解
5. 会话层在通信双方之间建立、管理和终止会话
4. 传输层建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等
3. 网络层定义逻辑地址;实现数据从源到目的地的转发
2. 数据链路层将分组数据封装成帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测
1. 物理层在媒介上传输比特流;提供机械的和电气的规约

[!tip]

OSI模型(Open Systems Interconnection Model),由国际化标准组织ISO(The International Organization for Standardization)收录在ISO 7489标准中并于1984年发布。
OSI参考模型又被称为七层模型,由下至上依次为:
物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。
数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
网络层:定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络。
传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

TCP/IP参考模型

  • 因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型

TCP/IP参考模型

[!tip]

TCP/IP模型在结构上与OSI模型类似,采用分层架构,同时层与层之间联系紧密。
TCP/IP标准参考模型将OSI中的数据链路层和物理层合并为网络接入层,这种划分方式其实是有悖于现实协议制定情况的,故融合了TCP/IP标准模型和OSI模型的TCP/IP对等模型被提出,后面的讲解也都将基于这种模型。
TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常用的组网形式。它是一个真正的开放系统,因为协议族的定义及其多种实现,可以不用花钱或花很少的钱就可以公开得到。它成为被称作“全球互联网”或“因特网(Internet)”的基础。
与OSI参考模型一样,TCP(Transfer Control Protocol)/IP(Internet Protocol)协议(传输控制协议/网际协议)也分为不同的层次开发,每一层负责不同的通信功能。但是,TCP/IP协议简化了层次设计,只有五层:应用层、传输层、网络层、数据链路层和物理层。从上图可以看出,TCP/IP协议栈与OSI参考模型有清晰的对应关系,覆盖了OSI参考模型的所有层次。应用层包含了OSI参考模型所有高层协议。
因为TCP/IP协议栈支持所有标准的物理层和数据链路层协议,而且物理层和数据链路层在前面已经做过简述,所以本章不对TCP/IP协议的物理层和数据链路层做进一步的描述。关于这两层协议和标准的深入细节,在后续章节会有讲解。

[!tip]

OSI参考模型与TCP/IP协议栈的异同点:
相同点
都是分层结构,并且工作模式一样,都要求层和层之间具备很密切的协作关系;
有相同的应用层,传输层,网络层,数据链路层,物理层;(注意:这里为了方便比较,才将TCP/IP分为5层,在其他很多文献资料里都把数据链路层和物理层合并为数据链路层或网络接口层:(Network Access Layer);
都使用包交换技术(Packet-Switched);
网络工程师必须都要了解这两个模型。
不同点
TCP/IP把表示层和会话层都归入了应用层;
TCP/IP的结构比较简单,因为分层少;
TCP/IP标准是在Internet网络不断的发展中建立的,基于实践,有很高的信任度。相比较而言,OSI参考模型是基于理论上的,是作为一种向导!

发送方数据封装

发送方数据封装

[!tip]

假设你正在通过网页浏览器访问华为官网,当你输入完网址,敲下回车后,计算机内部会发生下列事情:
IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装(图中DATA还应包括HTTP头部,此处省略)。
HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。
TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段)。
在IPv4网络中,TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6环境,会交给IPv6模块进行处理)。
IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包)。
由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理。
Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信息和FCS帧尾,此时的PDU被称为Frame(帧)。
在Ethernet模块封装完毕之后,会将数据传递到物理层。
根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等。
转换完成的信号在网络中开始传递。

中间网络数据传输

  • 封装好的完整数据,将会在网络中被传递

中间网络数据传输

[!tip]

一般情况下:
网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。
网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。
注:“交换”和“路由”的详细细节和原则,将会在后面的课程中详细介绍。

接收方数据解封装

接收方数据解封装

[!tip]

经过中间网络传递之后,数据最终到达目的服务器。根据不同的协议头部的信息,数据将被一层层地解封装并做相应的处理和传递,最终交由WEB服务器上的应用程序进行处理。

TCP/IP常见协议

TCP/IP常见协议

[!tip]

协议介绍:
HTTP:Hypertext Transfer Protocol,超文本传输协议,用来访问在网页服务器上的各种页面。
FTP:File Transfer Protocol,文件传输协议,为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。
DNS:Domain Name Service,域名称解析服务,用于实现从主机域名到IP地址之间的转换。
TCP:Transmission Control Protocol,传输控制协议,为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。
UDP:User Datagram Protocol,用户数据报协议,提供了无连接通信,且不对传送数据包进行可靠性的保证。
IP:Internet Protocol,互联网协议,将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。
IGMP:Internet Group Management Protocol,因特网组管理协议,负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
ICMP:Internet Control Message Protocol,网际报文控制协议,基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。
ARP:Address Resolution Protocol,地址解析协议,是根据IP地址获取数据链路层地址的一个TCP/IP协议,其主要功能:将IP地址解析为MAC地址、维护IP地址与MAC地址的映射关系的缓存(ARP表)、实现网段内重复IP地址的检测。

TCP协议

TCP协议头部格式

  • TCP为应用程序提供一种面向连接的、可靠的服务
  • TCP的可靠性
    • 面向连接的传输
    • 最大报文段长度
    • 传输确认机制
    • 首部和数据的检验和
    • 流量控制
  • 20 Bytes

[!tip]

TCP传输控制协议为应用程序提供可靠的、面向连接的服务。
TCP通过如下几方面提供其可靠性:
面向连接的传输:TCP的任何一方进行数据传输之前必须在双方之间建立连接。
MSS(最大报文段长度):表示TCP发往另一端的最大报文段长度。当一个连接建立时,连接的双方都要通告各自己的MSS,以充分利用带宽资源。
传输确认机制:当TCP传输一个数据段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到目的端的确认报文,TCP将重传该数据段。
首部和数据的检验和:TCP将保持首部和数据的检验和,这是一个端到端的检验。目的是检测数据在传输过程中的变化。如果收到段的检验和有所差错,TCP将丢弃该报文段并不确认收到此报文段。因此TCP将启动重传机制。
流量控制:TCP还能提供流量控制。TCP连接的每一方都有一个固定大小的缓冲空间。TCP接收端只允许另一端发送接收缓冲区所能够容纳的数据。这能够防止较快的主机致使较慢的主机缓冲区溢出。

UDP协议

UDP协议头部格式

  • UDP为应用程序提供面向无连接的服务。传输数据之前,源端和目的端不需要建立连接
  • 不需要维护连接状态,收发状态等,因此服务器可同时向多个客户端传输相同的消息
  • UDP适用于对传输效率要求高的运用

[!tip]

UDP为应用程序提供面向无连接的服务,所以在传数据之前源端和目的端之间不必要像TCP一样需要事先建立连接。正由于UDP是基于无连接的传输协议,所以UDP不需要去维护连接状态和收发状态,因此服务器可同时向多个客户端传输相同的消息。
UDP适用于对传输效率要求高的应用,应用层能提供可靠性的保障。如常用于认证计费的Radius协议、RIP路由协议都是基于UDP的。

TCP VS UDP

TCPUDP
面向连接
可靠传输,采用流量控制和拥塞控制
头部封装20-60 B
适用于要求可靠传输的应用,例如文件传输等
面向无连接
不可靠传输,报文可靠性依靠上层应用保证
头部封装小,8 B
适用于实时应用,例如视频会议等

[!tip]

TCP协议可靠,但也是因为它的可靠机制,导致它传输报文效率不高,封装开销也较高。
UDP面向无连接,不可靠,但传输效率相对较高。

Telnet协议

  • Telnet是数据网络中提供远程登录服务的标准协议,为用户提供了在本地计算机上完成远程设备工作的能力,其数据采用明文方式传输
  • 用户通过Telnet客户端程序连接到Telnet服务器。用户在Telnet客户端中输入命令,这些命令会在服务器端运行,就像直接在服务端的控制台上输入一样

Telnet协议

[!tip]

Telnet协议的优势在于通过它可以远程地登录到网络设备上,对网络设备进行配置,为网络管理员异地管理网络设备提供了极大的方便。
但是Telnet协议存在三个弱点:
数据传输采用明文方式,传输的数据没有任何机密性可言。
认证机制脆弱。用户的认证信息在网络上以明文方式传输,很容易被窃听;Telnet 只支持传统的密码认证方式,很容易被攻击。
客户端无法真正识别服务器的身份,攻击者很容易进行“伪服务器欺骗”。SSH协议正是为了克服Telnet协议存在的问题而诞生的。

SSH协议

  • SSH协议是一种在不安全的网络环境中,通过加密和认证机制,实现安全的远程访问以及文件传输等业务的网络安全协议
  • 为解决Telnet协议安全性上的不足,SSH协议应运而生,为用户安全接入远端设备管理提供了保障
  • SSH协议采用客户端/服务器架构,分为传输层、认证层和连接层

SSH协议

[!tip]

SSH协议层:
传输层:主要用来在客户端和服务器之间建立一条安全的加密通道,为用户认证、数据交互等对数据传输安全性要求较高的阶段提供足够的机密性保护。
认证层:运行在传输层协议之上,完成服务器对登录用户的认证。
连接层:负责在加密通道上划分出若干逻辑通道,以运行不同的应用。它运行在认证层协议之上,提供交互会话、远程命令执行等服务。
SSH的报文交互主要有以下几个阶段:
连接建立
版本协商
算法协商
密钥交换
用户认证
服务请求
数据传输和连接关闭

Telnet VS SSH

TelnetSSH
数据传输采用明文方式
认证机制脆弱,用户的认证信息在网络上以明文方式传输
只支持传统的密码认证方式
客户端无法真正识别服务器的身份
数据传输采用密文的方式
用户的认证信息以密文的方式传输
除了传统的密码认证,SSH服务器还可以采用多种方式对用户进行认证(如安全性级别更高的公钥认证)
客户端和服务器端之间通信使用动态生成的加解密密钥
为客户端提供了认证服务器的功能

[!tip]

SSH协议在发送数据时会对数据进行加密操作,数据传输更安全,常用在需要加密认证的场景。
但在一些测试、无需加密的场合(如局域网),Telnet协议仍常被使用。

交换技术基础

以太网协议

  • 以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。
  • 以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。

以太网协议

[!tip]

早期的以太网:
以太网是建立在CSMA/CD机制上的广播型网络。冲突的产生是限制以太网性能的重要因素,早期的以太网设备如集线器HUB是物理层设备,不能隔绝冲突扩散,限制了网络性能的提高。
交换机组网:
交换机做为一种能隔绝冲突的二层网络设备,极大的提高了以太网的性能,并替代HUB成为主流的以太网设备。但是交换机对网络中的广播数据流量不做任何限制,这也影响了网络的性能。

冲突域

冲突域

  • 冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。

[!tip]

在共享网络,以太网络使用CSMA/CD技术,避免冲突问题。CSMA/CD的基本工作过程如下:
终端设备不停的检测共享线路的状态。
如果线路空闲则发送数据。
如果线路不空闲则一直等待。
如果有另外一个设备同时发送数据,两个设备发送的数据必然产生冲突,导致线路上的信号不稳定。
终端设备检测到这种不稳定之后,马上停止发送自己的数据。
终端设备发送一连串干扰脉冲,然后等待一段时间之后再进行发送数据。发送干扰脉冲的目的是为了通知其他设备,特别是跟自己在同一个时刻发送数据的设备,线路上已经产生了冲突。
CSMA/CD的工作原理可简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。

广播域

广播域

  • 广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。

[!tip]

全1MAC地址FF-FF-FF-FF-FF-FF为广播地址,所有节点都会处理目的地址为广播地址的数据帧,该数据帧所能到达的整个访问范围称为二层广播域,简称广播域。

注:MAC (Media Access Control)地址,在网络中唯一标识一个网卡,每个网卡都需要并会有唯一的一个MAC地址,后面课程内容会具体讲。

以太网卡

以太网卡

  • 网络接口卡 (Network Interface Card, NIC)也称为“网卡”,是计算机、交换机、路由器等网络设备与外部网络世界相连的关键部件。

  • 网络接口

    • 简称“网口”或“接口”或“端口”。
  • 网卡

    • 每个网口都有一块网卡与之对应。
    • 计算机或交换机通过网卡来转发数据。

[!tip]

网卡有很多类型,本章节我们提及的都指以太网接口卡,简称以太网卡或以太卡。
我们所说的交换机也均为以太网交换机,则交换机上每个转发数据的网口所使用的网卡都是以太网卡。

什么是MAC地址

  • MAC (Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要并拥有唯一的一个MAC地址。
  • 一块网卡的MAC地址是具有全球唯一性的。

什么是MAC地址

[!tip]

MAC地址是在IEEE 802标准中定义并规范的,凡是符合IEEE 802标准的以太网卡,都必须拥有一个MAC地址,用MAC地址来定义网络设备的位置。不同的网卡,MAC地址也不同。

IP地址 vs MAC地址

  • 每个以太网设备在出厂时都有一个唯一的MAC地址,但在设备接入网络时,会同时为每台主机再分配一个IP地址,这个原因是什么?

IP地址 vs MAC地址

[!tip]

每个以太网设备在出厂时都有一个唯一的MAC地址,那为什么还需要为每台主机再分配一个IP地址呢?或者说每台主机都分配唯一的IP地址了,为什么还要在网络设备 (如:网卡) 生产时内嵌一个唯一的MAC地址呢?
主要原因有:
IP地址是根据网络的拓朴结构分配的,MAC地址是根据制造商分配的,若路由选择建立在设备制造商的基础上,这种方案是不可行的。
当存在两层地址寻址时,设备更灵活,易于移动和维修。
例如,如果一个以太网卡坏了,可以被更换,而无须更换一个新的IP地址;如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。
总结:
IP地址的作用是唯一标识网络中的一个节点,可以通过IP地址进行不同网段的数据访问。
MAC地址的作用是唯一标识一个网卡,可以通过MAC地址进行同网段的数据访问。

MAC地址表示

MAC地址表示

  • 一个MAC地址有48 bit,6 Byte。
  • MAC地址通常采用“十六进制”+“-”表示。

[!tip]

MAC地址由48比特(6个字节)长,12位的16进制数字组成。

MAC地址构成及分类

  • OUI (Organizationally Unique Identifier):厂商代码,由IEEE分配,3 Byte,24 bit。
  • 制造商分配:3 Byte,24 bit

MAC地址构成及分类

[!tip]

一个制造商在生产制造网卡之前,必须先向IEEE注册,以获取一个长度为24bit (3字节)的厂商代码,也称为OUI。
后24bit由厂商自行分派,是各个厂商制造的所有网卡的唯一编号。
MAC地址可以分为3种类型:
单播MAC地址:也称物理MAC地址,这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址。
单播MAC地址用于标识链路上的一个单一节点。
目的MAC地址为单播MAC地址的帧发往一个单一的节点。
单播MAC地址可以作为源或目的地址。
注意:单播MAC地址具有全球唯一性,当一个二层网络中接入了两台具有相同MAC地址的终端时(例如误操作等),将会引发通信故障(例如这两台终端无法相互通信),且其他设备与它们之间的通信也会存在问题。
广播MAC地址:全1的MAC地址(FF-FF-FF-FF-FF-FF),用来表示局域网上的所有终端设备。
广播MAC地址可以理解为一种特殊的组播MAC地址。
其具体格式为:FFFF-FFFF-FFFF。
目的MAC地址为广播MAC地址的帧发往链路上的所有节点。
组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(例如01-00-00-00-00-00),用来代表局域网上的一组终端。
组播MAC地址用于标识链路上的一组节点。
目的MAC地址为组播MAC地址的帧发往一组节点。
组播MAC地址不能作为源地址,只能作为目的地址。

单播以太帧

[!tip]

局域网上的帧可以通过三种方式发送。
第一种是单播,指从单一的源端发送到单一的目的端。
每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。

单播以太帧

广播以太帧

[!tip]

第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。
广播帧的目的MAC地址为十六进制的FF-FF-FF-FF-FF-FF,所有收到该广播帧的主机都要接收并处理这个帧。
广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。
当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

广播以太帧

组播以太帧

[!tip]

第三种发送方式为组播,组播比广播更加高效。
组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。
组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1。
当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。

组播以太帧

以太网帧格式

  • 以太网技术所使用的帧称为以太网帧 (Ethernet Frame),或简称以太帧。
  • 以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式。

以太网帧格式

[!tip]

在以太网中,数据通信的基本单位是以太网帧 ( Frame )。以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式,因此协议规定以太网帧的数据格式如图所示。
Ethernet Ⅱ以太帧:
DMAC:6字节,目的MAC地址,6字节,该字段标识帧的接收者。
SMAC:6字节,源MAC地址,6字节,该字段标识帧的发送者。
Type:2字节,协议类型。常见值:
0x0800:Internet Protocol Version 4 (IPv4) ;
0x0806:Address Resolution Protocol (ARP) 。
IEEE 802.3 LLC以太帧:
逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成。
DSAP:1字节,目的服务访问点,若后面类型为IP值设为0x06。服务访问点的功能类似于Ethernet II帧中的Type字段或TCP/UDP传输协议中的端口号。
SSAP:1字节,源服务访问点,若后面类型为IP值设为0x06。
Ctrl:1字节,该字段值通常设为0x03,表示无连接服务的IEEE 802.2无编号数据格式。

园区网典型架构

园区网典型架构

  • 接入层、汇聚层、核心层、出口层

[!tip]

一个典型的园区数据网络由路由器、交换机、防火墙等设备构成,通常会采用多层架构,包括:接入层、汇聚层、核心层和出口层。

以太网二层交换机

  • 以太网二层交换机转发数据的端口都是以太网口,并且只能够针对数据的二层头部(以太网数据帧头)中的MAC地址进行寻址并转发数据。

以太网二层交换机

[!tip]

通信网络架构及组成在之前的课件中已介绍,以太网二层交换机主要用来接入用户及终端设备,处在通信网络架构的边缘,属于接入设备。
以太网二层交换机:
在园区网络中,交换机一般来说是距离终端用户最近的设备,用于终端接入园区网,接入层的交换机一般为二层交换机。
二层交换设备工作在TCP/IP对等模型的第二层,即数据链路层,它对数据包的转发是建立在MAC(Media Access Control)地址基础之上的。
以太网三层交换机:
不同局域网之间的网络互通需要由路由器来完成。随着数据通信网络范围的不断扩大,网络业务的不断丰富,网络间互访的需求越来越大,而路由器由于自身成本高、转发性能低、接口数量少等特点无法很好地满足网络发展的需求。因此出现了三层交换机这样一种能实现高速三层转发的设备。
注意:本课程中所涉及的交换机,均指以太网二层交换机。

交换机的工作原理

  • 以太网二层交换机转发数据的端口都是以太网口,并且只能够针对数据的二层头部(以太网数据帧头)中的MAC地址进行寻址并转发数据。

交换机工作原理

[!tip]

二层交换机工作在数据链路层,它对数据帧的转发是建立在MAC地址基础之上的。交换机不同的接口发送和接收数据是独立的,各接口属于不同的冲突域,因此有效地隔离了网络中的冲突域。
二层交换设备通过学习以太网数据帧的源MAC地址来维护MAC地址与接口的对应关系(保存MAC与接口对应关系的表称为MAC地址表),通过其目的MAC地址来查找MAC地址表决定向哪个接口转发。

MAC地址表

  • 每台交换机中都有一个MAC地址表,存放了MAC地址与交换机端口编号之间的映射关系。

MAC地址表

[!tip]

MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系。交换机在转发数据帧时,根据数据帧的目的MAC地址查询MAC地址表。如果MAC地址表中包含与该帧目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含该帧目的MAC地址对应的表项时,交换机将采取泛洪方式在除接收接口外的所有接口发送该报文。

交换机的3种数据帧处理行为

  • 交换机对于从传输介质进入某一端口的帧的处理行为一共有3种:

  • 泛洪(Flooding):从除接收端口外的所有端口转发

  • 转发(Forwarding):根据MAC地址表从指定端口转发

  • 丢弃(Discarding):源端口与目的端口相同时丢弃

交换机的3种数据帧处理行为

[!tip]

交换机会通过传输介质进入其端口的每一个帧都进行转发操作,交换机的基本作用就是用来转发数据帧。
交换机对帧的处理行为一共有三种:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)。
泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。
转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。
丢弃:交换机把从某一端口进来的帧直接丢弃。

泛洪

[!tip]

如果从传输介质进入交换机的某个端口的帧是一个单播帧,交换机会去MAC表查这个帧的目的MAC地址。如果查不到这个MAC地址,则交换机将对该单播帧执行泛洪操作。
如果从传输介质进入交换机的某个端口的帧是一个广播帧,交换机不会去查MAC地址表,而是直接对该广播帧执行泛洪操作。
如图所示:
场景一:主机1想要访问主机2,发送单播数据帧,交换机收到后,若MAC地址表中查不到对应的表项,则会泛洪该数据帧。
场景二:主机1想要访问主机2,但不知道对应的MAC地址,则会发送ARP请求报文,该报文为广播数据帧,交换机收到后,则会泛洪该数据帧。

泛洪

转发

[!tip]

如果从传输介质进入交换机的某个端口的帧是一个单播帧,则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表,则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果不是,则交换机执行转发操作(将该帧送至该帧目的MAC地址在MAC地址表中对应的那个端口,并从那个端口发送出去)。
如图所示:
主机1想要访问主机2,发送单播数据帧,交换机收到后,在MAC地址表中查到了对应的表项,则会点对点转发该数据帧。

转发

丢弃

[!tip]

如果从传输介质进入交换机的某个端口的帧是一个单播帧,则交换机会去MAC表查这个帧的目的MAC地址。如果查到了这个MAC地址表,则比较这个MAC地址在MAC地址表中对应的端口编号是不是这个帧从传输介质进入交换机的那个端口的端口编号。如果是,则交换机将对该帧执行丢弃操作。
如图所示:
主机1想要访问主机2,发送单播数据帧,交换机1收到后,若MAC地址表中查不到对应的表项,则会泛洪该数据帧。
交换机2收到该数据帧后,发现目的MAC地址对应的端口就是接收数据帧的端口,则会丢弃该数据帧。

丢弃

交换机的MAC地址学习 (1)

交换机的MAC地址学习(1)

[!tip]

初始状态下,交换机并不知道所连接主机的MAC地址,所以MAC地址表为空。

交换机的MAC地址学习 (2)

交换机的MAC地址学习(2)

[!tip]

主机1想要发送数据给主机2(假设已知对端的IP地址和MAC地址),会封装数据帧,包含自己的源IP地址和源MAC地址。
交换机收到后会查自己的MAC地址表,发现没有对应表项,则收到的数据帧是“未知单播帧” 。

交换机的MAC地址学习 (3)

交换机的MAC地址学习(3)

[!tip]

由于收到的数据帧是“未知单播帧”,因此交换机会泛洪该数据帧。
同时,交换机将收到的数据帧的源MAC地址和对应端口编号记录到MAC地址表中。

注意:MAC地址表中动态学习的表项并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到更新的表项将被删除,这个生存周期被称作老化时间。例如华为S系列交换机的老化时间缺省值是300秒。

交换机的MAC地址学习 (4)

交换机的MAC地址学习(4)

[!tip]

广播网络中的所有主机均会收到该数据帧,但是只有主机2会处理(因为目的MAC地址是主机2)。
主机2会回复数据帧给主机1,也是单播数据帧。

交换机的MAC地址学习 (5)

交换机的MAC地址学习(5)

[!tip]

交换机收到该单播数据帧后,会查看自己的MAC地址表,发现有对应的表项,则将数据从对应的端口转发出去。
同时,交换机将收到的数据帧的源MAC地址和对应端口编号记录到MAC地址表中。

同网段数据通信全过程

  • 场景描述:
    • 任务:主机1想要访问主机2
    • 主机:初始化状态,仅知道本机IP地址和MAC地址(假设已获取对端IP地址)
    • 交换机:刚上电,初始化状态

同网段数据通信全过程

数据封装过程

数据封装过程

[!tip]

主机1在发送数据报文前,需要先进行报文封装,包括源目IP地址、源目MAC地址等。

初始状态

初始状态

[!tip]

主机1为了进行报文封装,会查本地的ARP缓存表。初始状态下,主机1的ARP缓存是空的。
而刚上电的交换机,初始状态下,交换机的MAC地址表也是空的。

泛洪数据帧

泛洪数据帧

[!tip]

主机1发送ARP请求报文,请求目的MAC地址。
交换机收到的数据帧后查MAC地址表,发现没有对应表项,则向所有非接收端口,泛洪该数据帧。

学习MAC地址

学习MAC地址

[!tip]

交换机将收到的数据帧的源MAC地址和对应端口记录到MAC地址表中。

目标主机回复

目标主机回复

[!tip]

主机2收到ARP请求报文后,会进行相应的处理,并发送ARP响应报文,回复主机1。
交换机收到的数据帧后查MAC地址表,发现有对应表项,则向对应端口转发该数据帧;并且交换机将收到的数据帧的源MAC地址和对应端口记录到MAC地址表中。
最终,主机1收到主机2的ARP响应报文后,就会将对应的IP地址和MAC地址记录到自己的ARP缓存中,并封装自己的报文,访问主机2。

VLAN的产生原因

  • 以太网缺少转发控制手段,广播影响范围广

VLAN的产生原因

[!tip]

传统的以太网交换机在转发数据时,采用源地址学习的方式,自动学习各个端口连接的主机的MAC地址,形成转发表,然后依据此表进行以太网帧的转发,整个转发的过程自动完成,所有端口都可以互访,维护人员无法控制端口之间的转发,例如实现B主机不能访问A主机。该网络存在如下缺陷:
网络的安全性差。由于各个端口之间可以直接互访,增加了用户进行网络攻击的可能性。
网络效率低。用户可能收到大量不需要的报文,这些报文同时消耗网络带宽资源和客户主机CPU资源,例如不必要的广播报文。
业务扩展能力差。网络设备平等的对待每台主机的报文,无法实现有差别的服务,例如无法优先转发用于网络管理的以太网帧。

VLAN技术的目标

  • VLAN技术把用户划分成多个逻辑的网络(组),组内可以通信,组间不允许通信,二层转发的单播、组播、广播报文只能在组内转发。同时,VLAN技术可以很容易地实现组成员的添加或删除

VLAN技术的目标

[!tip]

VLAN技术提供了一种管理手段,控制终端之间的互通。如上图,组1和组2的PC无法相互通信。

什么是VLAN

什么是VLAN

  • VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术

[!tip]

VLAN内的主机间可以直接通信,而VLAN间不能直接互通,从而将广播报文限制在一个VLAN内。由于VLAN间不能直接互访,从而提高了网络安全性。例如,同一个写字楼的不同企业客户,若建立各自独立的LAN,企业的网络投资成本将很高;若共用写字楼已有的LAN,又会导致企业信息安全无法保证。采用VLAN,可以实现各企业客户共享LAN设施,同时保证各自的网络信息安全。
上图是一个典型的VLAN应用组网图。3台交换机放置在不同的地点,比如写字楼的不同楼层。每台交换机分别连接3台计算机,他们分别属于3个不同的VLAN,比如不同的企业客户。

VLAN的划分方式

VLAN的划分方式

VLAN划分方式VLAN 10VLAN 20
基于接口GE0/0/1,GE0/0/3GE0/0/2,GE0/0/4
基于MAC地址MAC 1,MAC 3MAC 2,MAC 4
基于IP子网划分10.0.1.*10.0.2.*
基于协议划分IPIPv6
基于策略10.0.1.* + GE0/0/1+ MAC 110.0.2.* + GE0/0/2 + MAC 2

VLAN的接口类型

  • Access接口:只能属于一个VLAN,用于连接终端设备
  • Trunk接口:可以属于多个VLAN,用于交换机之间互联
  • Hybrid接口:可以属于多个VLAN,可灵活配置Tagged/Untagged

[!tip]

计算机发出的数据帧不带任何标签。对已支持VLAN特性的交换机来说,当计算机发出的Untagged帧一旦进入交换机后,交换机必须通过某种划分原则把这个帧划分到某个特定的VLAN中去。
VLAN的划分包括如下5种方法:
基于接口划分:根据交换机的接口来划分VLAN。
网络管理员预先给交换机的每个接口配置不同的PVID,当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打上接口指定PVID的标签,然后数据帧将在指定VLAN中传输。
基于MAC地址划分:根据数据帧的源MAC地址来划分VLAN。
网络管理员预先配置MAC地址和VLAN ID映射关系表,当交换机收到的是Untagged帧时,就依据该表给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输。
基于IP子网划分:根据数据帧中的源IP地址和子网掩码来划分VLAN。
网络管理员预先配置IP地址和VLAN ID映射关系表,当交换机收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输。

VLAN数据帧

VLAN数据帧

[!tip]

在一个VLAN交换网络中,以太网帧主要有以下两种形式:
有标记帧(Tagged帧):IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag)的数据帧。
无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的数据帧。
VLAN数据帧中的主要字段:
TPID:2字节,Tag Protocol Identifier(标签协议标识符),表示数据帧类型。
取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时,为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。
PRI:3 bit,Priority,表示数据帧的优先级,用于QoS。
取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。

[!tip]

基于协议划分:根据数据帧所属的协议(族)类型及封装格式来划分VLAN。
网络管理员预先配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输。
基于策略划分:根据配置的策略划分VLAN,能实现多种组合的划分方式,包括接口、MAC地址、IP地址等。
网络管理员预先配置策略,如果收到的是Untagged帧,且匹配配置的策略时,给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输。

基于接口的VLAN划分

基于接口的VLAN划分

  • 原理
    • 根据交换机的接口来划分VLAN
    • 网络管理员预先给交换机的每个接口配置不同的PVID,将该接口划入PVID对应的VLAN
    • 当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打上接口指定PVID的Tag,然后数据帧将在指定PVID中传输
  • 缺省VLAN,PVID
    • Port VLAN ID,是接口上的缺省VLAN
    • 取值:1~4094

[!tip]

划分原则:
将VLAN ID配置到交换机的物理接口上,从某一个物理接口进入交换机的、由终端计算机发送的Untagged数据帧都被划分到该接口的VLAN ID所表明的那个VLAN。
特点:
这种划分原则简单而直观,实现容易,是目前实际网络应用中最为广泛的划分VLAN的方式。
当计算机接入交换机的端口发生变化时,该计算机发送的帧的VLAN归属可能会发生变化。
缺省VLAN,PVID(Port VLAN ID):
每个交换机的接口都应该配置一个PVID,到达这个端口的Untagged帧将一律被交换机划分到PVID所指代的VLAN。
默认情况下,PVID的值为1。

VLAN的接口类型

VLAN的接口类型

  • Access接口:交换机上常用来连接用户PC、服务器等终端设备的接口。Access接口所连接的这些设备的网卡往往只收发无标记帧。Access接口只能加入一个VLAN
  • Trunk接口:Trunk接口允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。Trunk接口常用于交换机之间的互联,也用于连接路由器、防火墙等设备的子接口
  • Hybrid接口:Hybrid接口与Trunk接口类似,也允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。用户可以灵活指定Hybrid接口在发送某个(或某些)VLAN的数据帧时是否携带Tag

[!tip]

基于接口的VLAN划分依赖于交换机的接口类型。
Access接口
Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。
Trunk接口
Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端。
Hybrid接口
Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器等),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。
华为设备默认的接口类型是Hybrid。

Access接口

Access接口

[!tip]

上文已经介绍了交换机如何识别数据帧属于哪个VLAN以及VLAN的划分方式,那交换机对于Untagged帧和Tagged帧又是如何处理的呢?
Access接口特点:
仅允许VLAN ID与接口PVID相同的数据帧通过。
Access接口接收数据帧:
当Access接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后对得到的Tagged帧进行转发操作(泛洪、转发、丢弃)。
当Access接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否与PVID相同。如果相同,则对这个Tagged帧进行转发操作;如果不同,则直接丢弃这个Tagged帧。
Access接口发送数据帧:
当一个Tagged帧从本交换机的其他接口到达一个Access接口后,交换机会检查这个帧的Tag中的VID是否与PVID相同:
如果相同,则将这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去;
如果不同,则直接丢弃这个Tagged帧。

Trunk接口

Trunk接口

[!tip]

对于Trunk接口,除了要配置PVID外,还必须配置允许通过的VLAN ID列表,其中VLAN 1是默认存在的。
Trunk接口特点:
Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过。
Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。
Trunk接口接收数据帧:
当Trunk接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在允许通过的VLAN ID列表中。如果在,则对得到的Tagged帧进行转发操作;如果不在,则直接丢弃得到的Tagged帧。
当Trunk接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否在允许通过的VLAN ID列表中。如果在,则对这个Tagged帧进行转发操作;如果不在,则直接丢弃这个Tagged帧。
Trunk接口发送数据帧:
当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的VID不在允许通过的VLAN ID列表中,则该Tagged帧会被直接丢弃。
当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的VID在允许通过的VLAN ID列表中,则会比较该Tag中的VID是否与接口的PVID相同:
如果相同,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去;
如果不同,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去。

Access接口与Trunk接口举例

  • 请描述主机之间数据访问的全流程。

Access接口与Trunk接口举例

[!tip]

在本例中,SW1和SW2连接主机的接口为Access接口,PVID如图所示。SW1和SW2互连的接口为Trunk接口,PVID都为1,此Trunk接口的允许通过的VLAN ID列表也如图所示。
请描述主机之间数据互访的全流程。

Hybrid接口

Hybrid接口

[!tip]

对于Hybrid接口,除了要配置PVID外,还存在两个允许通过的VLAN ID列表,一个是Untagged VLAN ID列表,另一个是Tagged VLAN ID列表,其中VLAN 1默认在Untagged VLAN列表中。这两个允许通过列表中的所有VLAN的帧都是允许通过这个Hybrid接口的。
Hybrid接口特点:
Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过。
Hybrid接口可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag。
与Trunk最主要的区别就是,能够支持多个VLAN的数据帧,不带标签通过。
Hybrid接口接收数据帧:
当Hybrid接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在Untagged或Tagged VLAN ID列表中。如果在,则对得到的Tagged帧进行转发操作;如果不在,则直接丢弃得到的Tagged帧。
当Hybrid接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否在Untagged或Tagged VLAN ID列表中。如果在,则对这个Tagged帧进行转发操作;如果不在,则直接丢弃这个Tagged帧。
Hybrid接口发送数据帧:
当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID既不在Untagged VLAN ID列表中,也不在Tagged VLAN ID列表中,则该Tagged帧会被直接丢弃。
当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Untagged VLAN ID列表中,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去。
当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Tagged VLAN ID列表中,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去。

Hybrid接口举例

  • 请描述主机访问服务器的全流程。

Hybrid接口举例

[!tip]

在本例中,SW1和SW2连接主机的接口以及互连的接口均为Hybrid接口,PVID如图所示,Hybrid接口的允许通过的VLAN ID列表也如图所示。
请描述两个主机互访服务器的全流程。

小结

Access接口Trunk接口Hybrid接口
接收数据帧Untagged数据帧,打上PVID,接收。Tagged数据帧,与PVID比较,相同则接收;不同则丢弃。Untagged数据帧,打上PVID,且VID在允许列表中则接收;VID不在允许列表则丢弃。Tagged数据帧,查看VID是否在允许列表中,在则接收;不在则丢弃。Untagged数据帧,打上PVID,且VID在允许列表中则接收;VID不在允许列表中则丢弃。Tagged数据帧,查看VID是否在允许列表中,在则接收;不在则丢弃。
发送数据帧VID与PVID比较,相同则剥离标签发送;不同则丢弃。VID在允许列表中,且VID与PVID一致,则剥离标签发送。VID在允许列表中,但VID与PVID不一致,则直接带标签发送。不在允许列表中,则直接丢弃。VID不在允许列表中,直接丢弃。VID在Untagged列表中,剥离标签发送。VID在Tagged列表中,带标签直接发送。

[!tip]

各类接口添加或剥除VLAN标签的处理过程总结如下:
当接收数据帧时:
当接收到不带VLAN标签的数据帧时,Access接口、Trunk接口、Hybrid接口都会给数据帧打上VLAN标签,但Trunk接口、Hybrid接口会根据数据帧的VID是否为其允许通过的VLAN来判断是否接收,而Access接口则无条件接收。
当接收到带VLAN标签的数据帧时,Access接口、Trunk接口、Hybrid接口都会根据数据帧的VID是否为其允许通过的VLAN(Access接口允许通过的VLAN就是缺省VLAN)来判断是否接收。
当发送数据帧时:
Access接口直接剥离数据帧中的VLAN标签。
Trunk接口只有在数据帧中的VID与接口的PVID相等时才会剥离数据帧中的VLAN标签。
Hybrid接口会根据接口上的配置判断是否剥离数据帧中的VLAN标签。
因此,Access接口发出的数据帧肯定不带Tag;Trunk接口发出的数据帧只有一个VLAN的数据帧不带Tag,其他都带VLAN标签;Hybrid接口发出的数据帧可根据需要设置某些VLAN的数据帧带Tag,某些VLAN的数据帧不带Tag。

VLAN的基础配置命令

  • 创建VLAN
[Huawei] vlan vlan-id
  • 通过此命令创建VLAN并进入VLAN视图,如果VLAN已存在,直接进入该VLAN的视图
  • vlan-id是整数形式,取值范围是1~4094
[Huawei] vlan batch { vlan-id1 [ to vlan-id2 ] }

通过此命令批量创建VLAN。其中:

  • batch:指定批量创建的VLAN ID
  • vlan-id1:表示第一个VLAN的编号
  • vlan-id2:表示最后一个VLAN的编号

Access接口的基础配置命令

  • 配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type access
  • 在接口视图下,配置接口的链路类型为Access

  • 配置Access接口的缺省VLAN

[Huawei-GigabitEthernet0/0/1] port default vlan vlan-id
  • 在接口视图下,配置接口的缺省VLAN并同时加入这个VLAN
  • vlan-id:配置缺省VLAN的编号。整数形式,取值范围是1~4094

Trunk接口的基础配置命令

  • 配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type trunk
  • 在接口视图下,配置接口的链路类型为Trunk

  • 配置Trunk接口加入指定VLAN

[Huawei-GigabitEthernet0/0/1] port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }
  • 在接口视图下,配置Trunk类型接口加入的VLAN

  • (可选)配置Trunk接口的缺省VLAN

[Huawei-GigabitEthernet0/0/1] port trunk pvid vlan vlan-id
  • 在接口视图下,配置Trunk类型接口的缺省VLAN

[!tip]

命令:port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }
vlan-id1 [ to vlan-id2 ]:指定Trunk类型接口加入的VLAN,其中:
vlan-id1表示第一个VLAN的编号。
to vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值。
vlan-id1和vlan-id 2为整数形式,取值范围是1~4094。
all:指定Trunk接口加入所有VLAN。
命令:port trunk pvid vlan vlan-id,设置Trunk类型接口的缺省VLAN。
vlan-id:指定Trunk类型接口的缺省VLAN编号。整数形式,取值范围是1~4094。

[!tip]

命令:port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] | all }
vlan-id1 [ to vlan-id2 ]:指定Trunk类型接口加入的VLAN,其中:
vlan-id1表示第一个VLAN的编号。
to vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值。
vlan-id1和vlan-id 2为整数形式,取值范围是1~4094。
all:指定Trunk接口加入所有VLAN。
命令:port trunk pvid vlan vlan-id,设置Trunk类型接口的缺省VLAN。
vlan-id:指定Trunk类型接口的缺省VLAN编号。整数形式,取值范围是1~4094。

Hybrid接口的基础配置命令

  • 配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type hybrid
  • 在接口视图下,配置接口的链路类型为Hybrid

  • 配置Hybrid接口加入指定VLAN

[Huawei-GigabitEthernet0/0/1] port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
  • 在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口
[Huawei-GigabitEthernet0/0/1] port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
  • 在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Tagged方式通过接口

  • (可选)配置Hybrid接口的缺省VLAN

[Huawei-GigabitEthernet0/0/1] port hybrid pvid vlan vlan-id
  • 在接口视图下,配置Hybrid类型接口的缺省VLAN

[!tip]

命令:port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
vlan-id1 [ to vlan-id2 ]:指定Hybrid类型接口加入的VLAN,其中:
vlan-id1表示第一个VLAN的编号。
to vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值。
vlan-id1和vlan-id 2为整数形式,取值范围是1~4094。
all:指定Hybrid接口加入所有VLAN。
命令:port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
vlan-id1 [ to vlan-id2 ]:指定Hybrid类型接口加入的VLAN,其中:
vlan-id1表示第一个VLAN的编号。
to vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值。
vlan-id1和vlan-id 2为整数形式,取值范围是1~4094。
all:指定Hybrid接口加入所有VLAN。
命令:port hybrid pvid vlan vlan-id,设置Hybrid类型接口的缺省VLAN。
vlan-id:指定Hybrid类型接口的缺省VLAN编号。整数形式,取值范围是1~4094。

配置案例 - 基于接口划分VLAN

  • 组网需求
    某企业的交换机连接有很多用户,且相同业务用户通过不同的设备接入企业网络。为了通信的安全性,企业希望业务相同的用户之间可以互相访问,业务不同的用户不能直接访问
    可以在交换机上配置基于接口划分VLAN,把业务相同的用户连接的接口划分到同一VLAN。这样属于不同VLAN的用户不能直接进行二层通信,同一VLAN内的用户可以直接互相通信

VLAN配置案例

[!tip]

配置思路:
创建VLAN并将连接用户的接口加入VLAN,实现不同业务用户之间的二层流量隔离。
配置SW1和SW2的各接口类型以及通过的VLAN,实现相同业务用户通过SW1和SW2通信。

创建VLAN

  • 创建VLAN:
[SW1] vlan 10
[SW1-vlan10] quit
[SW1] vlan 20
[SW1-vlan20] quit
[SW2] vlan batch 10 20

创建VLAN

配置Access接口和Trunk接口

  • 配置Access接口,并加入对应的VLAN:
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type access
[SW1-GigabitEthernet0/0/1] port default vlan 10
[SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] port link-type access
[SW1] vlan 20
[SW1-vlan20] port GigabitEthernet 0/0/2
[SW1-vlan20] quit
  • 配置Trunk接口,并创建对应的允许通过列表:
[SW1] interface GigabitEthernet 0/0/3
[SW1-GigabitEthernet0/0/3] port link-type trunk
[SW1-GigabitEthernet0/0/3] port trunk pvid 1
[SW1-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20

配置Access接口和Trunk接口

[!tip]

注:SW2配置与SW1类似。

验证配置

[SW1] display vlan
The total number of vlans is : 3
------------------------------------------------
U: Up; D: Down; TG: Tagged; UT:
Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
------------------------------------------------
VID  Type    Ports
1    common  UT:GE0/0/3(U) ......
10   common  UT:GE0/0/1(U)
             UT:GE0/0/3(U)
20   common  UT:GE0/0/2(U)
             TG:GE0/0/3(U)

验证配置

[!tip]

命令:display vlan命令用来查看VLAN的相关信息。
输出信息:
Tagged/Untagged Port:手动加入本VLAN的接口,分为Tagged和Untagged方式。
VID或VLAN ID:VLAN编号。
Type或VLAN Type:VLAN类型,common指普通VLAN。
Ports:加入该VLAN的接口。

路由技术基础

路由

  • 路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径
  • 路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器
  • 路由设备维护着一张路由表,保存着路由信息

路由

[!tip]

网关以及中间节点(路由器)根据收到的IP报文其目的地址选择一条合适的路径,并将报文转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。这个过程被称为路由转发。
中间节点选择路径所依赖的表项称为路由表。
路由条目包含明确的出接口以及下一跳,这两项信息指导IP报文转发到相应的下一跳设备上。

路由信息介绍

路由信息介绍

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

[!tip]

通过路由中包含的信息,路由设备可以转发IP报文到相应的路径。
目的地址、掩码用于识别IP报文目的地址,路由设备将IP报文匹配到相应的路由之后,根据路由的出接口、下一跳确认转发的路径。
只有出接口并不能够确认转发IP报文的下一跳设备,还需要明确的下一跳设备地址。

路由表

  • 路由器通过各种方式发现路由
  • 路由器选择最优的路由条目放入路由表中
  • 路由表指导设备对IP报文的转发
  • 路由器通过对路由表的管理实现对路径信息的管理

路由表

[!tip]

路由器依据路由表转发报文。
路由表由一条条详细的路由条目组成。
路由表由路由条目组成,但不代表路由表中保存了所有路由,路由表中只会保存“最优的”路由。
对路由表中的路由条目的管理实际上就是路由器维护、管理路由信息的具体实现。

查看IP路由表

查看IP路由表

[!tip]

Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0。
Proto(Protocol):该路由的协议类型,即路由器是通过什么协议获知该路由的。
Pre(Preference):表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。
Interface:表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。

路由转发流程

路由转发流程

[!tip]

来自10.0.1.0/24网段的IP报文想要去往40.0.1.0/24网段,首先到达网关,网关查找路由表项,确定转发的下一跳、出接口,之后报文转发给R2。报文到达R2之后,R2通过查找路由表项转发给R3,R3收到后查找路由表项,发现IP报文目的IP属于本地接口所在网段,直接本地转发。

静态路由介绍

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

静态路由介绍

配置举例

静态路由配置举例

RTA的配置如下:

[RTA] ip route-static 20.1.1.0 255.255.255.0 10.0.0.2

RTC的配置如下:

[RTC] ip route-static 10.0.0.0 255.255.255.0 S1/0/0
  • RTA与RTC上配置静态路由,实现10.0.0.0/24与20.1.1.0/24的互通
  • 因为报文是逐跳转发的,所以每一跳路由设备上都需要配置到达相应目的地址的路由
  • 另外需要注意通信是双向的,针对通信过程中的往返流量,都需关注途径设备上的路由配置

缺省路由

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

缺省路由

缺省路由应用场景

缺省路由应用场景

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

路由递归 (1)

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

路由递归 (1)

路由递归 (2)

路由递归 (2)

等价路由 (1)

等价路由 (1)

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

[!tip]

load-balance packet

浮动路由 - 基本概念

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

浮动路由基本概念

浮动路由 - 示例

浮动路由示例

[!tip]

RTA-RTB之间的链路正常时,20.0.0.0/30的两条路由条目都是有效的条目,此时比较优先级,下一跳为10.1.1.2的优先级60,下一跳为10.1.2.2的优先级70,因此下一跳为10.1.1.2的加入路由表。
RTA-RTB之间的链路故障时,10.1.1.2不可达,因此下一跳为10.1.1.2的路由失效,此时前往20.0.0.0/30的路由就只存在一条,该条路由将会被选入路由表。前往20.0.0.1的流量将会被转发到10.1.2.2。
路由匹配。此时可以通过手动配置静态路由,使RTA发送前往20.1.1.0/24网段的报文交给下一跳10.0.0.2转发

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐