在现有子网上创建新子网

Ric*_*mon 1 networking debian iproute2

我有三台服务器,目前有 ips 192.168.1.1、192.168.1.2 和 192.168.1.3。他们可以看到对方并互相交谈。我想在 192.168.1.x 之上创建第二个子网,即 10.170.xx

我可以为三台服务器 10.170.0.1、10.170.0.2 和 10.170.0.3 中的每台分配 ips,使用ip addr add 10.170.0.1 dev eth0. 我遇到的问题是如何进行路由。我无法通过 10.170.xx 网络 ping 任何服务器。我相信我需要创建一些点对点桥梁,但我不知道如何开始。有任何想法吗?

Mic*_*ton 12

正如其他人所指出的,当您使用ip address add但不提供网络掩码或 CIDR 范围时,/32是假定的,因此不会为子网创建路由。

要解决此问题,您还需要添加 CIDR 范围:

ip addr add 10.170.0.1/16 dev eth0
Run Code Online (Sandbox Code Playgroud)

要使更改持久化,请将其添加到/etc/network/interfaces. 这可以通过post-up命令以廉价和肮脏的方式完成,但正确的方法是添加仅包含该地址的第二节:

auto eth0
iface eth0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    gateway 192.168.1.250

iface eth0 inet static
    address 10.170.0.1
    netmask 255.255.0.0
Run Code Online (Sandbox Code Playgroud)

请特别注意的是,尽管你会过时的互联网指南读什么,你应该使用eth0:0第二个IP地址。这种形式已被弃用并且已经存在多年(这意味着它可能随时从 Linux 中删除)。