网工 应用层协议

DNS 协议

DNS(Domain Name System,域名系统)协议是互联网的一项核心服务,主要用于将人类可读的域名转换为机器可识别的 IP 地址,它具有以下特点和作用:

一、基本概念和作用

  1. 域名与 IP 地址的转换:
    • 互联网上的设备通过 IP 地址进行相互通信,但 IP 地址(如 192.168.1.1)难以记忆,而域名(如 www.example.com)更符合人类的记忆习惯。DNS 协议就负责在两者之间进行转换。
    • 例如,当用户在浏览器中输入“www.example.com”时,浏览器会向 DNS 服务器发送请求,询问该域名对应的 IP 地址,然后使用获取到的 IP 地址与对应的服务器建立连接。

二、DNS 系统的组成结构

  1. 域名空间:
    • 它是一个层次化的命名系统,类似于一棵树的结构。
    • 顶级域(如.com、.org、.net 等)位于树的顶部,其下是二级域(如 example.com),再往下可以有三级域、子域等。每个域名都是从根节点开始,通过一系列标签(如“www”“example”“com”等)组成的路径来标识。
  2. 域名服务器:
    • 根域名服务器:是 DNS 系统的最高层次,全球共有 13 组根域名服务器(实际上是数百台服务器组成的集群),它们存储着顶级域名服务器的地址信息。
    • 顶级域名服务器:负责管理顶级域名(如.com、.net 等),知道相应顶级域下的二级域名服务器的地址。
    • 权威域名服务器:由域名的所有者或管理者负责维护,存储特定域名(如 example.com)的详细 IP 地址和其他相关信息。
    • 本地域名服务器:通常由互联网服务提供商(ISP)设置,在用户的本地网络中。它可以缓存域名解析结果,提高查询效率,并且当它无法解析域名时,会向其他层次的域名服务器发起查询请求。

三、DNS 查询过程

  1. 递归查询:
    • 客户端向本地域名服务器发起查询请求,如果本地域名服务器不知道答案,它会代替客户端向其他域名服务器继续发起查询请求,直到获取到结果并返回给客户端。
    • 例如,用户的电脑向本地 DNS 服务器查询一个域名,本地服务器不知道答案,就会依次向根域名服务器、顶级域名服务器、权威域名服务器查询,最后将结果返回给用户的电脑。
  2. 迭代查询:
    • 当本地域名服务器向其他域名服务器发起查询时,接收查询的服务器如果不知道答案,它会返回下一个可能知道答案的服务器地址,让本地服务器继续向该地址发起查询,而不是代替它进行查询。
    • 例如,本地服务器向根域名服务器查询,根服务器不知道具体答案,但会返回顶级域名服务器的地址,本地服务器再向顶级域名服务器查询,依此类推,直到获取到最终答案。

四、DNS 记录类型

  1. A 记录:
    • 用于将域名映射到 IPv4 地址。例如,域名“www.example.com”的 A 记录可能指向 IP 地址“192.168.1.1”。
  2. AAAA 记录:
    • 用于将域名映射到 IPv6 地址。随着 IPv6 的普及,AAAA 记录变得越来越重要。
  3. CNAME 记录:
  4. MX 记录:
    • 邮件交换记录,用于指定负责接收该域名电子邮件的邮件服务器。例如,“example.com”的 MX 记录可能指向“mail.example.com”,表示邮件应该发送到“mail.example.com”服务器进行处理。
  5. NS 记录:
    • 域名服务器记录,用于指定该域名由哪些域名服务器进行解析。例如,“example.com”的 NS 记录可能指向特定的权威域名服务器。

五、DNS 缓存

  1. 作用:
    • 为了提高域名解析的效率,减少网络延迟和 DNS 服务器的负载,DNS 系统中存在各级缓存。
    • 本地域名服务器会缓存查询结果,下次相同的查询可以直接从缓存中获取答案,而不必再次向其他服务器发起查询。
    • 操作系统和浏览器也可能会缓存 DNS 解析结果。
  2. 缓存时间(TTL,Time To Live):
    • DNS 记录在缓存中都有一个生存时间(TTL),当 TTL 过期后,缓存中的记录会被清除,下次查询时需要重新获取最新的解析结果。
    • 域名所有者可以在权威域名服务器上设置 TTL 值,根据实际需求来平衡域名解析的准确性和缓存的效率。

六、DNS 安全

  1. DNS 劫持:
    • 攻击者通过篡改 DNS 解析结果,将用户的请求导向恶意网站或服务器。
    • 例如,用户本来要访问银行网站,但 DNS 被劫持后,可能会被引导到一个假冒的钓鱼网站,导致用户信息泄露。
  2. DNSSEC(DNS Security Extensions,DNS 安全扩展):
    • 它是一种通过数字签名来保证 DNS 数据完整性和真实性的技术。
    • 权威域名服务器对 DNS 记录进行数字签名,客户端和递归服务器可以验证签名的有效性,防止 DNS 劫持和数据篡改。
  3. DNS over HTTPS(DoH)和 DNS over TLS(DoT):
    • 传统的 DNS 查询使用 UDP 或 TCP 协议,数据以明文传输,容易被窃听和篡改。
    • DoH 通过 HTTPS 协议来加密和传输 DNS 查询,DoT 则使用 TLS 协议,增强了 DNS 查询的安全性和隐私性。

如何优化 DNS 解析速度?

递归查询和迭代查询的区别是什么?

递归服务器和迭代服务器的工作原理分别是怎样的?

网工 路由协议

浮动静态路由

优先级值高的优先级低,不解决负载均衡,解决了线路冗余。

静态黑洞路由

在RTE 上配置路由聚合:ip route-statci 10.0.0.0 255.255.0.0 RTD

在RTC连接RTD线路故障的情况下,如果RTA发往RTC的数据包会在RTD和TRE之间形成环路。加上黑洞路由数据包丢弃。

RIP(Routing Information Protocol,路由信息协议)是一种广泛使用的内部网关协议(IGP),主要用于小型到中型网络中的路由选择。RIP有两种版本:RIPv1 和 RIPv2。RIPv1 是最初的版本,而 RIPv2 支持无类别域间路由(CIDR)和认证功能,是目前更常用的一个版本。

RIP的工作原理概述:

  1. 度量标准:
    • RIP 使用跳数作为度量标准来计算到达目的网络的最佳路径。每个路由器到直接相连的网络的距离定义为1跳。最大跳数为15,超过15跳(即16跳及以上)的目标网络被视为不可达。
  2. 路由更新:
    • RIP 路由器每隔30秒向相邻路由器广播路由更新消息。这些更新包含路由器所知的所有可达网络的列表,以及到达每个网络所需的跳数。
    • 路由器接收到更新后,会与自己的路由表进行比较,更新或添加新路由条目。
  3. 路由选择:
    • 路由器选择具有最少跳数的路径作为最佳路径。如果有两条或多条相同跳数的路径,路由器会选择其中一条,通常随机选择或基于其他策略选择。
  4. 计时器:
    • 更新计时器 (Update Timer): 每隔30秒发送一次路由更新。
    • 无效计时器 (Invalid Timer): 如果在180秒内没有收到邻居的更新,则认为该邻居不可达,路由变为“无效”状态。
    • 清除计时器 (Flush Timer): 在邻居变为“无效”状态后等待240秒,如果在此期间仍未收到更新,则从路由表中删除该路由条目。
    • 抑制计时器 (Hold Down Timer): 当一个路由条目的跳数增加时,启动抑制计时器,防止在计时期间内对该路由进行更新,以避免路由抖动。在抑制状态中的路由时收到其它路由器发送的抑制路由时等待的时间
  5. 水平分割 (Split Horizon):
    • 为了避免路由环路,RIP 实施了一种称为水平分割的技术。路由器不会将自己学到的路由信息广播回通告该信息的邻居路由器。
  6. 毒性反转 (Poison Reverse):
    • 为了进一步防止路由环路,当路由器发现一个路由不再有效时,它会在路由更新中将该路由的跳数设置为16(即不可达),并向所有邻居广播这一信息,包括通告该路由的邻居。
    • 触发更新 :当路由发现有路由不可达是,立即通报给其它的路由器
  7. 认证 (Authentication):
    • RIPv2 支持明文或MD5密钥认证,以确保路由更新的安全性。
  8. CIDR 支持:
    • RIPv2 支持无类别域间路由(CIDR),允许路由器通告子网掩码和前缀长度,从而支持可变长度子网掩码(VLSM)。

路由协议使用的广播或者组播更新

RIP、OSPF 和 BGP 这三种路由协议在发送路由更新时采用不同的目的 IP 地址和传输机制。下面是每种协议如何发送路由更新的简要说明:

RIP (Routing Information Protocol)

  • 目的 IP 地址:
    • RIP 使用广播或组播地址来发送更新。
    • 对于 RIPv1,默认情况下使用广播地址 255.255.255.255
    • 对于 RIPv2,默认情况下使用组播地址 224.0.0.9
  • 传输层协议:
    • RIP 使用 UDP 协议。
    • UDP 端口号为 520

OSPF (Open Shortest Path First)

  • 目的 IP 地址:
    • OSPF 使用组播地址来发送更新。
    • 所有 OSPF 路由器都监听组播地址 224.0.0.5 (所有 DR 路由器)和 224.0.0.6 (所有 SPF 路由器)。
  • 传输层协议:
    • OSPF 使用 IP 协议直接发送数据包,不使用 UDP 或 TCP。

BGP (Border Gateway Protocol)

  • 目的 IP 地址:
    • BGP 使用 TCP 连接来发送更新。
    • 目的 IP 地址是 BGP 对等体的 IP 地址。
  • 传输层协议:
    • BGP 使用 TCP 协议。
    • TCP 端口号为 179

总结如下:

协议目的 IP 地址传输层协议TCP/UDP 端口
RIP255.255.255.255 (RIPv1) 或 224.0.0.9 (RIPv2)UDP520
OSPF224.0.0.5 或 224.0.0.6IPN/A
BGPBGP 对等体的 IP 地址TCP179

请注意,RIPv1 使用广播地址,这可能导致广播风暴问题,因此建议使用 RIPv2 的组播地址。另外,OSPF 使用 IP 直接发送数据包,这意味着它不需要使用 UDP 或 TCP 来封装数据包。

负载均衡

多出口负载分担方案是指在网络中通过多个互联网出口来分散流量,以提高网络的可用性、性能和可靠性。这种策略对于大型企业、数据中心以及需要高带宽和高可靠性的机构尤为重要。以下是几种常见的多出口负载分担策略:

  1. 基于源IP或目的IP的负载均衡
    • 根据数据包的源IP地址或目的IP地址来决定使用哪个出口。这种方法简单直接,但可能导致某些出口过载而其他出口利用率不足。
  2. 基于会话的负载均衡
    • 对于每个新建的TCP/UDP会话,路由器可以选择一个当前负载较低的出口来转发数据包。这种方式可以较好地平衡各出口之间的流量。
  3. 基于应用类型的负载均衡
    • 不同类型的应用(如Web浏览、视频流媒体等)对带宽的需求不同,可以根据应用类型选择最合适的出口。例如,将高优先级的应用分配给质量更好的线路。
  4. 基于带宽利用率的动态负载均衡
    • 监控各个出口的实际带宽使用情况,并根据实时负载动态调整流量分布。当某个出口接近饱和时,新的流量会被导向其他较为空闲的出口。
  5. 基于地理位置的负载均衡
    • 如果用户群体分布在不同的地理区域,可以根据用户的地理位置选择最近或者最佳路径的出口,减少延迟并优化用户体验。
  6. 基于链路健康状况的负载均衡
    • 通过持续监测每个出口链路的状态(包括丢包率、延迟等),自动避开故障或性能不佳的链路,确保只有健康的链路参与负载分担。
  7. 基于权重的负载均衡
    • 给每个出口分配一个权重值,权重值高的出口会被分配更多的流量。这样可以根据链路的质量和服务水平协议(SLA)要求来分配流量。
  8. 基于策略的负载均衡
    • 结合多种因素制定综合策略,比如结合时间、成本、服务等级等因素来决定如何分配流量。
  9. ECMP (Equal-Cost Multi-Path) Routing
    • 在路由层面上实现的一种技术,允许路由器在到达同一目的地的多条等价路径上均匀分配流量。这通常用于BGP或多路径OSPF环境中。

实施这些策略通常需要支持高级功能的网络设备,如支持策略路由、负载均衡算法和动态路由协议的路由器或防火墙。同时,也需要考虑网络架构设计、安全性以及与现有网络管理系统的集成。

网工 GVRP及链路聚合

链路聚合

链路聚合也叫 以太通道,端口聚合,ETH-TRUNK

一般是交换机之间或者交换机与服务器之间。

链路聚合(Link Aggregation)是一种网络技术,它允许多条物理链路捆绑在一起作为一个逻辑链路使用,以提高带宽和实现冗余。链路聚合不仅可以提高网络的带宽,还能提供更好的容错能力和负载均衡。这项技术在局域网(LAN)中特别有用,特别是在数据中心和高性能计算环境中。

链路聚合的关键概念

  1. 802.3ad:IEEE 802.3ad 定义了链路聚合控制协议(Link Aggregation Control Protocol, LACP),这是一种用于动态建立和管理链路聚合的标准协议。
  2. LACP (Link Aggregation Control Protocol):LACP 是一种用于自动建立、管理和解散链路聚合组(LAG, Link Aggregation Group)的协议。LACP 可以自动检测并聚合支持 LACP 的端口。
  3. 静态链路聚合:也称为手工配置的链路聚合,需要管理员手动配置聚合端口,而不使用 LACP。
  4. 负载均衡:链路聚合可以根据不同的算法(如轮询、基于MAC地址、基于IP地址等)来均衡流量,确保网络流量在聚合链路中均匀分布。
  5. 冗余:如果聚合链路中的某条物理链路发生故障,流量可以自动转移到其他可用的链路上,提高了网络的可靠性和可用性。

链路聚合的工作原理

链路聚合的基本工作原理如下:

  1. 端口选择:管理员选择一组物理端口进行聚合。
  2. 端口绑定:将选定的端口绑定在一起,形成一个逻辑端口。
  3. 负载分担:流量根据负载均衡策略被分发到聚合链路中的各个物理链路上。
  4. 故障切换:如果一条物理链路发生故障,流量会自动切换到其他可用的链路上。

配置链路聚合

以下是在交换机上配置链路聚合的一般步骤:

  1. 创建聚合组:在交换机上创建一个聚合组。
  2. 配置聚合模式:配置聚合模式,可以选择静态或动态(LACP)。
  3. 添加端口:将物理端口添加到聚合组中。
  4. 配置负载均衡策略:根据需要配置负载均衡策略。
  5. 配置冗余:确保冗余配置正确,以便在链路故障时可以无缝切换。

示例配置

以下是使用 LACP 配置链路聚合的一个简单示例(以华为交换机为例):

  1. 创建聚合组:bash深色版本1[Switch] interface Eth-Trunk 1
  2. 配置聚合模式:bash深色版本1[Switch-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/4 2[Switch-Eth-Trunk1] lacp mode active
  3. 添加端口:bash深色版本1[Switch-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/4
  4. 配置负载均衡策略(可选):bash深色版本1[Switch-Eth-Trunk1] load-balance src-dst-ip
  5. 退出配置模式:bash深色版本1[Switch-Eth-Trunk1] quit

总结

链路聚合是一种强大的技术,可以显著提高网络的带宽和可靠性。通过聚合多条物理链路,可以实现更高的带宽、负载均衡和冗余保护。配置链路聚合时,需要确保所有参与聚合的设备都支持相同的标准,并且配置了相同的聚合模式。

GVRP

GVRP (GARP VLAN Registration Protocol, GARP VLAN Registration Protocol) 是一种用于动态管理和注册VLAN成员关系的协议。GVRP基于GARP (Generic Attribute Registration Protocol, 通用属性注册协议) 构建,允许设备自动发现和注册VLAN信息。GVRP的主要目的是简化VLAN的管理和配置,尤其是在大型网络环境中。

GVRP 的工作原理

GVRP的工作原理可以分为以下几个阶段:

  1. 初始化阶段 (Initialization Phase)
    • 当GVRP启动时,交换机会向所有端口发送一个初始化消息,询问已知的VLAN信息。
    • 接收到初始化消息的设备会回复已知的VLAN列表。
  2. 注册阶段 (Registration Phase)
    • 当端口连接到一个新的设备时,GVRP会自动检测该设备所支持的VLAN,并将这些VLAN信息注册到交换机上。
    • 注册阶段还包括删除不再使用的VLAN信息。
  3. 通告阶段 (Advertisement Phase)
    • 一旦注册完成,GVRP会定期广播VLAN信息,以保持VLAN配置的最新状态。
    • 如果端口上的VLAN配置发生变化,GVRP也会立即更新这些信息。
  4. 老化阶段 (Aging Phase)
    • 如果一段时间内没有收到某个VLAN的信息,GVRP会认为该VLAN已经不再使用,并将其从端口的VLAN列表中移除。
    • 默认情况下,老化周期为1小时。

GVRP 的消息类型

GVRP的消息类型包括:

  • 初始化消息 (Initialization Message)
    • 用于启动GVRP并请求VLAN信息。
  • 注册消息 (Registration Message)
    • 用于注册新的VLAN信息或删除旧的VLAN信息。
  • 通告消息 (Advertisement Message)
    • 用于更新VLAN信息并维持VLAN配置的状态。

GVRP 的端口状态

GVRP定义了几种端口状态:

  • Normal (正常)
    • 端口处于正常状态,可以接收和发送GVRP消息。
  • Fixed (固定)
    • 端口被配置为只允许特定的VLAN,不允许动态注册或删除VLAN。
  • Forbidden (禁止)
    • 端口被配置为禁止任何GVRP操作,即不发送也不接收GVRP消息。
  • Sticky (粘性)
    • 端口在接收到第一个GVRP消息之前处于粘性状态。一旦接收到第一个GVRP消息,端口就会转为正常状态。

GVRP 的优点

  • 简化配置:自动管理VLAN成员关系,减少手动配置的工作量。
  • 提高灵活性:允许动态添加和删除VLAN,提高网络的灵活性。
  • 提高安全性:通过GVRP可以更好地控制哪些VLAN可以在特定端口上传输。

示例配置脚本

[Switch] gvrp global enable
[Switch] interface GigabitEthernet0/0/1
[Switch-GigabitEthernet0/0/1] port gvrp mode normal
[Switch-GigabitEthernet0/0/1] port gvrp vlan 10 register
[Switch-GigabitEthernet0/0/1] port gvrp vlan 20 register
[Switch-GigabitEthernet0/0/1] quit
[Switch] interface GigabitEthernet0/0/2
[Switch-GigabitEthernet0/0/2] port gvrp mode normal
[Switch-GigabitEthernet0/0/2] port gvrp vlan 10 register
[Switch-GigabitEthernet0/0/2] quit
[Switch] display gvrp all

网工 子网计算

计算主机号(位)

对于 IP 地址 192.22.12.120/28,子网掩码 /28 表示前 28 位是网络部分,剩下的 4 位是主机部分。

在这个情况下,IP 地址 192.22.12.120 的二进制表示如下:

  • 192.22.12.120 在二进制中表示为:11000000 00010110 00001100 01111000

由于子网掩码是 /28,这意味着前三个字节加上第四个字节的前四位代表网络部分,剩下的四位代表主机部分。

因此,对于 192.22.12.120/28

  • 网络部分192.22.12.112,在二进制中为 11000000 00010110 00001100 01110000
  • 主机部分120 - 112 = 8,在二进制中为 00001000

所以,该 IP 地址的 主机号 就是 8 (0.0.0.8)。在二进制中,主机号是最后 4 位,即 00001000

计算主机范围

对于 IP 地址 192.22.12.120/28,子网掩码 /28 表示前 28 位是网络部分,剩下的 4 位是主机部分。

计算网络地址和广播地址

  1. 网络地址:计算网络地址需要将 IP 地址与子网掩码进行 AND 运算。对于 /28 子网掩码,网络地址的最后 4 位全为 0。
  2. 广播地址:广播地址是该子网内所有主机都能接收的地址,它的最后 4 位全为 1。

IP 地址 192.22.12.120 的二进制表示

  • 192.22.12.120 在二进制中表示为:11000000 00010110 00001100 01111000

子网掩码 /28 的二进制表示

  • /28 的子网掩码在二进制中表示为:11111111 11111111 11111111 11111100

网络地址计算

  • 网络地址为:11000000 00010110 00001100 01111100,即 192.22.12.112

广播地址计算

  • 广播地址为:11000000 00010110 00001100 01111111,即 192.22.12.127

可用地址范围

  • 网络地址192.22.12.112(不可用作主机地址)
  • 可用主机地址范围192.22.12.113 到 192.22.12.126
  • 广播地址192.22.12.127(不可用作主机地址)

因此,直接接收该主机广播信息的地址范围是 192.22.12.113192.22.12.126。这些主机可以接收广播地址 192.22.12.127 发送的广播信息。

Index