无法在 Ubuntu 18.04 上使用 Netplan 添加静态 IP

无法在 Ubuntu 18.04 上使用 Netplan 添加静态 IP

所以我遇到了以下问题。有一台专用的 Ubuntu 18.04 主机,应该为其分配一个静态 IP 地址。有两个接口,eth0 和 eth1。

eth0 通过 DHCP 从主机获取其地址。从同一主机,我们获得了另一个静态 IP 地址,我们应该在服务器上配置它。因此,netplan 配置如下所示:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
    eth1:
      dhcp4: no
      dhcp6: no
        addresses: [$STATIC_IP/32]
      nameservers:
        addresses: [8.8.4.4,8.8.8.8]

当我netplan applyip a节目

37: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP 
group default qlen 1000
link/ether ac:1f:6b:85:51:86 brd ff:ff:ff:ff:ff:ff
inet $DHCP_IP/32 scope global dynamic eth0
   valid_lft 85932sec preferred_lft 85932sec
inet6 fe80::ae1f:6bff:fe85:5186/64 scope link 
   valid_lft forever preferred_lft forever

65: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state 
DOWN group default qlen 1000
link/ether ac:1f:6b:85:51:87 brd ff:ff:ff:ff:ff:ff

因此 eth1 似乎根本没有配置。

Syslog 说:systemd-networkd[27425]: eth1: IPv6 successfully enabled

networkd-dispatcher[10223]: WARNING:Unknown index 66 seen, reloading interface list

我搜索了那个警告,但没有找到任何可以帮助我的东西。

这是问题的第一部分,因为我可以用 分配一个地址ip addr add $STATIC_IP dev eth1。接口仍然显示为 DOWN,但我可以从外部 ping 它:

65: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state 
DOWN group default qlen 1000
link/ether ac:1f:6b:85:51:87 brd ff:ff:ff:ff:ff:ff
inet $STATIC_IP/32 scope global eth1
   valid_lft forever preferred_lft forever

到目前为止,一切都很好。

当我尝试设置路由时,此接口被使用,随后显示为发送方 IP,我得到以下信息。请注意,我不确定网关地址,但我可以 ping 它:

$ ip addr add default via $STATIC_IP_GATEWAY table staticip

结果是Error: Nexthop has invalid gateway.

我尝试了各种其他组合,但此时,我感到很困惑,不知道这是我的能力不足还是主机提供商的能力不足。

简而言之:我得到了一个静态 IP,并想将其用作接口,以便当我从该服务器联系某些东西时,该静态 IP 显示为原始地址。

我遗漏了什么?通常是怎么做的?

提前致谢,我很乐意根据需要提供更多信息。

答案1

最后我终于搞定了,配置一个接口有两个 IP 地址:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
      addresses: [$STATIC_IP/32]

然后添加一个 iproute 表:

echo "mytable >> /etc/iproute2/rt_tables

添加规则:

ip rule add from all lookup mytable

向表中添加一条路线:

ip route add default via $DHCP_GATEWAY src $STATIC_IP table mytable

也许有人会发现它很有用。

相关内容