奇技淫巧之 dummy 网卡

云原生实验室

共 1776字,需浏览 4分钟

 ·

2020-12-12 18:02


更多奇技淫巧欢迎订阅博客:https://fuckcloudnative.io

在我们日常工作中,是否有这种需求,在断网的情况下,假装网络可以通,仍然可以通过类似 192.168.1.1 这样的 IP 访问服务 。除了我们经常使用本例换回口 127.0.0.1 以外,今天介绍一个神器:dummy 网卡。


?  → 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 通了

?  → ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

5: nodelocaldns:  mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 4a:d6:09:1a:97:6a brd ff:ff:ff:ff:ff:ff
    inet 169.254.20.10/32 scope global nodelocaldns
       valid_lft forever preferred_lft forever
    inet 10.96.0.10/32 scope global nodelocaldns
       valid_lft forever preferred_lft forever

?  → 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 地址不会因为物理接口的状态而受影响。

细心的同学可能发现了前面创建的网卡名称是 nodelocaldns ,没错就是 k8s 里面的 local dns 的网卡,k8s 的 local dns 正是使用了这种分布式的 IP 的能力实现的,每台机器上面都可以有这样一个本地的网卡。


原文链接:https://chenxy.blog.csdn.net/article/details/110938569



你可能还喜欢

点击下方图片即可阅读

一键支持 Kubernetes 抛弃 Docker 的渣男行为

云原生是一种信仰 ?



码关注公众号

后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!



点击 "阅读原文" 获取更好的阅读体验!

❤️给个「在看」,是对我最大的支持❤️
浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报