我的环回接口的 IPv4 和 IPv6 网络是同一网络吗?

我的环回接口的 IPv4 和 IPv6 网络是同一网络吗?

在输出中ifconfig

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1552397  bytes 88437726 (88.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1552397  bytes 88437726 (88.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

netmask 255.0.0.0表示网络是127.0.0.0/8,并且由许多IP地址组成

prefixlen 128表示该网络只有一个 IP 地址。 (https://networkengineering.stackexchange.com/a/57868/7894在我看来, prefixlen 指定了 IPv6 的网络掩码)

它们描述的是同一个网络吗?

网络是定义为一组 IP 地址(因此 IPv4 和 IPv6 地址之间的差异可能导致不同的网络),还是一组网络接口(因此 IPv4 和 IPv6 地址不会有区别,因为它们被分配给相同的网络)网络接口)?

答案1

这取决于您正在查看哪个抽象层。

如果我们查看 OSI 模型的 L3,环回接口的 IPv6 和 IPv4 端是完全独立的:两者之间没有路由功能(除非您明确设置)。有一个可选的(默认情况下启用,但每个套接字可切换)将整个 IPv4 地址空间映射到 IPv6 地址空间的子集,但您需要处于 L4 或更高级别才能使用它。

在实际的物理 NIC 上,我们还可以查看 L2 和物理层,并看到两个 L3 协议实际上共享相同的以太网介质和 MAC 地址,因此在 L2 意义上是“同一网络”。但环回接口没有 L2 层,更不用说物理层了。

从根本上讲,环回接口是从 IP(IPv4 或 IPv6)驱动程序堆栈的传出端到传入端的 L3 级别的快捷方式。当一个应用程序想要使用网络协议与另一个应用程序通信,并且两个应用程序恰好位于同一主机中时,环回接口允许更有效地路由它们之间的流量,而无需不必要地在整个网络深度来回传递。网络协议栈。

有时,应用程序希望仅在单个主机内或仅在特定物理 NIC 上允许某些流量:为此目的,将主机内部快捷方式设置为有用呈现为L3 网络接口,因此高层协议可以像任何其他网络接口一样使用它,而不需要实现特殊情况。

答案2

问:网络是定义为一组 IP 地址 (...),还是一组网络接口 (...)?

我的意见:

你不能真正定义一个网络IPv6地址。 “一组网络接口”的概念更有用。请参阅下面“链接”的定义。

“网络”的精确定义可能还没有得到足够广泛的认可。因此,它在您的问题中可能不是一个有用的术语。

这与使用不同IPv4。在 IPv4 世界中,“子网”一词更加常见和有用。

我的推理:

RFC 8200 首先进行介绍,然后11个关键术语的定义。它们不包括“网络”,但包括“链接”。

关联:节点可以在链路层(即紧邻 IPv6 的层)进行通信的通信设施或介质。例如以太网(简单或桥接); [...]

界面:节点到链接的附件。

所有接口共享完全相同的前缀对于链路本地单播地址:fe80::/10.不同链路上的不同主机可以使用相同的链路本地地址。在用户级别,您必须通过包含接口说明符来指定所需的链接。例如ping fe80::1234%lo 。

在许多情况下可以忽略链路本地地址。然而,它们是 IPv6 工作原理的重要组成部分:

当您通过 L2 以太网“交换机”(或多个交换机)运行标准 IPv6 局域网时,必须使用邻居发现数据包来解析可路由的单播地址。 ND 数据包使用链路本地地址发送。 [1]

笔记

  • ip link命令用于“网络设备配置”。换句话说,命令“ip关联“实际上是用来配置接口:-)。

  • 类似的“环回接口”lo是由操作系统设计的。 IPv6 标准规定::1 可能被分配给

    一个虚拟接口(通常称为“环回接口”),连接到一条没有任何路径的假想链路。

    它没有确切地告诉您这将如何在 Linux 中实现。我认为你可以问一些奇怪的问题,但答案并不能真正告诉你太多。

  • 很多时候您仍然可以不用考虑 IPv4 术语。但 IPv6 的采用正在增加。当您学习特定的 IPv4 功能时,最好至少尝试学习 IPv6 的等效项。实际上,您可能会看到一些用于 IPv4 的术语,以及一些用于 IPv6 的不同术语。您并不总是知道可以同时解释 IPv4 和 IPv6 的通用定义。

  • [1] 邻居发现实际上使用单播和多播链路本地地址。例如通常发送ND请求单播地址,多播地址。链路本地多播地址可能不像单播地址那么简单。它们是多播地址,其中“scop”部分设置为链接本地

相关内容