为每个 NIC 分配一个 IP 范围或子网

为每个 NIC 分配一个 IP 范围或子网

我有一台带有至少两个网络接口控制器(NIC)的 manjaro linux 服务器,并且想将发往特定 IP 地址范围或子网的所有流量路由到一个,其他所有流量路由到其他一个。

到目前为止,我已经通过配置了网络nmcli,但我对这个主题的掌握还不够深入。

理想情况下,解决方案可以通过命令行工作,具有持久性,并且不严重依赖所使用的分布。

编辑:按照使用 nmcli / Centos 7 路由 IP 流量类似于

nmcli connection modify "Wired connection 1" +ipv4.routes "10.0.0.0/16"

应该可以工作,但是包裹似乎没有通过正确的网络进行路由。

答案1

关于此答案的一般预先信息

我认为我的答案一般是基于我对 Debian 系统的知识,但是在这一部分,我跳过了网络管理器部分,因为我无论如何都不会使用它,而且在我个人看来,这只会使它变得复杂。

您问过,并且在评论中似乎几乎清楚,您想将 10.0.0.0/16 路由到另一张网卡。

您提供了“有线连接 1”+ipv4.routes“10.0.0.0/16”

ip address-- 哪个设备名称应该是正确的,可以通过或找到ifconfig -- 通常你不确定,拔下卡电缆并查看dmesg或 /var/log/syslog

因此在我的示例中,假设以下内容:

  • “有线连接 1” = eth0
  • “10.0.0.0/16”或 10.0.0.0/255.255.0.0(或 10.0.0.0-10.0.255.255)应路由到 eth0

测试或预设的简便方法,不持久:

ip route add 10.0.0.0/16 dev eth0

目前棘手的部分是让它持久。

在基于 RHEL/CentOS/Fedora/Scientific 的系统上,

  • 编辑 /etc/sysconfig/network-scripts/route-eth0

在此处添加

 10.0.0.0/16 via 10.0.0.1

其中第一个是您要匹配的网络,第二个是路由器的 IP。在我的示例中,为 10.0.0.1

使用 Debian 方式。(Debian 基础系统,如 Ubuntu)

在某些系统上,/etc/network/interfaces 可能看起来是空的。在这种情况下,您必须查看 vi /etc/network/interfaces.d,但我们假设使用基本的 /etc/network/interfaces 文件。

  • 编辑 /etc/network/interfaces

查找你的接口 eth0

iface eth0 inet static
        address  10.0.0.2
        netmask  255.0.0.0

修改,使其看起来像

iface eth0 inet static
        address  10.0.0.2
        netmask  255.0.0.0
###EITHER with Gateway
#post-up route add -net 10.0.0.0 netmask 255.255.0.0 gw 10.0.0.1 dev eth0
#post-down route del -net 10.0.0.0 netmask 255.255.0.0 gw 10.0.0.1 dev eth0

###or without Gateway
#post-up route add -net 10.0.0.0 netmask 255.255.0.0 dev eth0
#post-down route del -net 10.0.0.0 netmask 255.255.0.0 dev eth0

通用静态方式(在启用 Systemd 的系统上可能已过时)

编辑 /etc/rc.d/rc.local 或 /etc/rc.local

添加

  • ip route add 10.0.0.0/16 dev eth0

这个答案是为了总体解决这个问题。

相关内容