Linux 下 dummy 网络接口的作用
作者:互联网
dummy网卡 (dummy network interface)用于在断网的环境下,假装网络可以通,仍然可以通过类似 192.168.1.1 这样的IP 访问服务。因为断网环境下只有本地环回地址127.0.0.1能被内核解析,因此如果想要解析 192.168.1.1 这种IP,就要将其设置为 dummy类型。
比如我们这里为 169.254.20.10 和 10.96.0.10 创建dummy 类型的网卡 (这里对 IP 没有要求,可以不是私有 IP),使用如下命令:
$ ip link add nodelocaldns type dummy
$ ip addr add 169.254.20.10 dev nodelocaldns
$ ip addr add 10.96.0.10 dev nodelocaldns
结果如下图所示:
创建网卡后,就可以本地 ping 通了。
$ ping 169.254.20.10
PING 215.254.2.10 (215.254.2.10) 56(84) bytes of data.
64 bytes from 215.254.2.10: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 215.254.2.10: icmp_seq=2 ttl=64 time=0.058 ms
$ ping 10.96.0.10
PING 10.96.0.10 (10.96.0.10) 56(84) bytes of data.
64 bytes from 10.96.0.10: icmp_seq=1 ttl=64 time=0.016 ms
64 bytes from 10.96.0.10: icmp_seq=2 ttl=64 time=0.050 ms
dummy 接口的工作方式和 loopback 接口类似,但是你可以创建任意多的 dummy 接口。它提供路由数据包的功能,但实际上又不进行转发。dummy 接口主要有两个用途:
- 用于主机内的程序通信
- 由于 dummy 接口总是 up(除非显式将管理状态设置为 down),在拥有多个物理接口的网络上,可以将 service 地址设置为 loopback 接口或 dummy 接口的地址,这样 service 地址不会因为物理接口的状态而受影响。
例如,考虑笔记本电脑vlite,它目前一直与任何网络断开连接。vlite上的应用程序现在可能想要向同一主机上的另一个应用程序发送一些数据。在/etc/hosts中查找vlite会得到一个ip地址 191.72.1.65,因此应用程序尝试发送到这个地址。由于本地环回接口(127.0.0.1) 是当前机器上唯一活动的接口,内核不知道 191.72.1.65 这个地址实际上就是指 vlite 它自己! 因此,内核会丢弃这个数据包,并向应用程序返回一个错误。这就是 dummy 网卡可以介入的地方。它通过简单地充当另一个环回接口来解决这个困境。在vlite的情况下,只需给它一个地址191.72.1.65,并添加一个指向它的主机路由。然后,191.72.1.65的每个数据报将在本地传递。
dummy网卡 - 人艰不拆_zmc - 博客园 (cnblogs.com)
The Dummy Interface (tldp.org)
标签:dummy,10.96,bytes,接口,64,0.10,Linux,网络接口 来源: https://www.cnblogs.com/FengZeng666/p/15583434.html