SLES网络
一、高级网络接口
1.理解高级网络接口的概念
Linux网络接口相关层在OSI中的位置
1.1数据链路层
- 定义了节点间通信的协议
- 检测并纠正物理层产生的错误
- 分为两个子层:
- 媒体访问控制(MAC):节点如何获取访问物理媒体的权限并传输数据
- 逻辑链路控制(LLC):网络层协议的封装、错误检查和流量控制
- 协议数据单元(PDU)或传输的数据单元 = 帧
数据链路层提供节点到节点的数据传输或两个直接连接节点之间的链路。它提供传输协议识别和管理,检测并可能纠正物理层中可能发生的错误,此外还提供流量控制和帧同步。它定义了用于在两个物理连接的设备之间建立和终止连接的协议。它还定义了它们之间的流量控制协议。
IEEE 802将数据链路层分为两个子层:
● 媒体访问控制(MAC)层——负责控制网络中设备如何获取对介质的访问权限以及传输数据的许可。
● 逻辑链路控制(LLC)层——负责识别网络层协议,然后对其进行封装,并控制错误检查和帧同步。
1.2 MAC地址
- 在第二层提供唯一标识符
- 一个48位的数字,被分为6个八位字节(octet),并以十六进制表示(也称为:MAC-48或EUI-48)
- 被烧制(固化)在网络接口中(可以在软件中被覆盖)
- 应该在全球范围内是唯一的(尽管包含用于本地管理的规定)
计算机的媒体访问控制地址(MAC地址)是分配给网络接口的唯一标识符,用于网络段的数据链路层通信。MAC地址被用作大多数IEEE 802网络技术(包括以太网和Wi-Fi)的网络地址。在OSI参考模型的媒体访问控制协议子层中,逻辑上使用了MAC地址。
MAC地址通常由网络接口控制器(NIC)的制造商分配,并存储在硬件中,如卡片的只读存储器或其他固件机制中。如果由制造商分配,MAC地址通常编码制造商的注册识别号,并可能被称为固化地址(BIA)。它也可能被称为以太网硬件地址(EHA)、硬件地址或物理地址(不要与内存物理地址混淆)。这与编程地址形成对比,在编程地址中,主机设备向NIC发出命令以使用任意地址。
网络节点可能有多个NIC,而每个NIC都必须有一个唯一的MAC地址。像多层交换机或路由器这样的复杂网络设备可能需要一个或多个永久分配的MAC地址。
这很重要,因为在处理如IPv6和虚拟化等更高级的主题时,了解MAC地址的构造结构以及分配方式非常重要。MAC地址是网络通信的基础,它们确保了数据包能够正确地被发送到目标设备。了解MAC地址的工作原理有助于我们更好地理解网络的工作原理,以及如何在不同的网络环境中有效地管理设备。此外,随着虚拟化技术的发展,虚拟机也需要有唯一的MAC地址来在网络中通信,因此了解MAC地址的分配和构造也变得更加重要。
1.3 混杂模式
-
默认情况下,网络接口只会监听目标MAC地址与其自身MAC地址匹配的数据帧。
-
处于混杂模式的接口会监听它们接收到的所有数据帧。
这些数据帧会被传递到协议栈上层,并由更高层次的功能进行处理。 -
应用场景:
允许物理主机接收其托管虚拟机(VM)的数据帧。
混杂模式定义:
在计算机网络中,混杂模式(通常简称为“promisc模式”或“promisc.模式”)是一种有线网络接口控制器(NIC)或无线网络接口控制器(WNIC)的工作模式。在这种模式下,控制器会将其接收到的所有流量传递给中央处理器(CPU),而不仅仅是传递控制器预期接收的帧。这种模式通常用于路由器或连接到集线器(而不是交换机)的计算机,或作为无线局域网(WLAN)一部分的计算机上的数据包嗅探。软件桥接(常用于硬件虚拟化)通常会将接口置于混杂模式。
这很重要,因为在处理如桥接和虚拟化等主题时,了解网络接口如何进入混杂模式非常重要。混杂模式允许网络接口接收并处理所有网络流量,这在某些高级网络功能中非常有用,如网络监控、数据包捕获和分析等。了解如何启用和管理混杂模式可以帮助网络管理员和工程师更有效地配置和管理网络,以及解决潜在的网络问题。
此外,随着虚拟化技术的普及,虚拟机(VM)和容器等虚拟化环境在网络中扮演着越来越重要的角色。在这些环境中,混杂模式可以用于确保虚拟机能够接收和处理其所需的网络流量,从而实现有效的网络通信。因此,对于涉及虚拟化技术的网络专业人员来说,了解混杂模式的工作原理和配置方法至关重要。
1.4 以太网帧大小
- 通常被称为MTU(最大传输单元)
- 仅指数据负载的大小(不包括头部和尾部)
- 默认大小:1500字节
- 巨型帧大小:最大可达9000字节
MTU(Maximum Transmitable Unit)是描述网络协议中能够传输的最大数据包大小的一个术语。在以太网中,MTU通常指的是数据负载的最大大小,而不包括数据包头部和尾部的额外字节。
默认的以太网帧大小(包括头部、数据负载和尾部)通常为1518字节,但数据负载部分(即MTU)通常为1500字节。这是因为以太网帧的头部和尾部通常占用固定的字节数(如14字节的头部和4字节的尾部CRC校验),而数据负载部分则是可变的。
巨型帧(Jumbo Frame)是一种特殊类型的以太网帧,其大小超过了标准的1500字节MTU限制。巨型帧的最大大小可以因不同的网络设备和配置而异,但通常可以达到9000字节或更大。使用巨型帧可以在需要传输大量数据的应用程序中提高网络性能,但也需要确保网络设备支持巨型帧,并正确配置网络以使用它们。
1.5 巨型帧
- 帧大小为1501-9000字节
- 由于减少了数据分割,提高了吞吐量
- 可能会略微增加延迟
- 在私有网络中表现良好,但在互联网上则不然
- 为什么是大约9000字节?
‒设计为与以4096字节为单位进行的操作(如块传输、内存页等)更好地协同工作
‒4096*2=8192,8192字节加上各种头部信息,大约等于9000字节
巨型帧在根据您的网络流量类型调整网络性能时可能非常有用。要使用巨型帧,您的网络设备(如交换机和网络卡驱动程序)必须支持它。并非所有网络设备都支持相同大小的巨型帧。但这通常不是问题,因为最终会使用网络中硬件支持的最大通用值。有一个协议(此处原文未具体说明哪个协议,但可理解为相关配置或通信协议)需要整个网络都支持巨型帧,才能享受其带来的好处。因此,您通常会在企业内部网(而非互联网)中看到巨型帧的使用。有些互联网服务提供商允许您在他们出租的用于连接您不同站点的电路上配置巨型帧。虽然巨型帧可以显著提高某些网络工作负载(如存储数据传输)的吞吐量,但它们也可能增加网络的延迟。因此,它们并不是解决所有问题的“万灵药”。在使用巨型帧进行生产之前,您应该评估您的网络需求并测试您的工作负载。
为什么这很重要?
在基于网络的使用方式和在其上运行的服务来构建和调整网络以获得更好性能时,了解巨型帧非常重要。例如,主要用于存储导向流量的网络可能会从巨型帧中受益。
2、理解桥接的概念
2.1桥接/交换
-
桥接器连接不同的2层段
-
通过将段划分为冲突域来减少冲突
-
桥接器有三种类型:
-
简单桥接器
仅转发必要的帧和广播 -
多端口桥接器
连接多个段(也称为网络交换机)
可以使用协议来提高转发的效率(如STP、SPB等) -
学习/透明桥接器
学习MAC地址位于哪一侧,并据此仅转发相应的流量
可以作为多端口桥接器(交换机)的一部分工作
-
解释:
桥接器是一种网络设备,用于连接不同的网络段,使它们能够相互通信。在第2层(数据链路层)中,桥接器通过检查帧的MAC地址来决定是否将其转发到另一个段。
简单桥接器只转发必要的帧和广播,而不进行任何智能处理。多端口桥接器(也称为网络交换机)能够连接多个段,并使用各种协议来提高转发的效率。这些协议包括生成树协议(STP)、最短路径桥接(SPB)等,它们有助于避免网络中的环路和广播风暴。
学习/透明桥接器是一种更智能的桥接器,它能够学习MAC地址与段之间的对应关系,并根据这些信息来仅转发必要的流量。这种桥接器可以作为多端口桥接器(交换机)的一部分工作,以提高网络的性能和可靠性。
2.2 流量控制与负载分配
-
节点之间的通信可以被分组为一系列的数据包,这些数据包被称为流
-
当端点之间存在多个链路时,流量可以在这些链路之间进行平衡
-
与流量控制相关的协议包括:
‒ IEEE 802.1aq - 最短路径桥接(SPB)
‒ 等价多路径(ECMP)
当你的网络设备之间存在多个链路或多个路径时,一个有趣的问题是:如何在这些链路/路径之间平衡网络流量以获得最佳性能。早期的交换机更关注于避免诸如桥接环路之类的问题,而不是优化流量性能。随着交换机结构的复杂化以及链路绑定的普及,需要采取新的方法。这催生了诸如等价多路径(ECMP)和最短路径桥接(SPB)等新的交换协议。这些协议不仅解决了避免桥接环路等问题,还通过尝试在所有路径上分布流量来优化流量。
为什么这很重要?
在优化网络时,了解流量控制是很重要的。同样,在处理其他更高级的概念(如多路复用和隧道技术)以及诸如VLAN、GRE和VXLAN等协议时,了解流量控制也很重要。
3、使用桥接
3.1ip命令
- ip link add br-1 type bridge 添加一个名字叫br-1的桥
- ip link show type bridge 查看并列出已有的桥
- ip link set dev eth4 master br-1 将网络接口eth4链接到桥br-1
- ip link set dev eth4 nomaster 将网络接口eth4与桥设备断开
- ip link delete br-1 删除桥br-1
3.2 bridge命令
- bridge link 桥端口管理
- bridge fdb 转发链库管理
- bridge mdb 多播库管理
- bridge vlan vlan管理
- bridge monitor 桥监控
- 示例
4、理解veth接口对概念
4.1虚拟以太网对
Veth Pair(虚拟以太网对)
- 一对相连的虚拟网络设备
- 起到虚拟以太网线缆的作用
- 可以为这对设备的任一端或两端分配地址
- 这对设备的每一端都可以位于不同的网络命名空间中
Veth pairs同样在第二层(数据链路层)工作。它们本质上是一条虚拟的网络线缆,因为从一个成员传输出的任何数据都会被另一个成员接收。它们通常用于连接不同的虚拟网桥。
为什么这很重要呢?
Veth pairs在虚拟化网络和软件交换机(如Open vSwitch)中被频繁使用。理解它们的功能以及为什么被使用,对于理解这些环境是如何相互连接的以及在故障排查时至关重要。
在虚拟化环境中,Veth pairs是实现不同虚拟机(VM)或容器(container)之间网络通信的关键组件。它们允许数据包在不同的网络命名空间之间传递,这些命名空间可能属于不同的虚拟机、容器或主机。通过配置Veth pairs,可以创建复杂的网络拓扑,实现虚拟机或容器之间的隔离、通信和负载均衡等功能。
此外,在软件交换机如Open vSwitch中,Veth pairs也扮演着重要角色。它们被用作交换机内部网络接口与外部网络接口之间的桥梁,实现数据包的转发和路由。通过编程控制Veth pairs,可以灵活地配置和管理网络流量,提高网络的性能和可靠性。
因此,了解Veth pairs的工作原理和使用场景,对于在虚拟化网络和软件交换机环境中进行网络设计、配置和故障排查具有重要意义。
5、使用veth接口对
5.1 ip命令
- ip link add dev veth-name type veth peer name veth-name-peer 添加一个veth对。
- ip link show type veth 列出所有的veth对。
- ip link delete veth-name 删除一个veth对。
veth设备都是成对出现的,如果第一次添加veth对时,系统会自动添加veth0与之配对。如果第一次添加veth对名字使用veth0将不能添加成功,可以使用veth1开始创建veth对。如果使用veth作为veth对名称,那么正确的使用添加顺序为:
veth1,veth3,veth5等依此类推,如果不使用veth作为veth对名称,那么系统分配的与之对应的veth对名称依次为:veth0,veth1,veth2,veth3等依此类推。
例如:
完整用法:
6、理解vlan概念
- 允许在单个Layer 2(第二层)链路内复用多个Layer 2数据流量。
- IEEE 802.1Q在以太网帧头中定义了额外的字节,以指定(标记)该帧所属的VLAN(虚拟局域网)。
- 802.1Q使用12位寻址,因此可以产生4096个可能的VLAN。
- IEEE 802.1ad扩展了802.1Q的功能,允许堆叠多个802.1Q头(即VLAN中的VLAN)。
- 标记可以在交换机端口或主机接口处添加。
- 即交换机端口标记与基于主机的标记。
虚拟局域网(VLAN)是在计算机网络的数据链路层(OSI第二层)上划分和隔离的任何广播域。VLAN可以通过形成多个广播域来减少网络流量,从而将大型网络分割成较小的独立段,减少向整个网络上每个设备发送的广播数量。VLAN允许网络管理员将主机分组在一起,即使这些主机不在同一个网络交换机上。这可以极大地简化网络设计和部署,因为VLAN成员资格可以通过软件进行配置。
VLAN配置可以在硬件或软件中进行。较简单的设备只能按物理端口进行划分,这意味着每个VLAN都通过专用的网络电缆连接。更复杂的设备可以通过VLAN标记来标记帧,以便使用单个互联(中继)来传输多个VLAN的数据。
VLAN用于在LAN配置中提供传统上仅由路由器提供的网络分段服务。VLAN解决了可扩展性、安全性和网络管理等问题。在VLAN拓扑中,路由器可以过滤广播流量、增强网络安全、执行地址汇总以及缓解网络拥塞。交换机可能不会在VLAN之间桥接网络流量,因为这样做会违反VLAN广播域的完整性。
VLAN是数据链路层(OSI第二层)结构,类似于IP子网(网络层,OSI第三层)结构。VLAN还可以帮助在单个物理基础设施上创建多个第三层网络。在采用VLAN的环境中,VLAN和IP子网之间通常存在一对一的关系,尽管一个VLAN上也可能存在多个子网。通过使用VLAN,网络可以轻松地分割,使得一些主机可以使用DHCP服务器在一个子网上获得地址,而其他主机可以获得链路本地地址,或者从另一个子网上的不同DHCP服务器获得地址,但所有主机都共享相同的物理介质。
在传统网络中,用户根据地理位置被分配到网络,并受到物理拓扑和距离的限制。VLAN可以逻辑地分组网络,将用户的网络位置与其物理位置分离。通过使用VLAN,可以控制流量模式并快速响应位置变动。VLAN提供了适应网络需求变化的灵活性,并简化了管理。
在云环境中,VLAN既可以用于创建底层基础设施网络,也可以用于创建云消费者使用的私有云网络。
802.1ad标准通过允许一种称为提供商桥接、堆叠VLAN或Q-in-Q的技术来扩展802.1Q。这使得可以在以太网帧中添加多个VLAN标签(称为“标签堆栈”)。这种技术允许网络提供商的客户在提供商分配给他们的VLAN内运行自己的VLAN。客户可以将此提供商分配的VLAN视为中继。
在802.1ad帧中,随着额外的标签被添加到帧中,额外的4字节(32位)802.1Q头会立即插入到以太网帧中原始4字节802.1Q头之前(位于源MAC地址和原始802.1Q头之间)。最内部的标签(即最接近有效载荷的标签)是客户标签,而外部标签(即最接近源MAC地址的标签)是服务(或服务提供商)标签。
- vlan术语
- vlan:虚拟第二层段,通过标签标识,并复用在另一个第二层段内部。
- tag:以太网802.1Q标签中的VLAN ID,用于指定帧所属的VLAN
- trunk:underlay二层段,用于复用多个VLAN
- vlan优缺点
- 优点:
- 在硬件和软件中均得到广泛支持
- 存在已久
- 普遍被理解
- 配置和管理简便
- 几乎没有额外开销(或:几乎不增加负担)
- 缺点:
- 有限的VLAN数量(少于4096个)
- 未针对ECMP进行优化
- 优点:
7、使用vlan
- ip link add link iface name vlan-name type vlan id id-number 添加一个vlan并接入一个网卡。
- ip link show type vlan 列出所有的vlan
- ip link delete vlan-name 删除一个vlan
- 例如:
8、网卡,网桥和veth对关系预览
https://www.bilibili.com/opus/662927540757725188
二、网络命名空间(namespace)
1、理解网络命名空间
- 内核中网络栈的独立、隔离副本
- 每个副本都有自己的:
- 路由
- 设备
- 防火墙规则
- 相同的IP子网可以同时存在于多个命名空间中,并且彼此隔离
- 分配给某个命名空间的进程只能看到该命名空间的网络栈
网络命名空间是Linux内核中的一个功能,类似于Linux控制组(cgroups),但用于隔离而非测量或限制资源的使用。简而言之,网络命名空间是在同一个Linux内核上运行的多个自主、隔离的网络栈。每个网络栈都完全独立于其他任何网络栈。这些栈可以通过桥接到物理网络接口来访问物理网络。
进程可以在网络命名空间的上下文中启动或移动进去,并且这些进程只能看到该命名空间中存在的网络组件。
-
网络命名空间使用案例
- 用于OpenStack Neutron的软件定义网络(SDN)
- 命名空间映射到OpenStack中的一个网络
- 用于容器网络‒每个容器在其自己的网络命名空间中运行
- 用于OpenStack Neutron的软件定义网络(SDN)
-
默认网络命名空间
如果没有创建任何命名空间,所有进程都会看到相同的网络配置。这就是根网络命名空间。 -
多网络命名空间
由于命名空间的网络栈是相互隔离的,因此在一个命名空间中运行的进程无法与另一个命名空间或外部世界中的进程进行通信。为了让不同命名空间中的进程相互通信,它们需要使用诸如虚拟以太网(veth)对或虚拟局域网(VLAN)等接口进行连接。为了让进程与外部世界通信,必须创建一个虚拟以太网对,其中一个端点在命名空间中,另一个端点在默认(根)命名空间中。在默认命名空间中,必须启用IP转发功能,以便允许数据包路由。
2、使用网络命名空间
- ip netns add Namespace-name 添加一个网络命名空间
- ip netns delete Namespace-name 移除一个网络命令空间
- ip netns list 列出所有的网络命名空间
- ip netns exec Namespace-name CMD 在一个网络命名空间中运行一个应用
三、ipv6
1、理解IPV6概念
1.1、IPv6理论
1.1.1、IPV6特性
IPv6通过以下特性解决了IPv4的缺点:
- 增大的地址空间
在IPv4中,IP地址长度为32位,这允许最多约40亿个地址。而在IPv6中,IP地址长度为128位,这允许一个非常大的地址数量:
340,282,366,920,938,463,463,374,607,431,768,211,456(或3.4×10^38,在美国计数体系中为340万亿亿亿)。
为了让你对这个数字有个概念,从理论上讲,它允许地球表面每平方米约有650×10^21个地址。从实用角度来看,由于并非每个地址都会用于主机,因此地球表面每平方米上肯定剩余超过1500个地址。 - 路由能力的改进
- 简化的头部格式
- 服务质量(QoS)功能
- 认证和隐私功能
- 在更长的时间内灵活地从IPv4过渡到IPv6
1.1.2、IPV6地址
- IPv6地址由128个0和1组成
- 每四个十六进制数(代表16位)之后插入一个冒号:
IPv6地址由128个0和1组成,这对于人类来说非常不便。为了使其更容易处理,它们采用十六进制格式表示,其中四个位(一个“半字节”)由0-9和a-f(代表10-15)的数字或字符表示。为了提高可读性,在每四个十六进制值(代表16位)之后插入一个冒号。
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff - 一个可能的地址如下所示:
fe80:0000:0000:0000:0211:11ff:fec2:35f4
- 每四个十六进制数(代表16位)之后插入一个冒号:
- 每个块中的前导零可以省略,并且一连串仅包含零的16位块可以用“::”代替。
- 上面可能的地址可以写成如下形式:
fe80::211:11ff:fec2:35f4 - 另一个例子是本地主机地址:
0000:0000:0000:0000:0000:0000:0000:0001 - 这可以简化为:
::1
1.1.3、IPV6地址类型
- IPv6地址可以使用子网掩码拆分为网络部分和主机部分。
- 其表示方法与IPv4中使用的CIDR表示法类似:
fe80::211:11ff:fec2:35f4/64 - 对应的网络地址是:
fe80:0000:0000:0000:0000:0000:0000:0000 - 其子网掩码为:
ffff:ffff:ffff:ffff:0000:0000:0000:0000
- 其表示方法与IPv4中使用的CIDR表示法类似:
- 为了能够区分不同类型的IPv6地址,需要了解以下内容:
-
没有特定网络前缀的地址
- 本地地址
在IPv6中,与IPv4的127.0.0.1类似的回环接口地址是:
0000:0000:0000:0000:0000:0000:0000:0001 - 未指定地址
这是IPv6中相当于IPv4中0.0.0.0(或“任意”)的地址:
0000:0000:0000:0000:0000:0000:0000:0000
• 或者简写为:
::
• 这个地址例如会出现在netstat的输出中
- 本地地址
-
网络地址
网络地址用于区分以下类别:-
链路本地地址(Link Local Addresses)
链路本地地址仅在接口的链路上有效。携带链路本地地址的数据包不会通过路由器进行传输。它们通常以以下前缀开始(其中x是任何十六进制字符,但通常为“0”):
fe8x(这是目前唯一在使用的)
fe9x
feax
febx
在无状态自动配置后,每个支持IPv6的接口上都会找到这样的地址。它用于链路通信,例如,用于查找链路上是否有其他设备或定位路由器。 -
全球唯一本地IPv6单播地址(Globally Unique Local IPv6 Unicast Addresses,简称ULA)
这种地址类型以fdxx开头。
前缀的一部分(40位)是使用伪随机算法生成的。
在站点内,全局标识符(Global ID)后面跟着一个16位的子网标识符(Subnet ID),作为站点内的唯一标识。
这种地址类型以fdxx开头(它也可能以fcxx开头,但目前这个前缀并未使用)。这种地址类型不会在互联网上进行路由,类似于IPv4中的私有地址。如果前缀是本地分配的,则L被设置为1。
前缀的一部分(40位)是使用伪随机算法(在RFC 4193中描述)生成的。尽管存在两个生成的前缀相等的可能性,但这种可能性非常小。因此,连接之前独立的网络不太可能出现问题,因为它们的前缀将会是不同的。
全局标识符(Global ID)后面跟着一个16位的子网标识符(Subnet ID),作为站点内的唯一标识。上述插图来自RFC 4193,展示了全球唯一本地IPv6单播地址的不同部分。
注意:曾经存在一种站点本地地址类型,以fecx、fedx、feex或fefx开头。然而,根据RFC 3879,其使用已被弃用,并被上述地址类型所替代。 -
全球地址类型“全球单播”(Global Address Type “global unicast”)
- 分配给互联网服务提供商(ISP)的地址目前以2001:开头。
- 以下地址保留用于示例和文档,并应在互联网边界路由器上进行过滤:
3fff:ffff::/32
2001:0DB8::/32 - 在IPv6数据包中封装IPv4数据包的地址以2002:开头。
- 多播地址以ffXY开头,其中X是十六进制数字,Y表示范围。
- 根据地址的主机部分,可以区分不同的多播类型:
- 所有节点地址:1
该地址指向本地节点(ff01:0:0:0:0:0:0:1)或连接链路(ff02:0:0:0:0:0:0:1)上的所有主机。 - 所有路由器地址:2
该地址指向本地节点(ff01:0:0:0:0:0:0:2)、连接链路(ff02:0:0:0:0:0:0:2)或本地站点(ff05:0:0:0:0:0:0:2)上的所有路由器。
- 所有节点地址:1
-
-
主机地址
-
2、配置IPV6
2.1 IPV6的自动配置
IPv6的一个设计目标是使IP自动配置更容易。即使没有DHCP服务器,接口也可以获得有效的IP地址。
2.1.1 连接本地的自动配置
-
默认情况下,会为每个网络接口自动配置一个链接本地地址。
-
你可以使用ping6测试这个连接地址的链接。
当ping到链接本地地址时,需要选择-接口,因为每个接口都有一个链接本地地址,如果没有这个选项,内核将不知道使用哪个。
-
你可以通过将 ping6 发送到链接本地全节点组播地址来检测IPv6 活跃主机
与IPv4不同,在IPv4中,可以通过使用/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts文件来禁用对播地址的ping的回复,目前这种行为在IPv6中无法禁用,除非通过本地IPv6防火墙。
2.1.2 无状态自动分配
要获取具有全局范围的IPv6地址,步骤如下:
-
主机使用其链路本地地址向多播地址ff02::2发送请求消息,请求一个IPv6前缀。
-
路由器通过包含该网络地址前缀的广播消息来回复此请求消息。
-
主机使用这个前缀和它的MAC地址来创建一个IPv6地址。
-
使用重复地址检测(Duplicate Address Detection,简称DAD,遵循RFC 4862标准),主机会检查该地址是否已在网络中被使用。
-
如果地址未被使用,主机将地址分配给网络接口卡(NIC)并激活它。
-
现在,客户端可以使用IPv6地址与本地网络内的其他主机进行通信,并且根据网络拓扑结构,也可以与本地网络外的主机进行通信。
路由器仅分配网络前缀和默认路由信息。超出此范围的信息,如DNS或其他路由信息,需要手动添加到配置中或使用DHCP6进行分配。
2.1.3 使用命令管理IPV6地址
- 使用下面的命令添加一个ipv6地址:
#ip -6 addr add 2001:0DB8::1/64 dev eth0
- 使用下面的命令列出当前配置:
#ip address show
- 使用下面的命令仅显示ipv6的配置:
#ip -6 a s
- 使用下面的命令删除一个ipv6地址:
#ip -6 addr del 2001:0DB8::1/64 dev eth0
- ip命令可以用来查看,设置和删除路由。
- 使用下面的命令查看路由:
#ip -6 route show dev eth0