【问题标题】:Netplan ipv6 "No route to host"Netplan ipv6“没有到主机的路由”
【发布时间】:2020-07-12 07:47:54
【问题描述】:

我显然错误地配置了我的 ipv6 侦听器地址。问题 1:我需要有人发现错误。还有一个额外的问题 2:删除下面的“/sbin/ip address add”命令是否有任何风险?

这是在 ubuntu 18.04 虚拟机上。

这是一个curl命令,显示ipv6路由设置不正确:

curl -vvv -L "http://[2600:1303:d000:1::17c3:4571]"
*   Trying 2600:1303:d000:1::17c3:4571...
* TCP_NODELAY set
* Immediate connect fail for 2600:1303:d000:1::17c3:4571: No route to host
* Closing connection 0
curl: (7) Couldn't connect to server

以前,程序启动时,会发出原生的“/sbin/ip address add”。事实证明这是有问题的,因为当网络接口被重置时,路由会丢失。

所以,我添加了 /etc/netplan,因为配置 ipv6 路由在网络重启后仍然有效。但是,我没有在启动时删除“ip addr add”。目前,有两个命令用于设置路由:netplan 和“/sbin/ip address add”。以下是执行命令的顺序:

1.  Manual one-time command of "/etc/netplan apply" which didn't return any errors.  

2.  "ip addr add" every time the server starts.  So, at least once since the manual netplan command.

这是它正在侦听的 ipv6 地址:

netstat -anp | grep redir | grep LISTEN
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service

这是我希望它监听的内容: [2600:1303:c000:1::15d4:456f]:80" [2600:1303:d000:1::17c3:4570]:80" [2600:1303:d000:1::17c3:4571]:80" [2600:1303:d000:1::17c3:4572]:80"

这里是“ip address add”命令。请注意,我使用的是“/24”,我想知道这是否是问题所在。或者可能同时使用“ip addr add”和 netplan 没有按预期工作。这是一个遗留应用程序,因为我在这方面的网络技能不强,我不确定删除“ip addr add”是否安全。我不认为保留“ip addr add”命令会受到伤害,但也许我错了。

out, e = exec.Command("/sbin/ip", "-6", "addr", "add", ip + "/24", "dev", "eth0").CombinedOutput()

这是我的 netplan 配置文件。请注意,这只是文件的一部分;出于安全原因,我不包括 mac 地址、名称服务器或网关。但是,它们是正确的,因为我的 ipv4 地址有效。另外,出于安全原因,我也没有发布真正的 ipv6 地址。

root@ubuntu:~# cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
            addresses: [ '2600:1303:d000:1::17c3:456e/24', '2600:1303:d000:1::17c3:4570/24', '2600:1303:d000:1::17c3:4572/24', '2600:1303:d000:1::17c3:4571/24', '2600:1303:d000:1::17c3:456f/24' ]

在此先感谢 ;)

【问题讨论】:

    标签: linux networking ip ipv6 netplan


    【解决方案1】:

    有几个问题:

    1. 没有网关6。
    2. 位掩码应该是“/64”而不是“/24”

    Netplan 不会删除旧路由。我必须执行以下步骤:

    1.  ip -6 addr del 2600:1303:d000:1::17c3:456f/24 dev eth0
    2.  netplan apply
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 2019-03-08
      • 2017-08-03
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      相关资源
      最近更新 更多