網路與 IP

閘道器是什麼意思?預設閘道器的作用與閘道器位址怎麼確定

閘道器(英文 gateway)是一個網段通往其他網段的出口。主機發現目標不在本網段時,就把資料包交給閘道器,由它轉發出去;主機上配置的“預設閘道器”,就是預設路由 0.0.0.0/0 的下一跳。閘道器位址必須和主機在同一網段,按慣例取網段裡第一個或最後一個可用位址,具體以網路管理員或機房分配的為準。

作者 頂聯產品團隊發布於 6 分鐘閱讀

閘道器是什麼意思?簡單說,閘道器就是一個網段通往其他網段的出口。同一網段裡的裝置可以直接通訊,要存取別的網段或者網際網路,資料包必須先交給閘道器,由它轉發出去。閘道器通常不是一台單獨的裝置,而是路由器、三層交換器或防火牆上與你處於同一網段的那個介面,比如你的電腦是 192.168.1.23/24,閘道器常見的是 192.168.1.1。電腦、伺服器上填寫的“預設閘道器”,意思是:凡是不知道該怎麼走的目標,一律交給這個位址,在路由表裡它就是預設路由 0.0.0.0/0 的下一跳。

閘道器是什麼:一個網段通往外面的出口

閘道器的英文是 gateway,預設閘道器是 default gateway。早期的 TCP/IP 文件就把路由器叫作 gateway,例如 1987 年的 RFC 1009 標題就是“Requirements for Internet Gateways”(網際網路閘道器的要求),後來的標準才統一改稱 router。所以在 IP 網路裡說“閘道器”,指的就是承擔路由轉發的那個裝置介面。

閘道器的作用可以歸結為三點:

  • 轉發跨網段的流量:本網段以外的目標,都由閘道器按自己的路由表送往下一跳;
  • 劃定網段的邊界:廣播、ARP 請求到閘道器為止,不會擴散到別的網段;
  • 在邊界上做控制:很多閘道器同時承擔 NAT、存取控制、限速等功能,家用路由器把內網位址轉換成公網位址,就發生在閘道器上。

“閘道器是什麼裝置”這個問題,答案是:閘道器是一個角色,不是某種固定的裝置。下面這些都可以當閘道器:

場景 充當閘道器的裝置 閘道器位址配在哪裡
家庭、小辦公室 家用路由器、光貓 路由器的 LAN 口位址,常見 192.168.1.1
企業園區、機房 三層交換器 每個 VLAN 的三層介面:華為叫 Vlanif,H3C 叫 Vlan-interface,思科叫 SVI
機房出口、分支互聯 路由器 物理介面或子介面
安全邊界 防火牆 內網側介面
虛擬化、容器環境 開啟轉發的 Linux 主機、虛擬路由器 網橋或虛擬介面,例如 Docker 預設網橋的 172.17.0.1

生活裡還會聽到協議閘道器、API 閘道器、支付閘道器、物聯網閘道器,那些是“在兩個系統之間轉換和轉發”的引申用法,和這裡說的 IP 閘道器不是一回事。

為什麼跨網段必須經過閘道器

主機發包之前,先用自己的 IP 和掩碼判斷目標在不在同一網段。在同一網段,就用 ARP 廣播問出對方的 MAC,直接把幀發給對方;不在同一網段,ARP 廣播傳不過去,主機就改為問閘道器的 MAC,把幀交給閘道器。

以電腦 192.168.1.23/24 存取 198.51.100.20 為例,過程是這樣的:

  1. 電腦算出 198.51.100.20 不在 192.168.1.0/24 裡,查路由表,只有預設路由能匹配,下一跳是 192.168.1.1;
  2. 電腦用 ARP 問出 192.168.1.1 的 MAC,把資料包封裝成乙太網幀:目的 MAC 是閘道器的,目的 IP 仍然是 198.51.100.20;
  3. 閘道器收下這個幀,拆掉二層頭,按自己的路由表找到下一跳,把 TTL 減 1,重新封裝後從出口發出;
  4. 後面的每一台路由器重複第 3 步,直到送達目標所在的網段。

同一個資料包,在閘道器前後長這樣:

欄位 電腦 → 閘道器這一段 閘道器 → 下一跳這一段
源 MAC 電腦網路卡的 MAC 閘道器出口介面的 MAC
目的 MAC 閘道器內網介面的 MAC 下一跳裝置的 MAC
源 IP 192.168.1.23 不變;家用路由器做 NAT 時換成它 WAN 口的位址
目的 IP 198.51.100.20 不變
TTL 例如 64(Linux 的預設初始值) 減 1,變成 63

可以看出,IP 位址標明的是終點,MAC 位址只管這一跳;閘道器正是在每一跳之間“換信封”的那個角色。

沒有配置閘道器會怎樣?同網段的機器照樣能互通,跨網段的一律不通。Linux 上 ping 外網會直接報 connect: Network is unreachable,因為路由表裡根本找不到能匹配的路由。

閘道器位址怎麼確定:第一個還是最後一個可用 IP

閘道器位址只需要滿足一個硬性條件:和主機在同一網段,並且與閘道器裝置介面上實際配置的位址一致。至於取哪個位址,靠的是慣例:

  • 第一個可用位址最常見,例如 192.168.1.0/24 的閘道器取 192.168.1.1;
  • 最後一個可用位址也有不少人用,例如 /24 取 .254;
  • 機房分配公網 IP 時,交付單上會寫明閘道器,照抄即可,不要自己猜。猜錯了不但上不了網,還可能和別人的位址衝突。

在機房裡,閘道器位址會直接影響客戶能用幾個 IP。以分給客戶的 203.0.113.8/29 為例,一共 8 個位址:

位址 單閘道器時的用途 閘道器做 VRRP 冗餘時的用途
203.0.113.8 網路位址,不可用 網路位址,不可用
203.0.113.9 閘道器 虛擬閘道器位址,伺服器填這個
203.0.113.10 客戶可用 主核心交換器的介面位址
203.0.113.11 客戶可用 備核心交換器的介面位址
203.0.113.12–14 客戶可用 客戶可用
203.0.113.15 廣播位址,不可用 廣播位址,不可用
客戶可用合計 5 個 3 個

同樣一個 /29,閘道器做了雙機冗餘後,客戶可用位址從 5 個變成 3 個。所以報價和分配 IP 時,要先弄清閘道器的部署方式。

配置時如果閘道器不在本網段,系統會攔住你:Windows 儲存時會提示預設閘道器不在 IP 位址和子網掩碼定義的網段上;Linux 執行 ip route add default via 會報 Error: Nexthop has invalid gateway。遇到這種提示,先檢查掩碼是不是寫錯了。少數服務商會有意給出不在本網段的閘道器,需要先加一條指向閘道器的直連路由,netplan 裡則在路由上寫 on-link: true,按服務商的文件操作即可。

怎麼檢視預設閘道器:ip route 與 route print

Linux 上看預設閘道器和它的 MAC:

ip route show default          # 預設路由,via 後面就是閘道器
ip route get 198.51.100.20     # 存取某個目標時實際用哪個閘道器、哪塊網路卡、哪個源位址
ip neigh show 203.0.113.9      # 閘道器的 MAC,狀態應為 REACHABLE 或 STALE
default via 203.0.113.9 dev eth0 proto static metric 100
198.51.100.20 via 203.0.113.9 dev eth0 src 203.0.113.12 uid 0
    cache
203.0.113.9 dev eth0 lladdr 00:00:5e:00:01:01 REACHABLE

最後一行的 MAC 以 00:00:5e:00:01 開頭,說明這個閘道器是 VRRP 虛擬閘道器,最後一個位元組 01 是 VRRP 組號,後文會講。

Windows 上有三種看法:

ipconfig                                        # “預設閘道器”一行
route print -4                                  # 活動路由裡網路目標為 0.0.0.0 的那一行
Get-NetRoute -DestinationPrefix 0.0.0.0/0       # PowerShell,NextHop 列就是閘道器

route print -4 輸出裡,網路目標和網路掩碼都是 0.0.0.0 的那一行就是預設路由,“閘道器”列是閘道器位址,“躍點數”列決定有多條預設路由時優先用哪條。用 tracert -d 198.51.100.20(Linux 用 traceroute -n)看第一跳,顯示的也是閘道器。

機房裡的閘道器:三層交換器 VLANIF、路由器與 VRRP

在機房裡,伺服器的閘道器通常落在兩個地方:

  • 核心或匯聚層的三層交換器:每個 VLAN 建一個三層介面,配上這個網段的閘道器位址。一個 VLAN 對應一個網段、一個閘道器,這是最常見的做法。
  • 出口路由器或防火牆:公網位址段直接由上聯路由器做閘道器,或者需要在閘道器上做 NAT、安全策略時由防火牆承擔。

閘道器一旦故障,整個網段都會斷網,所以機房的閘道器一般做冗餘,常用的協議是 VRRP(思科裝置上還常見私有的 HSRP)。兩台核心交換器共享一個虛擬閘道器位址,平時由優先順序高的主裝置應答這個位址的 ARP,主裝置故障時,備裝置在秒級接管。伺服器上只填虛擬位址,切換過程中不用改任何配置。華為交換器上的配置範例:

# 核心交換器 A(優先順序 120,作為主)
interface Vlanif100
 ip address 203.0.113.10 255.255.255.248
 vrrp vrid 1 virtual-ip 203.0.113.9
 vrrp vrid 1 priority 120

# 核心交換器 B(預設優先順序 100,作為備)
interface Vlanif100
 ip address 203.0.113.11 255.255.255.248
 vrrp vrid 1 virtual-ip 203.0.113.9

配置完用 display vrrp brief 檢視哪台是 Master。IPv4 的 VRRP 虛擬 MAC 固定以 00-00-5E-00-01 開頭,最後一個位元組就是 VRID,所以伺服器上看到閘道器 MAC 是 00:00:5e:00:01:01,就知道它對應 VRID 1。

閘道器相關的故障,可以按下表從現象倒推原因:

現象 常見原因 檢查方法
同網段互通,跨網段全都不通 沒配預設閘道器,或閘道器位址填錯 ip route show default 看閘道器是否正確
ip neigh 裡閘道器狀態是 FAILED 或 INCOMPLETE 二層不通:連接埠 VLAN 劃錯、鏈路斷、閘道器介面沒起來 在交換器上核對連接埠 VLAN 和三層介面狀態
ping 閘道器不通,存取外網卻正常 閘道器禁 ping 或對 ICMP 限速 看 ARP 能否解析閘道器 MAC,不以 ping 為準
閘道器的 MAC 時不時變成別的值 有人把自己的 IP 配成了閘道器位址,或者存在 ARP 欺騙 arping -I eth0 -c 3 203.0.113.9,收到多個不同 MAC 的應答就有衝突
時通時斷,換網路卡就好 多網路卡都配了預設閘道器,回程走錯了網路卡 只保留一條預設路由,其餘用靜態路由

在管理系統裡怎麼落地

閘道器配錯,多半不是不會配,而是一個網段的閘道器、掩碼、VLAN 分散記錄在交付單、裝機範本和交換器配置裡,幾處對不上。Toplink DCIM 的 IP 位址管理按 CIDR 錄入位址段,自動算出起止位址和子網掩碼,閘道器可以選段內第一個或最後一個位址;每個段同時登記所在的 VLAN、閘道器掛在哪台支援路由的交換器上,以及兩個 DNS 位址。給伺服器分配 IP 時從這個段裡取址,裝機配置和交付單都照這條記錄填寫閘道器和掩碼,幾處就不會各說各的。伺服器換網段時,在交換器管理裡直接修改連接埠 VLAN,再按新網段的記錄更新伺服器的位址和閘道器,VLAN 與網段就不會錯位。

常見問題

家用路由器的閘道器位址就是它的管理後台位址嗎?

多數家用路由器是同一個,比如 192.168.1.1,在瀏覽器裡輸入就能開啟管理頁面。這只是家用裝置的習慣:機房和企業網裡的閘道器是三層交換器或路由器的介面,裝置一般透過單獨的管理位址維護,不對客戶開放。

閘道器和 DNS 有什麼區別?

閘道器負責轉發資料包,DNS 負責把域名解析成 IP,家用路由器常常兼做兩件事,所以容易混在一起。DNS 填錯時 ping IP 能通、存取域名不通;閘道器填錯時連外網 IP 都不通。

IPv6 的閘道器需要手工配置嗎?

通常不用。路由器會定期傳送路由通告(RA),主機據此自動設定預設閘道器,所以 IPv6 路由表裡的閘道器常常是 fe80:: 開頭的鏈路本地位址。機房伺服器手工配置靜態 IPv6 時,也可以填機房給的全域性位址作為閘道器。

一台電腦能配兩個預設閘道器嗎?

能配,但同一時刻一般只按躍點數(metric)用優先順序高的那一條,另一條不會自動分擔流量。所以多配一個預設閘道器既不能疊加頻寬,也不等於出口冗餘,冗餘要在閘道器一側做。

想看看在你的機房裡怎麼用?

從一次產品示範開始,梳理你的業務鏈路。

查看價格
服務熱線 400-112-2951

讓我們聊聊你的 IDC 業務

掃碼新增企業微信,預約產品示範或申請試用。

Toplink 企業微信二維碼

長按儲存或使用企業微信 / 微信掃描

也可致電
400-112-2951
Telegram
@TopLink88