为 Linux 增加 dummy 接口并设定 IP 地址

前言

iEdon-Net 高度依赖 OSPF, BGP 等动态技术。目前,我有 3 台不同地域的设备,分别被分配有 3 个不同的固定 IP 地址。此前,我使用了固定的隧道建立了连接,并使用了近 2 年。然而,随着时间的推移,我发现:当某个其他地域的设备与这 3 个不同地域的设备的隧道中断后,通往这 3 台设备的路由表条目没有发生变动,这意味着访问将直接受阻。

为什么

我为隧道接口设置了固定的 IP 地址,而这些隧道是一直保活的(即便下层网络连接已经发生了中断故障),OSPF 等协议将继续在内网广播这个接口的 IP 地址,内网设备依然认为该走原来的路由表送出数据。

因此,我想改进原有方案:将隧道两端的地址设置成与组网无关的其他私有 IP 地址,并在这 3 个地域的设备上配置一个虚拟的接口(dummy),并设置好 IP 地址。这样,在网络接口可访问性发生变化时,OSPF 将能正确传播路由变化并快速在内网收敛。

操作

在 4.4.0 左右(未考证, 我在自己的 4.19 内核中可以正常使用)及更新版本的内核,可以直接使用一个命令创建 dummy 接口,而不用手动加载 dummy 内核模块,我已经亲自测试成功。

注:我也在内核版本为 3.10.0-1160.11.1.el7.x86_64 的 CentOS 7 中测试通过,一样可用。

At least with the kernel 4.4.0, additional dummy interfaces can be added with ip link add dumdum type dummy. – Feuermurmel

/sbin/ip link del dev <dummy-interface>
/sbin/ip link add dev <dummy-interface> type dummy
/sbin/ip addr add <IPv6>/128 dev <dummy-interface>
/sbin/ip addr add <IPv4>/32 dev <dummy-interface>
/sbin/ip link set <dummy-interface> up

使用上述命令可以正确删除旧接口,设置新 dummy 接口并配置 IP 地址。写入到开机脚本,或者配置 systemd 即可实现开机自动创建 dummy 接口。

参考

1.  How can we create multiple dummy interfaces on Linux?https://unix.stackexchange.com/questions/335284/how-can-we-create-multiple-dummy-interfaces-on-linux

2. Creating dummy interfaces on Linuxhttps://ixnfo.com/en/creating-dummy-interfaces-on-linux.html

CC-BY-NC-SA ー  無断転載はご遠慮下さい
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇