向接口添加额外的 ipv4 地址

向接口添加额外的 ipv4 地址

在为接口分配多个 IPv4 地址时,我遇到了一个小问题。我按照以下步骤添加了 2 个 IPv4 地址:

  • 首先,我使用以下命令行添加了 2 个 IPv4 地址:

    #sudo ip address add  10.0.0.21/24 dev eth1
    #sudo ip address add  10.0.1.21/24 dev eth1
    

    为了检查结果,我输入了以下命令行:

    #ip address show eth0.
    
  • 其次,为了使这些配置永久生效,我 /etc/network/interfaces通过添加特定配置来编辑文件,现在它看起来像这样:

    auto eth1 
    iface eth1 inet static
           address 10.0.0.21
           netmask 255.255.255.0
           gateway 10.0.0.1
    
    auto eth1 
    iface eth1 inet static
           address 10.0.1.21
           netmask 255.255.255.0
           gateway 10.0.1.1
    
  • 最后,为了在不重启的情况下激活这些设置,我输入了以下命令
    ifdown/ifup

    #sudo ifdown eth1 && sudo ifup eth1.
    

第一个问题是当我使用 ifdown/ifup 命令时,我收到以下通知:

ifdown: interface eth1 not configured
RTNETLINK answers: File exists
Failed to bring up eth1.

而我更新了/etc/network/interfacesso,通常它可以识别界面。

第二个问题是当我重新启动机器时,所有设置都丢失了。谢谢

答案1

要在接口上添加辅助 IP,您必须创建子接口。

在你的情况下eth1:1

auto eth1 
iface eth1 inet static
       address 10.0.0.21
       netmask 255.255.255.0
       gateway 10.0.0.1

auto eth1:1 
iface eth1:1 inet static
       address 10.0.1.21
       netmask 255.255.255.0
       gateway 10.0.1.1
       metric 20

根据评论,我编辑了答案并向接口添加了度量eht1:1。这意味着网关将成为主要路由决策。如果您希望成为主要路由eth1,则可以向添加度量。eth1eth1:1

编辑2

我发现更多人有同样的问题,解决办法是:

auto eth1 
iface eth1 inet static
       address 10.0.0.21
       netmask 255.255.255.0
       gateway 10.0.0.1
       up ip addr add 10.0.1.21/24 dev eth1 label eth1:1
       down ip addr del 10.0.1.21/24 dev eth1 label eth1:1
       up ip route add 10.0.1.0/24 via 10.0.1.1 dev eth1:1 metric 20
       down ip route del 10.0.1.0/24 via 10.0.1.1 dev eth1:1 metric 20

相关内容