我目前正在 Docker 中运行 Ubuntu 16.04,需要摆脱(或调整)/sys/class/net/ip6tnl0 和 /sys/class/net/tunl0。
原因是我需要安装当这些接口存在时会崩溃的软件。确切的原因是这两个接口的 MAC 地址很奇怪,长度不寻常:
root@5b573f1125d0:/# cat /sys/class/net/tunl0/address
00:00:00:00
root@5b573f1125d0:/# cat /sys/class/net/ip6tnl0/address
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
我的问题:
- 我怎样才能删除这些接口?
- 如果我无法删除它们,我该如何为它们提供 6 个字节长的 MAC 地址?
有趣的后续问题: - 删除它们意味着什么? - 它们为什么在那里? 它们不在我的 AWS 实例上...
PS 我在基本的 Ubuntu 16.04 docker 镜像上安装的唯一软件包是:
OpenSSH 服务器
网络时间协议 (NTP)
分区
sqlite3
libpython2.7
libfreetype6
libxml-安全-c17v5
python-minimal
网络工具
vim
附言:
我尝试编辑 HWaddr,但没有成功:
root@5b573f1125d0:/# ip link set dev ip6tnl0 address 00:00:00:00:00:00
RTNETLINK answers: Operation not permitted
root@5b573f1125d0:/# ip link set dev tunl0 address 00:00:00:00:00:00
RTNETLINK answers: Operation not permitted
编辑2:我将NET_ADMIN功能添加到我的Docker容器中,但现在我收到的是“无效参数”错误,而不是“操作不允许”。
接口定义如下:
root@5b573f1125d0:/# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:11
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5764 errors:0 dropped:0 overruns:0 frame:0
TX packets:2041 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8183379 (8.1 MB) TX bytes:111303 (111.3 KB)
ip6tnl0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
NOARP MTU:1452 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tunl0 Link encap:IPIP Tunnel HWaddr
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
编辑 0:我发现这两个接口仅在我在 Windows 主机上运行 Docker 容器时才会出现。在 Ubuntu 主机上,我只有 lo 和 eth0 接口(如预期的那样)。
知道为什么吗?