网络工程师负责设计、部署和维护计算机网络系统,包括交换机、路由器配置,TCP/IP、DNS等协议的掌握,以及网络安全。他们需具备良好沟通和问题解决能力,理解网络拓扑、负载均衡、高可用性及云计算等领域知识。

网络工程

数据封装

应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段)
数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包)
数据包被传递到数据链路层,封装数据链路层报头和尾部得到PDU被称为Frame(数据帧)
最后,帧在物理层被转换为比特,通过网络介质传输。
这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。


以太网头部 IP头部 TCP头部 用户数据 以太网尾部

IP

IP报头

image.png

IP报头由基本报头(20字节)和扩展报头(0-40字节)组成,一字节8bit,一行32bit,

1、version:版本,长度4bit,IPv4和IPv6

2、header length:头部长度,长度4bit,描述IP报头的具体长度

3、type of service:类别服务,长度8bit,用于数据包快速转发,常用于qos服务

4、total length:总长度,长度16bit,描述IP报头和携带的数据长度总和


5、identification:标识,长度16bit,用于标识一台设备发送的数据

6、flags:标志,长度3bit,第一bit 是 保留的

                                                          第二bit 是 DF(don’t   fragment不分片), 置 0 代表可以分片,置 1 代表不可以分片

                                                          第三bit 是 MF(more  fragment多分片), 置 0 代表后续没有分片,置 1 代表后续还有分片

7、fragment offset:片偏移,长度13bit,将收到所有分片报文,按照原有顺序进行排列,每一个分片报文都会存在偏移量

                                                          第一个分片报文 偏移量值为0

                                                          第一个分片报文 偏移量值为第一个分片报文的(偏移量+携带的数据长度)

                                                          第一个分片报文 偏移量值为第二个分片报文的(偏移量+携带的数据长度)

8、TTL:time to live 生存时间,长度8bit,防止数据包在网络中无限循环。每经过一个路由器,TTL值减1,当TTL为0时,该数据包会被丢弃。

9、protocol:协议,长度8bit,标识上层协议类型,如TCP(6)、UDP(17)、ICMP(1)、IGMP(2)、EIGRP(88)、OSPF(89)。

10、header checksum:头部校验和,长度16bit,检验IP头部的完整性。


11、source ip address:源IP地址,长度32bit,标识发送数据包的设备IP地址。

12、destination ip address:目的IP地址,长度32bit,标识接收数据包的设备IP地址。

13、options:可选字段,长度可变(0-40字节),用于一些特殊用途,如安全、路由记录等。

Wireshark 抓包

网络基础

Wireshark 抓包


IP地址

什么是IP地址?

IP地址就是三层网络设备接口的标识

IP地址表示?

  • 一个IPv4地址有32 bit
  • 采用“点分十进制”表示
  • 一个十进制数由 8 个二进制组成

IP地址构成

  • 网络部分:用来标识一个网络
  • 主机部分:用来区分一个网络内的不同主机
  • 网络掩码:网络掩码为32 bit,与IP地址的位数一样,通常也以点分十进制数来表示。
    • 网络掩码不是一个IP地址,在二进制的表示上是一堆连续的1、后面接一堆连续的0。
    • 通常将网络掩码中1的个数称为这个网络掩码的长度。如:掩码0.0.0.0的长度是0,掩码252.0.0.0的长度是6。
    • 网络掩码一般与IP地址结合使用,其中值为1的比特对应IP地址中的网络位;值为0的比特对应IP地址中的主机位。即网络掩码中1的个数就是IP地址的网络号的位数,0的个数就是IP地址的主机号的位数。

IP地址子网划分

IP地址子网划分

ICMP

什么是ICMP?

  • Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议。
  • ICMP消息封装在IP报文中,IP报文头部Protocol值为1时表示ICMP协议。
  • 字段解释:
    • ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型,Code字段包含该消息类型的具体参数。
    • 校验和字段用于检查消息是否完整。
    • 消息中包含32 bit的可变参数,这个字段一般不使用,通常设置为0。
      • 在ICMP重定向消息中,这个字段用来指定网关IP地址,主机根据这个地址将报文重定向到指定网关。
      • 在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请求和回复消息进行一一对应。

ICMP作用?

  • ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

IP路由

路由


ARP 协议的工作过程

第一步:首先,每个主机都会有自己的 ARP 缓存区中建立一个 ARP 列表,以表示 IP 地址和MAC 地址之间的对应关系。

第二步:当源主机要发送数据时,首先检测 ARP 列表中是否对应 IP 地址的目的主机的 MAC地址,如果有,则直接发送数据。如果没有,就向本网段的所有主机发送 ARP 数据包,内容:我是 IP 地址、mac 地址,谁是 IP 地址、mac

第三步:当本网络的所有主机收到该 ARP 数据包时,首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。如果是,则首先从数据包中取出源主机的 IP 和 mac 地址写入到 ARP 列表中,如果以存在,则覆盖,然后将自己的 mac 地址写入 arp 响应包中,告诉源主机自己是它想要找的 mac 地址。

第四步:源主机收到 ARP 响应包后,将目的主机的 IP 和 mac 地址写入 arp 列表,并利用此信息发送数据,如果源主机一直没有收到 arp 响应数据包,

VPN

VPN:虚拟私有网络

什么是VPN:就是使用隧道技术将私网数据相互通信的技术,本质就是数据的再封装

MPLS VPN网络设备概念:

  1. CE设备:用户端边缘设备
  2. PE设备:ISP端边缘设备
  3. P设备:ISP骨干设备

为什么私网路由不能直接在公网传递?

  • 因为私网地址是可以重复使用的,如果多个站点使用相同的路由,那么公网设备学习的路由就会发生冲突

公网设备(PE)如何区分公网路由和不同站点的私网路由

  • 通过VRF技术,配置VPN实例 来隔离私网路由和公网路由

什么是VRF?是什么是VPN实例?

VRF:虚拟路由转发,在物理设备上通过虚拟化构建多台逻辑设备

VPN实例:是VRF技术具体实现手段,每一台路由器都会存在一张public路由表

[PE2]ip vpn-instance VPN-A 创建了一台逻辑路由器,该路由器生成路由表名称为VPN-A

如果接口绑定了VPN实例,则连接站点建立动态协议也需要绑定VPN实例

对于公网设备之间传递站点路由信息后(不考虑如何传递),如果P设备可以接收站点的路由,如何区分路由来自不同的站点?

PE设备根据VPN实例区分不同的站点路由,发送给P设备

P设备如果收到的路由网段相同,则无法区分

P设备如果收到的路由网段不同,则可以正常区分

PE设备如何发送不同的私网路由?

PE设备发送私网路由时,根据规则设定发送的是VPNv4路由

什么是VPNv4路由?

VPNv4路由是由 RD + ipv4私网路由 组成

什么是RD?

RD:路由区分符 书写方式 AA:NN (32bit:32bit)
通过在VPN实例视图下进行配置,将不同站点的私网路由 通过指定RD进行绑定,绑定后就形成唯一的VPNv4路由
[PE2-vpn-instance-VPN-A]route-distinguisher 100:1
作用:用来区分不同站点相同的路由信息

如果对端PE接收了不同站点的路由,可以通过RD值进行区分,但是如何接收不同站点路由 接收进本地站点?

在VPN实例下规定了RT值,通过RT来判断需要接收了VPNv4路由

TCP/IP