介面和 nat 之間的路由(ip 別名)

介面和 nat 之間的路由(ip 別名)

我有 2 台伺服器,兩者都透過 switch0 連線(無 VLAN) server1 有 2 個網卡

eth0 --> switch0
ppp0 --> modem --> internet
cat /proc/sys/net/ipv4/ip_forward 1

192.168.1.0/24
192.168.1.212 netmask 255.255.255.0

路線:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.10.10.0      10.10.10.1      255.255.255.0   UG    0      0        0 tun0
10.10.10.1      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
151.7.202.72    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
172.16.212.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.116.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8

伺服器2是:

192.168.1.0/24
192.168.1.252 netmask 255.255.255.0 --> switch0

有 3 個 lan、3 個 NICS:

192.168.1.0/24 netmask 255.255.255.0 --> switch0
192.168.2.0/24 netmask 255.255.255.0 --> switch1
193.168.3.0/24 netmask 255.255.255.0 --> switch2

路線:

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.212      UGS         0   168553   bge0
10.10.10.0/24      10.10.10.1         UGS         0        0   tun0
10.10.10.1         link#12            UH          0        0   tun0
10.10.10.2         link#12            UHS         0        0    lo0
127.0.0.1          link#10            UH          0     1897    lo0
192.168.1.0/24     link#1             U           0    42375   bge0
192.168.1.252      link#1             UHS         0        4    lo0
192.168.2.0/24     link#7             U           0   117807    rl0
192.168.2.252      link#7             UHS         0        0    lo0
192.168.3.0/24     link#8             U           0   161828    rl1
192.168.3.252      link#8             UHS         0        0    lo0

我需要建立從 192.168.1.0/24 到所有其他 LAN 的路由。

我應該在 server2 上使用 ip 別名嗎?

答案1

這實際上很容易。

在伺服器 2 上:編輯(如 sudo)檔案 /etc/sysctl.conf,找到此行

  #net.ipv4.ip_forward=1

並取消註釋,

  net.ipv4.ip_forward=1

儲存文件,發出命令:

  sudo sysctl -p

這只是告訴您的核心允許封包從一個 NIC 傳遞到另一個 NIC。

另外,我們需要在其上配置 NAT,以便返回資料包可以透過 server2 正確路由。發出這個:

  sudo iptables -t nat  -A POSTROUTING -o rl0 -j MASQUERADE
  sudo iptables -t nat  -A POSTROUTING -o rl1 -j MASQUERADE

這假設您的預設 iptables 策略全部接受。如果這是不正確的,我們將不得不在您的防火牆上再打幾個洞。

現在到伺服器 1。

  sudo route add -net 192.168.2.0/24 default gw 192.168.1.252
  sudo route add -net 192.168.3.0/24 default gw 192.168.1.252

這兩個命令只是指示您的 server1,如果它發現發送到 192.168.2.0/24 或 192.168.3.0/24 的資料包,則應將該資料包路由到 server2,由 server2 處理它。

您沒有指定是否希望 192.168.2.0/24 還是 192.168.3.0/24 上的用戶端能夠透過 server2 存取 192.168.1.0。如果這樣做,請添加

  sudo iptables -t nat -A POSTROUTING -o bge0 -j MASQUERADE

到你的防火牆。

最後,我非常希望子網路 192.168.2.0/24 和 192.168.3.0/24不是透過不同的路線連接到 Server1,因為這表示您的配置中存在閉環,這需要一些進階儀器來正確處理此問題。

相關內容