兩個網卡,兩個網關,每個下有多個別名
去年我設置了一台帶有兩個 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