Routing

centos7上的路由設置

  • December 6, 2016

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

我有 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

您不需要在連接到所有網路的伺服器上設置任何路由。

您對 route-eno33554984 和 route-eno50332208 的介面配置無效。

正確的配置如下所示:

路線-eno33554984

ADDRESS0=10.0.0.1
NETMASK0=255.255.255.0

也就是說,您只需在子網中為該介面設置一個 IP 地址和一個網路遮罩。

10.0.0.0/24您需要在伺服器上設置 NAT 以便192.168.0.0/24可以連接到 Internet。

此外,您需要在其他兩台電腦上設置預設路由,以指向它們所連接的子網中的路由器 IP 地址。

引用自:https://serverfault.com/questions/818850