centos7上的路由设置

centos7上的路由设置

我是路由新手,但需要完成以下路由任务

我有 3 台机器,机器 A、B、C,每台机器上都有 CentOS7,selinux 已禁用,防火墙未安装

  • 机器 A有 3 个网卡,

    1. 连接到互联网 IP 147.xx67/21(接口 eno16777736)
    2. 连接到 192.168.0.0/24 (IP 192.168.0.3) (接口 eno50332208)
    3. 连接到 10.0.0.0/24 (IP 10.0.0.3) (接口 eno33554984)
  • 机器 B有 1 个网卡

    1. 已连接到 192.168.0.0/24(IP 192.168.0.20)
  • 机器 C有 1 个网卡
    1. 连接到 10.0.0.0/24(IP 10.0.0.20)

我需要实现的是,使用 CentOS7,将机器 A 上的路由设置为

  • 1- 与所有现有机器以及我可能连接的任何其他机器共享互联网。
  • 2 – 设置 IP 转发以使所有机器都可以相互访问。

我确实尝试了以下操作:

在路由器机器上开启包裹转发:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 

并设置一些路由规则

#nmcli connection modify "eno33554984" +ipv4.routes "10.0.0.0/24 147.x.x.67"
#nmcli connection modify "eno50332208" +ipv4.routes "192.168.0.0/24 147.x.x.67"
#nmcli connection modify "eno33554984" +ipv4.routes "10.0.0.0/24 192.168.0.3"
#nmcli connection modify "eno50332208" +ipv4.routes "192.168.0.0/24 10.0.0.3"

nmcli connection reload

systemctl restart network

nmcli connection up eno33554984

nmcli connection up eno50332208

但它不起作用....

ip route
default via 147.x.x.1 dev eno16777736  proto static  metric 100
10.0.0.0/24 dev eno33554984  proto kernel  scope link  src 10.0.0.3  metric 100
147.x.x.77 via 147.x.x.1 dev eno16777736  proto dhcp  metric 100
147.x.x.0/21 dev eno16777736  proto kernel  scope link  src 147.x.x.67  metric 100
192.168.0.0/24 dev eno50332208  proto kernel  scope link  src 192.168.0.3  metric 100

看起来路由规则甚至没有加载?或者我遗漏了一些东西...在 /etc/sysconfig/network-scripts/ 中创建了两个路由接口。

路线-eno33554984

ADDRESS0=10.0.0.0
NETMASK0=255.255.255.0
GATEWAY0=147.x.x.67
ADDRESS1=10.0.0.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.0.3

路线-eno50332208

ADDRESS0=192.168.0.0
NETMASK0=255.255.255.0
GATEWAY0=147.x.x.67
ADDRESS1=192.168.0.0
NETMASK1=255.255.255.0
GATEWAY1=10.0.0.3

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
            link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
            inet 127.0.0.1/8 scope host lo
               valid_lft forever preferred_lft forever
            inet6 ::1/128 scope host
               valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
            link/ether 00:0c:29:70:12:6f brd ff:ff:ff:ff:ff:ff
            inet 147.x.x.67/21 brd 147.x.x.255 scope global dynamic eno16777736
               valid_lft 2387sec preferred_lft 2387sec
            inet6 fe80::20c:29ff:fe70:126f/64 scope link tentative dadfailed
               valid_lft forever preferred_lft forever
3: eno33554984: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
            link/ether 00:0c:29:70:12:79 brd ff:ff:ff:ff:ff:ff
            inet 10.0.0.3/24 brd 10.0.0.255 scope global eno33554984
               valid_lft forever preferred_lft forever
            inet6 fe80::20c:29ff:fe70:1279/64 scope link
               valid_lft forever preferred_lft forever
4: eno50332208: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
            link/ether 00:0c:29:70:12:83 brd ff:ff:ff:ff:ff:ff
            inet 192.168.0.3/24 brd 192.168.0.255 scope global eno50332208
               valid_lft forever preferred_lft forever
            inet6 fe80::20c:29ff:fe70:1283/64 scope link
               valid_lft forever preferred_lft forever

从机器 A 路由

route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         comhub.home  0.0.0.0         UG    100    0        0 eno16777736
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eno33554984
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eno50332208
147.x.x.67     0.0.0.0        255.255.255.0   U     100    0        0 eno16777736


# sysctl -p
net.ipv4.ip_forward = 1

答案1

您不需要在连接到所有网络的服务器上设置任何路由。

您对 route-eno33554984 和 route-eno50332208 的接口配置无效。

正确的配置如下所示:

路线-eno33554984

ADDRESS0=10.0.0.1
NETMASK0=255.255.255.0

也就是说,您只需要为该接口设置子网中的 IP 地址和网络掩码。

您需要在服务器上设置 NAT 以便10.0.0.0/24能够192.168.0.0/24连接到互联网。

此外,您还需要在另外两台计算机上设置默认路由,使其指向它们所连接的子网中的路由器 IP 地址。

答案2

我想感谢 Tero Kilkanen 的帮助,他确实尽力帮助我,特别感谢 David

我遇到的一个非常重要的问题是 NetworkManager 存在问题,有时即使重新启动,网络设置也会保持不变,等等。有时即使重新启动后设置也保持不变,

任何改变之后

systemctl restart NetworkManager
systemctl restart network

我遇到的第二个问题是,我通过网络管理器一次添加 4-5 个 IP,纳米技术看来 CentOS7 或网络管理器无法一次性消化所有 IP。因此删除了所有 IP,每个接口只保留 1 个 IP,重新启动网络管理器删除了路由规则

rm -fr /etc/sysconfig/network-scripts/route*

重启网络

使用 iptables(而不是防火墙)设置 NAT,一切开始正常工作

相关内容