「DCHP」- 工作过程

首次接入网络

#1 发现阶段
即 DHCP Client 发现 DHCP Server 的阶段
DHCP Client 以广播方式发送 DHCP DISCOVER 报文来发现 DHCP Server;
在 DHCP DISCOVER 中,携带 Client 的 MAC Address、需要请求的参数列表选项、广播标志位(决定 DHCP Server 回复报文的方式)等信息;
#2 提供阶段
即 DHCP Server 提供网络配置信息的阶段;
当 DHCP Server 接收到 DHCP DISCOVER 报文后,DHCP Server 响应 DHCP OFFSER 报文,其中包含 DHCP Server 分配给 DHCP Client 的网络配置信息;
DHCP Server 按照如下次序为 DHCP Client 选择 IP-Address:
1)静态绑定的网络地址:DHCP Server 的数据库中与客户端 MAC 地址静态绑定的 IP 地址;
2)已使用过的网络地址:客户端以前曾经使用过的 IP 地址,即客户端发送的请求报文中请求 IP 地址选项的地址;
3)空闲状态的网络地址:在 DHCP 地址池中,顺序查找可供分配的空闲 IP 地址,最先找到的 IP 地址;
4)超过租期的网络地址:如果在 DHCP 地址池中未找到可供分配的空闲 IP 地址,则依次查询超过租期;
5)产生冲突的网络地址:发生冲突的 IP 地址,如果找到可用的 IP 地址,则进行分配,否则报告错误;
Q:此时 DHCP Client 没有 IP Address,那为什么 DHCP Server 能够通过单播回复 DHCP OFFSER 报文?
A:虽然但是 DHCP Server 能够使用 DHCP Client 的 MAC 进行单播回复;
Q:在网络中,某些主机的 IP-Address 是通过手动设置,而非 DHCP Server 动态分配,那 DHCP Server 是否会分配已被占用的地址?
A:DHCP Server 收到 DHCP DISCOVER 报文时,给 DHCP Client 分配 IP Address 前会发送 Ping 探测,如果能 Ping 通则标识该地址不可用,并选择其他 IP Address 分配给 DHCP Client。除了 ping 探测外,某些 DHCP Server 使用 ARP 探测,以避免网络中 ping 被禁用;
华为交换机的 DHCP Server 的行为:
1)对于接口模式:选择跟接收 DHCP DISCOVER 报文接口的 IP Address 处于同一网段的地址池,并且从中选择一个可用的 IP Address 进行分配;
#3 选择阶段
即 DHCP C[……]

READ MORE

「DHCPv6」- 中继(Relay)配置

华为网络设备
参考文档,以获取更加详细的配置方法。

[Interface] dhcpv6 relay destination x.x.x.x[……]

READ MORE

「DHCP」- 常见问题处理

在局域网中的 DHCP 服务器

# 方法一、使用nmap命令
nmap –script broadcast-dhcp-discover -e enp0s25

# 方法二、使用dhclient命令
dhclient -d -nw enp0s25

检查 DHCP 服务是否正常运行
通过 dhcping 命令:[……]

READ MORE

「VPN」- IPSec | 因特网协议安全 | Internet Protocol Security

认识
在企业分支(总部与分部)间,经常有互联的需求,企业互联的方式很多,可以使用专线线路或者 Internet 线路。从成本和需求出发,部分企业会选择使用 Internet 线路进行互联,但是使用 Internet 线路存在安全风险,传统的 TCP/IP 协议缺乏有效的安全认证和保密机制。企业对网络安全性的需求日益提升,如何保障数据在传输时不会被窃取?
IPSec(Internet Protocol Security),是 IETF 定义的一个协议组(RFC 1825),是一系列安全协议,作为一种开放标准的安全框架结构,其能够用来保证 IP Packet 在网络上传输时的机密性、完整性、防重放;

补充说明:IPSec VPN,仅是 IPSec 的应用案例,在 IPv6 也能使用 IPSec 实现贴身安全(OSPFv3 也能使用相关技术)。鉴于我们选择的技术方向,我们将从 IPSec VPN 的视角来学习 IPSec 技术;
组成
IPSec
该技术通过将数据报文加密传输,达到保障企业互联安全性的目的。它为端到端 IP 报文交互提供基于密码学的、可互操作的、高质量的安全保护机制。通过对数据加密、认证,IPsec 使得数据能够在 Internet 网络上安全的传输。

IPSec VPN
IPSec 是种架构,而非具体协议,通过多种协议报文(AH、ESP、IKE、……)来共同实现 IPSec VPN 技术;
性质
通过加密与验证等方式,实现:
1)真实性(Data Authentication):接收方验证发送方身份是否合法;
2)机密性(Confidentiality):发送方对数据进行加密保护,用密文的形式在互联网中传送数据。接收方将接收加密数据,并进行解密后处理或直接转发;
3)完整性(Data Integrity):指对接收的数据进行认证,以判定报文是否被篡改;
4)防重放(Anti-replay):指防止恶意用户通过重复发送捕获到的数据包所进行的攻击,即接收方会拒绝旧的或重复的数据包。接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的攻击;
应用
在 Internet 中,IPsec VPN 更多的应用。
现在(04/20/2025)IKEv2/IPSec 仍然是企业级 VPN 的可靠选择,尤其在移动场景。但是,IKEv2/IPSec VPN 通常今天添加一个网段。
通过加密模式,保护主机间的通信
主机之间通过互联网进行数据传输,需要加密时,加解密操作在主机侧完成;
在某些场景中,例如服务器放在 DMZ 区域,防火墙配置 NAT server,也可以实现;
通过加密模式,保护其他网络协议
在现网中,IPsec VPN 技术可以和多种 VPN 技术结合使用,使得企业互联更加灵活安[……]

READ MORE

「DHCP」- Relay,中继

问题描述
DHCP 广泛应用于各种园区网络,实现有线或无线终端的 IP 地址自动配置;
随着网络规模的不断扩大,网络设备不断增多,企业内不同的用户可能分布在不同的网段(而 DHCP 要求 Client、Server 处于同个二层网络)。在正常情况下单台 DHCP Server 无法满足多个网段的地址分配需求。如果还需要通过 DHCP Server 分配 IP 地址,则需要跨网段(二层网络)发送 DHCP 报文;
解决方案
DHCP Relay(DHCP 中继),它是为解决 DHCP Client 和 DHCP Server 不在同个广播域而提出的,提供对 DHCP 广播报文的中继转发功能;
原理简述
DHCP Relay 负责转发 DHCP Server 和 DHCP Client 间的 DHCP 报文,协助 DHCP Server 向 DHCP Client 动态分配网络参数的设备;

DHCP Relay 能够把 DHCP Client 的广播报文“透明地”传送到其它广播域的 DHCP Server 上,同样也能够把 DHCP Server 端的应答报文“透明地”传送到其它广播域的 DHCP Client;
客户端首次接入网络
有中继场景时 DHCP Client 首次接入网络的工作原理:

发现阶段
当 DHCP Relay 接收到 DHCP Client 广播发送的 DHCP DISCOVER 报文后,通过路由转发将 DHCP 报文单播发送到 DHCP Server 或下一跳 DHCP Relay;
当 DHCP Relay 收到 DHCP DISCOVER 报文后,处理规则为:
1)检查 DHCP 报文中的 Hops 字段,如果大于 16,则丢弃 DHCP 报文;否则,将 Hops=Hops+1(表明经过一次 DHCP Relay),并继续下面的操作;
2)检查 DHCP 报文中的 Giaddr 字段。如果是 0,将 Giaddr 字段设置为接收 DHCP DISCOVER 报文的接口 IP 地址。如果不是 0,则不修改该字段,继续下面的操作;
3)将 DHCP 报文的目的 IP 地址改为 DHCP Server 或下一跳 DHCP Relay 的 IP 地址,源地址改为中继连接客户端的接口地址(及 DHCP Relay 的接口地址),通过路由转发将 DHCP 报文单播发送到 DHCP Server 或下一跳中继;
提供阶段
当 DHCP Server 接收到 DHCP DISCOVER 报文后,根据其中的 Giaddr 字段,来选择地址池为 DHCP Client 分配相关网络参数:
1)选择与报文中 Giaddr 字段为同一网段的地址池,并为客户端分配 IP 地址等参数;
2)然后向[……]

READ MORE

「SRV6」- 概念术语:Node

Source Node
源节点将数据包引导到 SRv6 Segment List 中;
如果 SRv6 Segment List 只包含单个 SID,并且无需在 SRv6 报文中添加信息或 TLV 字段,则 SRv6 报文的 DST IP Address 字段设置为该 SID 值。
源节点可以是生成 IPv6 报文且支持 SRv6 的主机,也可以是 SRv6 域的边缘设备;

节点对报文的处理行为
SRv6 Source Node 负责将流量引导到 SRv6 Policy 中,并执行可能的 SRH 封装。
以下列举了 SRv6 Source Node 封装报头的几种模式:

源节点行为
功能描述

H.Insert
为接收到的 IPv6 报文插入 SRH,并查表转发。

H.Insert.Red
为接收到的 IPv6 报文插入 Reduced SRH,并查表转发。

H.Encaps
为接收到的 IP 报文封装外层 IPv6 报文头与 SRH,并查表转发。

H.Encaps.Red
为接收到的 IP 报文封装外层 IPv6 报文头与 Reduced SRH,并查表转发。

H.Encaps.L2
为接收到的二层帧外封装 IPv6 报文头与 SRH,并查表转发。

H.Encaps.L2.Red
为接收到的二层帧外封装 IPv6 报文头与 Reduced SRH,并查表转发。

Reduced SRH 和 SRH 的区别在于 Reduced SRH 中 Segment List 不包含已存在 IPv6 DST Address 中的第一个 Segment;

Transit Node
中转节点是在 SRv6 报文转发路径上不参与 SRv6 处理的 IPv6 节点,中转节点只执行普通的 IPv6 报文转发;
针对中转节点,可以是普通的 IPv6 节点,也可以是支持 SRv6 的节点;
节点对报文的处理行为
当节点收到 SRv6 报文后,解析报文的 IPv6 DST Address 字段。如果 IPv6 DST Address 不是本地配置的 SRv6 SID 也不是本地接口地址,节点则将 SRv6 报文当做普通 IPv6 报文查询路由表执行转发,不处理 SRH;

Endpoint Node
在 SRv6 报文转发过程中,节点接收报文的 IPv6 目的地址是本地配置的 SID,则节点被称为 Endpoint 节点;
Endpoint Node 在数据的转发路径上可以有多个,每个 Endpoi[……]

READ MORE

「ICMPv6」- ping

ping 基于 ICMPv6 信息报文实现:
1)Echo Request(Type=128;Code=0;):用于发送到目标节点,以使目标节点立即发回 Echo Reply 应答报文;
2)Echo Reply(Type=129;Code=0;):当收到一个Echo Request报文时,ICMPv6会用Echo Reply报文响应;

报文格式
Echo request

Frame 1: 118 bytes on wire (944 bits), 118 bytes captured (944 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_7d:28:b1 (00:e0:fc:7d:28:b1), Dst: HuaweiTe_64:0e:22 (00:e0:fc:64:0e:22)
Internet Protocol Version 6, Src: 2003::2, Dst: 2003::1
0110 …. = Version: 6
…. 0000 0000 …. …. …. …. …. = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
…. 0000 00.. …. …. …. …. …. = Differentiated Services Codepoint: Default (0)
…. …. ..00 …. …. …. …. …. = Explicit Congestion Notification: Not ECN-Capable Transport (0)
…. …. …. 0000 0000 0000 0000 0000 = Flow Label: 0x00000
Payload Length: 64
Next Header: ICMPv6 (58)
Hop Limit: 64
Source Address: 2003::2
Destination Address: 2003::1
Internet Control Message Protocol v6
Type: Echo (ping) request (128)
Code: 0
Checksum: 0x99d9 [correct]
[Checksum Status: Good]
Identifier: 0xd2ab
Sequence: 256
[Response In: 2]
Data (56 bytes)[……]

READ MORE

「COMPUSTER-NETWORKING」- IPv4 地址分类,CIDR, VLSM

有类网络编址(Classful Network Addressing)
在最开始时,IP 地址根据范围,划分为 A、B、C、D、E 类别。注意,并没有网络掩码的概念(或说,网络掩码是固定的,仅 3 个,255.0.0.0、255.255.0.0、255.255.255.0),网络划分隐藏在 IP 地址中(即 A、B、C、D、E 类别)
Class A,0NNNNNNN.NNNNNNNN.NNNNNNNN.NNNNNNNN
1)格式:以 0 为前缀,后 7 位任意变化;即:0,0000000.0.0.0~0,1111111.255.255.255 ⇒ 0.0.0.0~127.255.255.255
2)掩码:255.0.0.0
私有地址:
10.0.0.0 – 10.255.255.255
10.0.0.0/8 (255.0.0.0)
共 16,777,216 个;
Class B,10NNNNNN.NNNNNNNN.NNNNNNNN.NNNNNNNN
1)格式:以 10 为前缀,后 14 位任意变化;即:10,000000.000000,00.0.0~10,111111.111111,11.255.255 ⇒ 128.0.0.0~191.255.255.255
2)掩码:255.255.0.0
私有地址:
172.16.0.0 – 172.31.255.255
172.16.0.0/12 (255.240.0.0)
共 1,048,576 个;
Class C,110NNNNN.NNNNNNNN.NNNNNNNN.NNNNNNNN
1)格式:以 110 为前缀,后 21 为任意变化,即:192.0.0.0~223.255.255.255
2)掩码:255.255.255.0
私有地址:
192.168.0.0 – 192.168.255.255
192.168.0.0/16 (255.255.0.0)
共 65,536 个;
Class D,1110NNNN.NNNNNNNN.NNNNNNNN.NNNNNNNN
范围:224.0.0.0~239.255.255.255
1110(组播)
Class E,1111NNNN.NNNNNNNN.NNNNNNNN.NNNNNNNN
1)格式:240.0.0.0~255.255.255.255
2)1111(科研)
特殊地址
1)0.0.0.0:未指定地址。在 DHCP 中,报文的源地址为 0.0.0.0 地址;
2)255.255.255.255:有限广播地址。能作为目的地址,发往该网段所有主机(受限于网关)
3)127.0.0.1/8:回环地址。用于测试设备自身的软件系统;
4)169.[……]

READ MORE

「IPv6」- 地址配置(Static,DHCPv6,SLAAC)

问题描述
IPv6 的一个突出特点是支持网络节点的地址自动配置,真正实现即插即用(针对地址配置,能够不依赖 DHCP 服务),极大地简化网络管理者的工作;
该笔记将记录:在 IPv6 中,地址配置相关的内容,以及相关问题的解决办法;
解决方案
IPv6 地址配置的方式分为:
1)静态配置:传统的手工配置方式,与 IPv4 手动配置地址类似;
2)动态配置:动态地址配置又分为:
—- 无状态地址自动配置(Stateless Address Autoconfiguration, SLAAC)
—- 有状态地址自动配置(Stateful Address Autoconfiguration)
Stateful vs. Stateless

地址配置
Stateful(DHCPv6)
Stateless(NDP)

地址管理
有状态,服务器端存储用户地址或前缀的分配和释放信息
无状态。不保存用户地址分配信息

部署价值
支持 128bit 地址和不同长度的前缀分配,扩展性强
只支持 64bit 前缀配置,扩展性差

实现难度
配置复杂
配置简单

安全性
应用层协议,安全性强
安全性较差

通过如上对比,尽管使用简单,但无状态的 NDP 还由很多局限性;[……]

READ MORE

「IKE」- 预共享密钥 | 第一阶段 | 主模式 | Main Mode

主模式被设计成将密钥交换信息与身份认证信息相分离的一种交换技术。通过这种分离,得以将交换的身份信息进行加密保护,从而保证身份信息在传输过程中的安全性;
主模式总共需要经过 3 个步骤,共 6 条消息,来完成第一阶段的协商,最终建立 IKE SA;
这 3 个步骤分别是:模式协商;DH 交换、Nonce 交换;针对对方身份的验证;
主模式的特点包括身份保护以及对 ISAKMP 协商能力的完全利用。其中,身份保护在对方希望隐藏自己的身份时显得尤为重要。在我们讨论野蛮模式时,若使用预共享密钥方法验证,协商能力的完全利用与否也会凸显出其重要性;

主模式包含三次双向交换,用到了六条 ISAKMP 信息,协商过程如图 1 所示。这三次交换分别是:
消息 ① 和 ② 用于提议交换
发起方发送一个或多个 IKE 安全提议,响应方查找最先匹配的 IKE 安全提议,并将这个 IKE 安全提议回应给发起方。匹配的原则为协商双方具有相同的加密算法、认证算法、认证方法和 Diffie-Hellman 组标识;
消息 ③ 和 ④ 用于密钥信息交换
双方交换 Diffie-Hellman 公共值和 nonce 值,用于 IKE SA 的认证和加密密钥在这个阶段产生;
消息 ⑤ 和 ⑥ 用于身份和认证信息交换(双方使用生成的密钥发送信息)
双方进行身份认证和对整个主模式交换内容的认证;
详细交互过程

在消息 1、2 发送之前,协商发起者和响应者必须计算产生自己的 cookie,用于唯一标识每个单独的协商交换,cookie 使用 SRC-IP-ADDR/DST-IP-ADDR、随机数字、日期、时间进行 MD5 运算得出,并且放入消息 1 的 ISAKMP 中,用以标识单独的一个协商交换;
在第一次交换中
需要交换双方的 cookie 和 SA 载荷
在 SA 载荷中,携带需要协商的 IKE SA 的各项参数,包括:IKE 的散列类型、加密算法、认证算法、IKE SA 的协商时间限制、……
第一次交换后,第二次交换前,通信双方需要生成用于产生 Diffie-Hellman 共享密钥的 DH 值。生成方法是双方各自生成一个随机数字,通过 DH 算法对随机数字进行运算,得出一个 DH 值 Xa 和 Xb(Xa 是发起放的 DH 值,Xb 是响应者的 DH 值),然后双方再根据 DH 算法运算得出一个临时值 Ni 和 Nr;
在第二次交换中
双方交换各自的密钥交换载荷(即 DH 交换)以及临时值载荷(即 nonce 交换);
其中密钥交换载荷包含了 Xa 和 Xb,临时值交换包含了 Ni 和 Nr;
双方交换了临时值载荷 Ni 和 Nr 之后,配合事先预置好的预共享密钥,再通过为随机函数运算便可产生一个密钥 SKEYID,这个密钥使后续[……]

READ MORE

「VPN」- SRv6 Policy 高可靠性:VPN FRR

Anycast FRR 通过在 CE 双归的 PE 上部署相同的 Locator 和 VPN SID 来实现 SRv6 尾节点保护;

Anycast FRR 除了在尾节点保护的场景中使用外,也可以在局部保护中使用;
Anycast FRR 能够实现 PE 节点故障的保护,但是 Anycast FRR 存在如下问题:
需要静态指定 VPN SID,因为需要保证两个 PE 的 VPN SID 一致;
受限于 IGP 层面的优选,无法进行 VPN 层面的选路。例如,如果 VPN 希望在节点 PE3 和 PE4 形成负载分担,或者优选节点 PE3。但 IGP 到 FC05::的路径优选的是节点 PE4,没有办法控制 VPN 层面的选路;
当 PE-CE 侧接口故障的时候,例如,节点 PE3 到 CE2 的链路故障的时候,报文还是会转发到 PE3,然后绕行到 PE4,会产生流量的绕行,而且无法恢复;[……]

READ MORE

「DHCP」- 概念术语

概述介绍
DHCP 能够分配其他配置参数,例如 Client 的启动配置文件,使 Client 仅用一个消息就获取它所需要的所有配置信息;
鉴于 DHCP 使用广播报文,所以 DHCP Client 与 DHCP Server 需要处于同个二层广播域中(即两者间不存在三层路由设备);
地址分配机制
DHCP 可以提供两种地址分配机制,网络管理员可以根据网络需求为不同的主机选择不同的分配策略;
1)动态分配机制:通过 DHCP 为主机分配一个有使用期限(这个使用期限通常叫做租期)的 IP 地址。这种分配机制适用于主机需要临时接入网络或者空闲地址数小于网络主机总数且主机不需要永久连接网络的场景;
2)静态分配机制:网络管理员通过 DHCP 为指定的主机分配固定的 IP 地址。相比手工静态配置 IP 地址,通过 DHCP 方式静态分配机制避免人工配置发生错误,方便管理员统一维护管理;
地址池
用于 DHCP 分配网络地址的网络地址范围。在交换机中,会有全局地址池与 接口地址池的概念;
地址租期
DHCP Server 给每个分配给 DHCP Client 的 IP 地址定义一个使用期限,该使用期限被称为租期;
在租期到期前,DHCP Client 如果仍需要使用该 IP 地址,可以请求延长租期;
地址释放
如果不需要,可以主动释放该 IP 地址。如果 Host 不再使用 Server 下发的地址,则发送 Release 报文给 Server,以释放该地址;
DHCP Client 在租期时间到之前,如果用户不想使用分配的 IP 地址(例如 DHCP Client 网络位置需要变更),会触发 DHCP Client 向 DHCP Server 发送 DHCP RELEASE 报文,通知 DHCP Server 释放 IP 地址的租期;
在没有其他空闲地址可用的情况下,DHCP Server 会把 DHCP Client 主动释放的 IP 地址分配给其他 DHCP Client;[……]

READ MORE

「NETWORKING」- 判断 IP 地址归属地

问题描述
该笔记将记录:获取 IP 地址归属地(所属国家)的方法,以及相关问题的解决方案。
解决方案
搜索引擎、第三方接口
如果是非编程使用:我们能够在搜索引擎中输入网络地址,然后搜索引擎会返回网络地址的归属地。
如果作为编程使用:我们能够使用第三方接口,比如:https://qifu.baidu.com/?activeKey=SEARCH_IP
通过 GeoLite2 数据库
MAXMIND 提供地址数据库,我们能够使用这个数据库文件进行查询。很多开源软件都在使用 MAXMIND 提供的 GeoLite 数据库,比如 Nginx ELasticsearch 组件。
首先,注册 MAXMIND 帐号(GeoLite2 Sign Up),否则无法下载数据库文件(以往无需注册)。
然后,访问 Download Files 页面,以下载数据库文件:https://www.maxmind.com/en/accounts/current/geoip/downloads

# 下载 GeoLite2 City .mmdb 文件(手动下载)
# 下载 GeoLite2 Country .mmdb 文件(手动下载)

# 解压数据库文件
tar -xf GeoLite2-City_20210525.tar.gz
tar -xf GeoLite2-Country_20210525.tar.gz

安装 mmdb 查询工具:

apt-get install mmdb-bin # Ubuntu

在数据库中查询 IP 地址归属地:

# mmdblookup –file GeoLite2-Country_20210525/GeoLite2-Country.mmdb –ip 121.31.152.66

# mmdblookup –file GeoLite2-Country_20210525/GeoLite2-Country.mmdb –ip 121.31.152.66 country names zh-CN

“中国” <utf8_string>

# mmdblookup –file GeoLite2-City_20210525/GeoLite2-City.mmdb –ip 121.31.152.66 city names zh-CN

“珠海市” <utf8_string>

数据库文件的自动更新,参考 Updating GeoIP and GeoLite Databases 文档。
相关链接
List of countries by IPv4 address allocationChina IP Address Ranges
参考文献
国内哪个精确到城市[……]

READ MORE

「HUAWEI-ENSP」- 实验学习:L3VPN over SR-MPLS TE | Intra-AS

实验拓扑

实验需求

部署 L3VPN over SR-MPLS TE (Inter-AS) 环境,实现 PC1 与 PC2 互通;

实验过程
该实验开始前,需要预先完成如下配置:

完成设备接口 IP Adress 及 OSPF 配置,实现网络互通; ⇒ 略过
完成 SR MPLS BE 配置,实现隧道的建立; ⇒ 略过
完成 SR MPLS TE 配置,通过显式路径或 CSPF 算路皆可; ⇒ 略过

配置过程:

# ———————————————————————————– # BGP VPNv4

[CX1]bgp 100
[CX1-bgp]peer 5.5.5.5 as-number 100
[CX1-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[CX1-bgp]ipv4-family vpnv4 unicast
[CX1-bgp-af-vpnv4]peer 5.5.5.5 enable

[CX5]bgp 100
[CX5-bgp]peer 1.1.1.1 as-number 100
[CX5-bgp]peer 1.1.1.1 connect-interface LoopBack 0
[CX5-bgp]ipv4-family vpnv4 unicast
[CX5-bgp-af-vpnv4]peer 1.1.1.1 enable

# ———————————————————————————– # 接入 CE 设备

[CX1]ip vpn-instance SiteA
[CX1-vpn-instance-SiteA]ipv4-family unicast
[CX1-vpn-instance-SiteA-af-ipv4]route-distinguisher 100:1
[CX1-vpn-instance-SiteA-af-ipv4]vpn-target 100:1

[CX1]interface Ethernet 1/0/1
[CX1-Ethernet1/0/1]ip binding vpn-instance SiteA
[CX1-Ethernet1/0/1]ip address 192.168.10.254 24

[CX1]bgp 100
[CX1-bgp]ipv4-family vpn-instance SiteA
[CX1-bgp-SiteA]network 192.168.10.0 24

[CX5]ip vp[……]

READ MORE

「DHCPv6」- DHCP version 6

认识
在 IPv6 中,使用的 DHCP 协议。
DHCPv6 是针对 IPv6 编址方案设计,支持对客户端分配 IPv6 Prefix、IPv6 Address、其他网络配置参数,并记录这些信息,便于网络管理。
组成
DHCPv6 的工作原理与 DHCPv4 类似,但融入 IPv6 相关特性。
性质
WIP
应用
IPv6 网络环境[……]

READ MORE

「DHCP」- ACK

Frame 235: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_4c:52:12 (00:e0:fc:4c:52:12), Dst: HuaweiTe_32:73:97 (54:89:98:32:73:97)
Internet Protocol Version 4, Src: 192.168.0.254, Dst: 192.168.0.253
User Datagram Protocol, Src Port: 67, Dst Port: 68
Dynamic Host Configuration Protocol (ACK)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x00007cd5
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
0… …. …. …. = Broadcast flag: Unicast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0
Your (client) IP address: 192.168.0.253
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: HuaweiTe_32:73:97 (54:89:98:32:73:97)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
Length: 1
DHCP: ACK (5)
Option: (1) Subnet Mask (255.255.255.0)
Length: 4
Subnet Mask: 255.255.255.0
Option:[……]

READ MORE

「IPv6 Transition」- Auto, ISATAP Tunnel

原理简述
ISATAP 隧道同样使用了内嵌 IPv4 地址的特殊 IPv6 地址形式,用 IPv4 地址做为接口标识;
接口标识

ISATAP 接口标识解释:
如果 IPv4-ADDR 是全局唯一的,则 u=1,否则 u=0。典型的 ISATAP 隧道应用是在站点内部,因此其内嵌的 IPv4 地址不需要是全局唯一的;
g 位是 IEEE 群体 / 个体标志,固定为 0;
网络拓扑

ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)隧道:
ISATAP 地址前 64 位:通过向 ISATAP Route 发送请求来得到的,它可以进行地址自动配置。在 ISATAP 隧道的两端设备之间可以运行 NDP;
如图所示,在 IPv4 网络内部有 1 个双栈主机 Host 2,它有一个私网 IPv4 地址(10.1.1.2/24)。
要使其具有 ISATAP 功能,需要进行如下操作:
1)首先配置 ISATAP 隧道接口,这时会根据 IPv4 地址生成 ISATAP 类型的接口 ID;
2)根据接口 ID 生成一个 ISATAP 链路本地 IPv6 地址(FE80::5EFE:A01:102),生成链路本地地址以后,主机就有了在本地链路上进行 IPv6 通信的能力;
3)配置 IPv6 地址自动获取,主机获得 IPv6 全球单播地址(1::5EFE:A01:102);
4)当主机与其它 IPv6 主机进行通讯时,从隧道接口转发,将从报文的下一跳 IPv6 地址中取出 IPv4 地址作为 IPv4 封装的目的地址;
特性特征
可以运行动态路由协议 OSPFv3,但是需要 nbma 网络,通过 Link-Local 地址以单播建立邻居;
配置案例
WIP !!! [Netwrok] IPv6 Transition ISATAP Tunnel[……]

READ MORE

「VPN」- SRv6 Policy 高可靠性:逃生路径

当 PE1 通过 SBFD 感知到主路径和备份路径都失效的情况下,PE1 会将流量承载与 SRv6 BE 隧道之上;

BGP 100
ipv6-family vpn-instance vpn1
segment-routing ipv6 traffic-engineer best-effort[……]

READ MORE

「VPN」- SRv6: Ping and Tracert

SRv6 Ping/Tracert 介绍

Flags 详细格式:

| | |O-bit|Reserved|

方案一:SRH 里的 O-bit
由于 O-bit 处于 SRv6 报文头中,每一个 SRv6 Endpoint 节点都需要处理并响应 ICMPv6 Ping&Tracert 请求;
所以基于 O-bit=1,就可以实现逐段(Segment-by-Segment)检测;
方案二:利用 End.OP SID
End.OP SID 可以指示将数据包上送到控制平面进行 OAM 处理;
检测 SRv6 Policy 时,头节点会将 End.OP SID 编入 Segment List;
由于只有生成了 End.OP SID 的 SRv6 Endpoint 节点才能处理 ICMPv6 Ping&Tracert 请求报文,所以基于 End.OP SID,就可以实现端到端(End-to-End)检测;
实现方式
当前实现 SRv6 的 Ping&Tracert 有两种方法:

一种是在 SRH 中引入了 OAM 比特位,由于 O-bit 处于 SRv6 报文头中,每一个 SRv6 Endpoint 节点都需要处理并响应 ICMPv6 Ping&Tracert 请求,所以基于 O-bit 可以实现逐段检测,通过 ping ipv6-sid 和 tracert ipv6-sid 命令可以检测单个或多个 SID;

另一种是引入 End.OP SID,End.OP SID 可以指示将数据包上送到控制平面进行 OAM 处理。检测 SRv6 Policy 时,头节点会将 End.OP SID 会编入 Segment List。由于只有生成了 End.OP SID 的 SRv6 Endpoint 节点才能处理 ICMPv6 Ping&Tracert 请求报文,所以基于 End.OP SID 可以实现端到端检测;

这种情况下,又进一步分为两种形式:

其一是在 ping ipv6-sid 和 tracert ipv6-sid 命令中通过增加 End.OP 类型的 SID,实现对 SID 栈的检测;

其二是在 ping srv6-te policy 和 tracert srv6-te policy 命令中通过指定 end-op 参数,实现对 SRv6 Policy 的检测;

SRv6 Ping 工作原理
SRv6 Ping 可以分为逐段 Ping 测试与非逐段 Ping 测试

对于逐段检测的情况:
PE1 向 PE2 发起 Ping,携带 P1 的 SRv6 SID(End SID 和 End.X SID)和[……]

READ MORE

「DHCPv6」- 概念、术语

网络架构

在 DHCPv6 中,基本协议架构也包括以下三种角色:
1)DHCPv6 Client:客户端,通过与DHCPv6服务器进行报文交互,获取IPv6地址/前缀和其他网络配置参数,完成自身的网络配置。
2)DHCPv6 Server:服务器,负责处理来自客户端或中继的地址分配、地址续租、地址释放等请求,为客户端分配IPv6地址/前缀和其他网络配置参数。
3)DHCPv6 Relay:中继,负责转发来自 Client/Server 的 DHCPv6 报文,协助 DHCPv6 Client 和 DHCPv6 Server 完成地址配置功能。
应用方式
DHCPv6 又分为如下三种:
1)DHCPv6 有状态自动配置:主机通过 DHCPv6 Server 来自动配置 IPv6 Address、IPv6 Prefix、其他网络配置参数(DNS、NIS、SNTP服务器地址等参数)。
2)DHCPv6 无状态自动配置:主机 IPv6 Address 仍然通过 RA 方式自动生成,而 DHCPv6 Server 只分配除 IPv6 Address 以外的配置参数,包括 DNS Server 等等参数。
3)DHCPv6 PD(Prefix Delegation,前缀代理)自动配置:下层网络路由器不需要再手工指定用户侧链路的IPv6地址前缀,它只需要向上层网络路由器提出前缀分配申请,上层网络路由器便可以分配合适的地址前缀给下层路由器,下层路由器把获得的前缀(前缀一般长度小于64)进一步自动细分成64位前缀长度的子网网段,把细分的地址前缀再通过路由通告(RA)至与IPv6主机直连的用户链路上,实现主机的地址自动配置,从而完成整个IPv6网络的层次化布局。
常用概念
通过这些常用概念,形成对 DHCPv6 的初步认识:
Valid Lifetime,有效时间:地址/前缀的生命周期。用于指定地址/前缀的过期时间,过期后所有使用该地址/前缀的用户下线。此时间必须配置为不小于3小时,且不得小于优先级时间。
Preferred Lifetime,优选时间:用于计算续租时间和重绑定时间。此时间必须配置为不小于2小时。
T1:IPv6地址的续租(Renew)时间,默认是Preferred Lifetime的0.5倍。
T2:IPv6地址的重绑定(Rebind)时间,默认是Preferred Lifetime的0.8倍。
Identity Association,身份联盟:是使得服务器和客户端能够识别、分组和管理一系列相关IPv6地址的结构,又分为IA_NA(非临时地址身份联盟)和IA_PD(代理前缀身份联盟)。
DHCP Unique Identifier,DUID,即 DHCP 设备唯一标识符。用来唯一标志一台设备,每个客户端、服务器、中继都有[……]

READ MORE

「DHCPv6」- 有状态地址自动配置(Stateful Address Autoconfiguration)

解释:IPv6 地址分配服务器必须保存每个节点的状态信息,并管理这些保存的信息,这种方式称之为 IPv6 有状态地址自动配置。
有状态自动配置,基于 DHCPv6 来实现:
1)通过 DHCPv6 报文交互,DHCPv6 Server 自动获取,
2)并配置 IPv6 Address、Network Prefix、其他网络配置参数(DNS、NIS、SNTP 服务器地址等参数)。
3)在终端设备访问网络的场景中使用;
地址分配
四步交互
四步交互是指 DHCPv6 Client 与 DHCPv6 Server 交互四次来完成前缀/地址等参数获取的过程。

1)DHCPv6 Client 发送 Solicit 消息,请求 DHCPv6 Server 为其分配 IPv6 Address、Network Prefix、网络配置参数;
2)DHCPv6 Server 回复 Advertise 消息,通知 Client 分配给它的地址/前缀和网络配置参数;
3)DHCPv6 Client 发送 Request 消息,请求服务器确认为其分配地址/前缀和网络配置参数。如果接收到多个服务器回复的 Advertise 消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送 Request 消息;
4)DHCPv6 Server 回复 Reply 消息,确认将地址/前缀和网络配置参数分配给客户端使用(如果地址无法使用,则通过 Reply 消息的其它字段来表示地址分配失败;
两步交互
DHCPv6 Client 在发送的 Solicit 携带 Rapid Commit 选项,表示 Client 希望 Server 能够快速为其分配地址/前缀和网络配置参数。对比四步交互,省略 2、3 两步。

1)DHCPv6 Client 发送 Solicit 报文,携带 Rapid Commit 选项。
2)DHCPv6 Server 接收 Solicit 报文,将会判断:
—- 如果 DHCPv6 Server 支持快速分配,则直接返回 Reply 报文,为客户端分配IPv6地址/前缀和其他网络配置参数。
—- 如果 DHCPv6 Server 不支持快速分配,则将采用四步交互方式。
注意事项:
1)两步交换可以提高 DHCPv6 分配过程的效率,但适用在网络中只存在一台 DHCPv6 服务器的情况下。
2)在有多个 DHCPv6 Server 的网络中,多个 DHCPv6 Server 都可以为 DHCPv6 Client 分配IPv6地址/前缀和其他配置参数,但是 Client 实际只能使用其中一个 Server 为其分配的IPv6地址/前缀和配置参数,导致其他[……]

READ MORE

「Helm」- ChartMuseum

认识
Host your own Helm Chart Repository. ChartMuseum is an open-source, easy to deploy, Helm Chart Repository server.
ChartMuseum is an open-source Helm Chart Repository server written in Go (Golang), with support for cloud storage backends, including Google Cloud Storage, Amazon S3, Microsoft Azure Blob Storage, Alibaba Cloud OSS Storage and Openstack Object Storage.
ChartMuseum is a child project under the Helm umbrella.
官网:https://chartmuseum.com/
文档:https://chartmuseum.com/docs/#
仓库:https://github.com/helm/chartmuseum
组成
ChartMuseum | https://helm.sh/docs/topics/chart_repository/
helm cm-push plugin | https://github.com/chartmuseum/helm-push
构建
在线安装 cm-push 插件
helm plugin install https://github.com/chartmuseum/helm-push
离线安装 cm-push 插件
下载并直接执行 helm-cm-push 命令即可。
该下代码供 Jenkins Custom Tools 使用:

if [ ! -e ./linux-amd64/helm ]
then
rm -rf ./helm-v3.13.3-linux-amd64.tar.gz ./linux-amd64/

wget https://mirrors.huaweicloud.com/helm/v3.13.3/helm-v3.13.3-linux-amd64.tar.gz
tar -xf ./helm-v3.13.3-linux-amd64.tar.gz
chmod u+x ./linux-amd64/helm
fi

if ! ./linux-amd64/helm-cm-push 1>/dev/null 2>&1
then
wget https://package.devops.d3rm.org[……]

READ MORE

「Network」- IPv4,概念,术语

IP 地址
用于 IP 报文在网络中寻址
由 IANA 分配(它负责和数字相关的分配),2011 年已经将 IPv4 分配结束。
地址表示法:点分十进制
地址结构:32-bit,网络位 + 主机位
地址范围:0.0.0.0 – 255.255.255.255
主机位全零,表示网络地址,不能使用
主机位全一,表示广播地址,不能使用
在 IP 网络中,二进制和十六进制为常用的表示法;
网络掩码、子网掩码
通过网络掩码得到主机所在的网络,为了能够从主机地址中得到网络位与主机位;
子网,是指向主机位借位,使“借位”成为主机位,以扩展网络位。
这里应该称之为网络掩码,而不是子网掩码(虽然有时候我们不会严格区分);
地址规划
对于 192.168.1.7 / 255.255.255.0 地址:
1)网络地址:192.168.1.0,表示:当前网络;
2)广播地址:192.168.1.255,表示:当向该地址发送数据时,该网络中主机都将收到数据;
3)主机数:28 – 2
网关、网络寻址
网关,用于不同网段之间的主机通信。网关用来转发来自不同网段的数据包。[……]

READ MORE

「ICMPv6」- 组播侦听者发现协议(MLD, Multicast Listener Discovery)

在 IPv6 Multicast 中,Multicast Reveiver 使用 MLD(通过 ICMPv6 实现)来进行加组,不再使用 IGMP 协议。
组播侦听者发现协议(MLD),RFC2710 和 RFC3810,也是通过不同类型 ICMPv6 报文组合实现:
1)Type=130 查询消息
2)Type=131 报告消息
3)Type=132 离开消息
4)Type=143 MLDv2报告消息[……]

READ MORE

「IPv6」- 过渡技术(IPv6 Transition Mechanism)

问题描述
随着 IPv4 地址短缺(枯竭)问题日益加剧,以及 IPv6 的先进性,IPv4 过渡为 IPv6 势在必行。从 IPv4 网络向 IPv6 迁移已经成为各网络当前的工作重点。虽然 IPv6 是解决地址短缺的终极方案,但由于业务延续性的需要,IPv4 网络将继续保留相当长时间;
当前网络不会在一夜之间突然完成从 IPv4 到 IPv6 环境的切换。因为 IPv6 与 IPv4 的不兼容性,所以需要对原有的 IPv4 设备进行替换。但是如果贸然将 IPv4 设备大量替换所需成本会非常巨大,且现网运行的业务也会中断,显然并不可行。所以,IPv4 向 IPv6 过渡是一个渐进的过程。在过渡初期,IPv4 网络已经大量部署,而 IPv6 网络只是散落在各地的“孤岛”,需要借助各种 IPv6 过渡技术来实现 IPv6 业务互通;
在网络向 IPv6 演进的过程中,部署 IPv4 地址和 IPv6 地址共存的网络将无可回避。当前世界上不同地区对部署 IPv6 的需求强烈程度不一,且当前 IPv4 网络仍然占主流地位,所以短时间内 IPv6 和 IPv4 将会共存;
我们需要一些网络过渡技术,来实现 IPv4 到 IPv6 网络的切换;
解决方案
在 IPv4 和 IPv6 共存时期的过渡技术,包括 IPv6 over IPv4 Tunnel、6PE、6VPE、IPv4 over IPv6、NAT64、IVI 等;
注意,没有最好的过渡技术方案,没有任何一种技术方案能够解决所有问题,通常是多种技术组合成不同的过渡方案,满足不同的网络访问场景;
将 IPv4 Network 演变为 IPv6 Network 主要有以下三类技术:
隧道技术(Tunneling)
1)解释:将 IPv4 Traffic 封装在 IPv6 Tunnel 中,或者将 IPv6 Traffic 封装在 IPv4 Tunnel 中;
2)时期:在 IPv4 过渡 IPv6 的前期(IPv6 over IPv4)或后期(IPv4 over IPv6);
3)优缺:仅适用于实现孤岛互通的临时状态,并不适用于长期、稳定的业务形态;
4)要求:部署隧道技术的设备(一般是隧道端点)需支持双栈及相应的隧道技术;
场景:
1)适用于在 IPv4 传输网络中实现 IPv6 孤岛间的互通;(IPv6 over IPv4)
2)或者在 IPv6 传输网络中实现 IPv4 孤岛间的互通;(IPv4 over IPv6)
双栈技术(Dual Stack)
1)解释:设备支持 IPv4/IPv6 协议,两者在网络中同时部署并独立运行,在一段时间内并存;
2)时期:在 IPv4 过渡 IPv6 的中期;
3)优缺:对现有 IPv4 业务影响较小。演进方[……]

READ MORE

「DHCP」- Request

Frame 234: 410 bytes on wire (3280 bits), 410 bytes captured (3280 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_32:73:97 (54:89:98:32:73:97), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Dynamic Host Configuration Protocol (Request)
Message type: Boot Request (1)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x00007cd5
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
0… …. …. …. = Broadcast flag: Unicast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0
Your (client) IP address: 0.0.0.0
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: HuaweiTe_32:73:97 (54:89:98:32:73:97)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (Request)
Length: 1
DHCP: Request (3)
Option: (54) DHCP Server Identifier (192.168.0.254)
Length: 4
DHCP Server Identifier: 192.16[……]

READ MORE

「IPv6」- 无状态地址自动配置(SLAAC,Stateless Address Autoconfiguration)

解释:不需要 IPv6 地址分配服务器保存和管理每个节点的状态信息的一种 IPv6 地址自动配置方式,称之为 IPv6 无状态地址自动配置。
无状态自动配置(SLAAC),基于 ICMPv6 NDP 来实现:
1)主机发送 ICMPv6 RS 报文,然后根据 NDP.RA 返回的地址前缀,并结合本地生成的 64bit 的接口标识(例如 EUI-64),自动生成单播地址;
2)但仅能获得 IPv6 地址信息,无法获得 NIS、SNTP 等参数,需要配合 DHCPv6 或者手工配置来获取其他配置信息;
3)在网络设备间通信使用;
无状态自动配置交互过程
IPv6 无状态地址配置通过交互 RS 和 RA 报文完成。

PC1 根据本地的 Interface ID 自动生成 LLA;
PC1 对该 LLA 进行 DAD 检测,如果该地址无冲突则可启用,此时 PC1 具备 IPv6 连接能力;
PC1 发送 RS 报文,尝试在链路上发现 IPv6 路由器;
R1 发送 RA 报文(携带可用于无状态地址自动配置的IPv6地址前缀。路由器在没有收到RS报文时也能够主动发出RA报文);
PC1 解析路由器发送的 RA 报文,获得 IPv6 地址前缀,使用该前缀加上本地的 Interface ID 生成 IPv6 单播地址;
PC1 对生成的 IPv6 单播地址进行 DAD 检测,如果没有检测到冲突,则启用该地址;
对于(3)(4)(5)步骤,具体的交互过程如下:
1)PC1 首先生成链路本地地址 FE80::1002,然后向本地链接中所有路由器发送路由器请求(RS);
2)R1 发送 RA 携带着用于无状态地址自动配置的前缀信息,本例中,该前缀为 2001:DB8::/64;
3)PC1 收到 RA 报文后,根据 RA 报文中携带的前缀信息加上 Interface ID 生成 IPv6 地址 2001:DB8::1002;[……]

READ MORE

「VPN」- SRv6 Policy 高可靠性:TI-LFA

解决方案
TI-LFA(Topology-Independent Loop-free Alternate)FRR 能为 SRv6 隧道提供链路及节点的保护;
原理简述
当某处链路或节点故障时,流量会快速切换到备份路径继续转发;
P 空间与 Q 空间:
P 空间:以源节点为根,到其他节点的 SPF 树,删掉被保护路径及其下挂的分支和节点,剩下可达的节点(不包含根节点)集合就是 P 空间;
扩展 P 空间:以源节点的各个邻居为根(不包含被保护链路节点),到其他节点的 SPF 树,删掉故障点下挂的分支和节点,剩下可达的节点(不包含根节点)集合就是扩展 P 空间;
Q 空间:以目的节点为根,其他节点到根的 r-SPF 树,删掉被保护路径及其下挂的分支和节点,剩下可达的节点(不包含根节点)集合就是 Q 空间;

TI-LFA 计算原则
SRLG Disjoint > 节点保护 > 链路保护 > cost 最小;
计算同时满足 SRLG Disjoint+节点保护的备份路径,存在多条时,选择 cost 最小的路径;
否则,计算满足 SRLG Disjoint+链路保护的备份路径,存在多条时,选择 cost 最小的路径;
否则,计算满足节点保护的最小 cost 的备份路径;
否则,计算满足链路保护的最小 cost 的备份路径;
如图,PE1 到 PE2 的最短路径也就是主用路径为 PE1->P1->P4->PE2,P1 需要计算到 PE2 的 TI-LFA 备份路径:
1)排除主下一跳(Link P1->P4)计算收敛后的最短路径:P1->P2->P3->P4->PE2;
2)计算 P 空间和 Q 空间,P 空间为(P1,P2),Q 空间为(P3,P4,PE2);
3)计算 TI-LFA 路径:把任意路径表示为多段路径:源节点<–>P<–>Q<->目的节点。其中源节点到 P 是无环路径,Q 到目的节点是无环路径。P 到 Q 使用严格显式路径(END.X SID)来表达,这样整个 TI-LFA 严格显式路径一定是无环的。为了简化修复路径,选取 P 空间中离源节点最远的节点 P2,以及 Q 空间中距离目的节点最远的节点 P3,以及 PQ 之间的链路;
4)P1 感知到 P1->PE2 接口状态为 Down,使用备份表项转发,封装新的 SRH。其中 Segment List 为<FC03::C4,FC06::6>,并修改 IPv6 目的地址为 FC03::C4,之后将报文转发到备份出接口为 B->C;
TI-LFA 优势
满足 100% 拓扑覆盖,用户不用担心网络[……]

READ MORE

「HUAWEI-ENSP」- 实验学习:L3VPN over SRv6 BE | Intra-AS

实验拓扑
实验需求
实验过程
IPv4 over IPv6
ip vpn-inst

rt

rd
Intef Lo

ip bind vpn-inft

bgp

peer <ipv6>

ipv4-family vpnv4

peer … enable

peer … prefix-sid

ipv4-family vpn-inst xxxx

import …

bgp

ipv4-family vpnv4

peer … prefix-sid //

ipv4-family vpn-inst xxxx

seg-rt ipv6 localtor Foo // Foo 是预先定义的 Locator,一关联到特定的 SRv6 上。注意,该处分配的 SID 将在 Foo 范围内,所以才能路由;

seg-rt ipv6 best-effor // 使用 BE 进行转发;

dis bgp vpnv4 all peer
// 问题:现在 BGP Nexthop 是 Peer <ipv6> 地址,但是路由递归后是无法转发的,VPNv4 路由中显示无效;
// 分析:原因是 Nexthop 是 Peer <ipv6> 地址,而此地址没有封装方法;
// 方案:BGP 传递路由时,需要为路由分配 SRv6 SID(END.DT4),该 SID 用于标识某个 VPN Instance,以将数据转发到特定 VPN Instance 中。
dis bgp vpnv4 all peer routing-table x.x.x.

// 关注 Prefix-sid 字段,而非 SR MPLS 中的 Label 字段

dis seg-rt ipv6 loc-sid end-dt4 forwarding[……]

READ MORE

「DHCP」- 使用 dnsmasq 搭建 DHCP 服务

问题描述
使用dnsmasq配置一个DHCP服务。
树莓派上有两张网卡,一张有线(eth0),一张无线(wlan0)。无线网卡已经连接到无线热点,能够正常访问网络。
要实现的功能就是:把笔记本和树莓派用网线连接起来,笔记本能够通过DHCP获取IP地址,并访问网络。
所以,不光使用dnsmasq搭建了DHCP服务,还实现了SNAT(路由)功能。
所使用的环境
系统环境:Debian,准确说是Raspbian,又是树莓派。
硬件信息:Raspberry Pi 3B+
网络环境:树莓派上有两张网卡,一张有线(eth0),一张无线(wlan0)。无线网卡已经连接到无线热点,能够正常访问网络。
服务信息:DHCP地址范围为172.31.252.0/24;网关地址为172.31.252.1
开始进行配置
配置eth0接口

# 这里我们使用172.16.0.0/8网段
ifconfig eth0 172.31.252.1 netmask 255.255.255.0 up

配置 dnsmasq 服务
在这里dnsmasq提供DHCP服务,它也提供DNS功能,但我们不使用DNS功能。
安装dnsmasq服务:

apt-get install dnsmasq

(其实,如果没有dnsmasq也是可以的,但手动配置设置笔记本的网络,这也是可以的,但是本文是介绍dnsmasq服务的,所以不讨论这个。)
修改/etc/dnsmasq.conf文件,写入如下内容:

interface=eth0
listen-address=172.31.252.1
no-dhcp-interface=

dhcp-range=172.31.252.2,172.31.252.254,12h

重启或启动dnsmasq服务:

# 启动服务
systemctl start dnsmasq

# 重启服务
systemctl restart dnsmasq

# 或者手动启动
dnsmasq -C /etc/dnsmasq.conf

开启 SNAT 功能
开启内核ip_forward功能:

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

# 写入/etc/sysctl.conf中持久化配置
echo ‘net.ipv4.ip_forward=1’ >> /etc/sysctl.conf

配置SNAT功能:

# 172.31.252.1/24:DHCP所使用的网段
# wlan0是连接到外部网络的接口
iptables -t nat -A POSTROUTING -s 172.31.252.1/24 -o wlan0 -j[……]

READ MORE