Centos

兩個網卡,兩個網關,每個下有多個別名

  • February 17, 2018

去年我設置了一台帶有兩個 NIC 的 CentOS 6 機器,每個都使用一個單獨的網關。NIC#1 下存在多個別名(em1, em1:0, em1:1, ect),但目前在 NIC#2 (em2) 下僅存在一個介面。

我需要為 NIC#2 添加一個別名,但不確定如何最好地進行。

以下是我目前如何獲得工作配置的快速摘要:


/etc/sysconfig/網路腳本/

em1
   DEVICE=em1
   NAME=siteABC
   IP=22.22.22.214
   GATEWAY=22.22.22.2
   NETMASK=255.255.255.0
   GATEWAY=22.22.22.2
   DNS1=1.1.1.1
   DNS2=1.1.1.2
   TYPE=Ethernet
   ONBOOT=yes
   BOOTPROTO=none

em1:0
   DEVICE=em1:0
   NAME=siteABC
   IPADDR=22.22.22.215
   GATEWAY=22.22.22.2
   NETMASK=255.255.255.0
   GATEWAY=22.22.22.2
   DNS1=1.1.1.1
   DNS2=1.1.1.2
   TYPE=Ethernet
   ONBOOT=yes
   BOOTPROTO=none

em2 
   DEVICE=em2
   NAME=sitetwo
   HWADDR=$MACADDRESS
   IPADDR=44.44.44.69
   NETMASK=255.255.255.0
   #GATEWAY=  ### commented out per below ###
   DNS1=1.1.1.1
   DNS2=1.1.1.2
   TYPE=Ethernet
   ONBOOT=yes
   BOOTPROTO=none

/etc/iproute2/rt_tables 被編輯以在底部添加一個新行(在#1 inr.ruhep 下方)。新行包含 200 MGMT。

#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
200 MGMT

/etc/sysconfig/network-scripts/route-em2使用以下內容創建:

default table MGMT via 44.44.44.2

** Note that 44.44.44.2 is the gateway of the second NIC (the public WAN). ** 

最後,我創建了一個名為/etc/sysconfig/network-scripts/rule-em2以下內容的規則文件:

from 44.44.44.69 table MGMT

繼續:

預設網關配置了多個別名(em1、em1:0、em1:1 等)。第二個網關只有一個介面(em2),但是我需要為機器託管的另一個站點 IP 添加別名 em2:0。

我今天嘗試的

我配置了一個名為 em2:0 的別名,它鏡像 em2,但 DEVICE、NAME 和 IPADDR 除外。網路重新啟動沒有問題,但我無法訪問 em2:0 下新配置的 IPADDR。

問題

我只需要在/etc/sysconfig/network-scripts/rule-em2文件中添加另一個條目(如上所示)嗎?或者在 em2 下添加別名還有更多工作要做嗎? 這是一個生產系統,我猶豫是否要快速更改以查看會發生什麼。

是的,看來您必須為 em2 上的新 IP 44.44.44.X 添加規則。那將是ip rule add from 44.44.44.X table MGMT

如果沒有對 MGMT 表 (200) 的規則,則選擇的預設路由將是default via 22.22.22.2 dev em1,即使對於 em2 上的此 IP。使用此設置,來自 Internet 的客戶試圖訪問這個新的管理 IP,她的連接會從一個沒有通過 em2 定義的預設路由(因此沒有路由)的 IP 到達 em2:CentOS反向路徑過濾的預設設置會丟棄數據包.

同樣,帶有這個新 IP 44.44.44.X 的傳出數據包將嘗試通過唯一可用的預設路由到達客戶:em1 上的 22.22.22.2。路徑中的其他設備也可能不允許(但不是很相關,另一種方式已經不起作用)也不允許這樣做(例如:如果 22.22.22.2 和 44.44.44.2 通過兩個不同的 Internet 提供商,或者只是如果22.22.22.2 沒有 Internet 連接)。

當源 ip 為 44.44.44.X 時,添加ip rule add from 44.44.44.X table MGMT將選擇此路由表,現在default via 44.44.44.2 dev em2從表 MGMT 中選擇。來自 Internet 的通過 em2 到達 44.44.44.X 的數據包現在具有通過 em2 的路由,因此不會被 rp_filter 丟棄。來自 44.44.44.X 的傳出數據包現在將正確使用 em2 通過 44.44.44.2 訪問 Internet。

您可以通過鍵入以下範例輕鬆查看差異:

ip route get 8.8.8.8 from 44.44.44.X

沒有規則,你會看到路線8.8.8.8 from 44.44.44.X via 22.22.22.2 dev em1,它會切換到8.8.8.8 from 44.44.44.X via 44.44.44.2 dev em2 table 200

引用自:https://unix.stackexchange.com/questions/424693