我正在尝试创建一个隧道何网在我的(云)服务器上获取 IPv6 地址。
当我创建隧道并将其放入时/etc/network/interfaces
:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address <my IPv6 address>
netmask 64
endpoint 66.220.7.82
local <my IPv4 address>
ttl 255
gateway <my gateway>
然后ifup he-ipv6
,我得到:
error: /etc/network/interfaces: line5: iface he-ipv6: unsupported address method 'v4tunnel'
我怎样才能解决这个问题?
操作系统是Ubuntu 18.04.3
。
(我尝试搜索此错误,但似乎没人遇到过。但我尝试在不同提供商的两台独立机器上搜索过,结果相同。)
更新:添加图片以了解详情:
更新2:添加netplan的图片:
结论:问题是由于ifupdown2
。
答案1
下拉相对ifupdown2
从您的错误信息来看,您正在使用包ifupdown2而不是下拉两者都可以在 Ubuntu 上使用,但在线手册页只显示一个版本,我猜是默认安装的,这可以解释为什么你最终使用ifupdown2。
Ubuntu 16.04 LTS:接口(5)
由以下机构提供:ifupdown_0.8.10ubuntu1_amd64
[...]作者
ifupdown 套件由 Anthony Towns 编写 <[电子邮件保护]>。Ubuntu 18.04 LTS:接口(5)
提供者:ifupdown2_1.0~git20170314-1_all
[...]作者
Roopa Prabhu <[电子邮件保护]>
尽管ifupdown2是替代下拉 由 Cumulus Networks 开发,改进了对现代网络功能的支持,存在一些语法不兼容问题。
因此要么安装下拉代替ifupdown2,或者调整下面我给出的配置。
什么隧道?
原本的下拉提供v4tunnel 方法:
v4tunnel 方法
此方法可用于设置 IPv6-over-IPv4 隧道。它需要 iproute 包中的 ip 命令。
这下拉设置运行这些实际命令:
ip tunnel add he-ipv6 mode sit remote 66.220.7.82 local <my IPv4 address> ttl 255
ip link set he-ipv6 up
ip addr add <my IPv6 address> dev he-ipv6
ip route add <my gateway> dev he-ipv6
ip route add ::/0 via <my gateway> dev he-ipv6 onlink
所以我们知道这是一个坐隧道。
使用ifupdown2
包裹ifupdown2,没有提供v4tunnel
方法,并且缺少替换方法的文档,而替换tunnel
方法应该在man ifupdown-addons-interfaces
但不是。它仍然可以从 获得ifquery --syntax-help
。以下是摘录(来自 Ubuntu 18.04 版本):
tunnel: create/configure GRE/IPIP/SIT tunnel interfaces [...] endpoint help: IP of remote tunnel endpoint required: True validvals: <ipv4>,<ipv6> example: endpoint 192.2.0.23 local help: IP of local tunnel endpoint required: True validvals: <ipv4>,<ipv6> example: local 192.2.0.42 mode help: type of tunnel as in 'ip link' command. required: True validvals: greipip,sit example: mode gre ttl help: TTL for tunnel packets required: False validvals: <number> example: ttl 64
请注意,有一个拼写错误模式值(应该是gre,ipip,sit
)。较新的版本将处理更多模式(无论如何我们已经有sit
可用的模式):
validvals: gre,gretap,ipip,sit,vti,ip6gre,ipip6,ip6ip6,vti6
这给出了以下工作配置:
auto he-ipv6
iface he-ipv6 inet6 tunnel
mode sit
address <my IPv6 address>
netmask 64
endpoint 66.220.7.82
local <my IPv4 address>
ttl 255
gateway <my gateway>
不同之处在于通用tunnel
方法以及您使用关键字指定隧道的类型mode
。