網關到底是什麼?
我以前一直以為網關是路由器的介面,是屬於網路層的,而交換機是數據鏈路層的,但是知道看到了這個
如果按照我以前的觀點,那麼三個人不可能在一個廣播域裡面的,所以我的觀點應該是錯的。
問題更新:
不知道車大說的是不是這樣 @車小胖圈圈表示廣播域,中間紅色的點表示網關,紫色的點表示網橋,常青(深藍)的線段表示網段,網關歸根結底就是網段之間連接的三層設備,所以我一開始關於網關觀點是正確,我理解錯誤的是廣播域,也就是廣播域可以跨網段存在,網橋是連接一個網段中間的二層設備的。也就是可以把上述問題歸結為三種情況一是多個網段為一廣播域,網段間用網關連;二是一個網段為一廣播域;三是半個網段為一廣播域。
主機們在不在一個廣播域,完全取決於主機連接的交換機埠們在不在同一個VLAN:
1. 如果在同一個VLAN,即使主機們的網段不相同,也是工作在一個廣播域。
1.1 主機們的網段相同,可以ARP發現彼此的MAC,直接通信,不需要任何三層設備(網關)的介入。1.2 主機們的網段不相同,即使在一個廣播域,也不能直接通信,需要三層設備(網關)的介入。
2. 如果不在一個VLAN,主機們不在一個廣播域
2.1 一個VLAN對應一個網段,那麼主機之間的通信需要三層設備(網關)的介入。2.2 如果很不巧,兩個VLAN里的主機使用相同的網段,主機並不知道有VLAN 的存在,所以依然認為其它主機和自己在一個廣播域,但是這個廣播域被交換機VLAN邏輯隔離,成為兩個廣播域,這時無法使用三層設備使得它們通信,唯一的方法,使用一個網橋將兩個VLAN二層橋接起來,它們就可以通信了。
所謂網關,就是上文提到的三層設備,可以是路由器、或三層交換機、防火牆。
哈哈,這個2.2的情況估計沒有幾個看得懂,凡是沒點贊的都是看不懂的,整個知乎用戶能看懂2.2情況的不會超過1000人…廣播域是個二層概念,一個廣播域里可以配很多個網段(雖然這種配置並不常見)。二層和三層從配置上來說是解耦的,並不要求廣播域範圍和子網網段配置一致,當然如果子網掩碼配置和實際的廣播域範圍設置不一樣,可能會引發網路故障。
DHCP是個典型的跨二三四層協議,它的正常工作充分利用到了二三四層各層的特性,首先它自己本質上來說是個UDP包,但是:
- 它的源埠和目的埠都是固定的,因此四層部分並不重要,只起協議區分作用
- 它的發送通常不是依靠IP地址的,因為DHCP協議發起的時候源設備還沒有IP地址;實際上除了DHCP中繼以外,都是依靠二層直接通信的
- DHCP DISCOVER/REQUEST通過二層廣播協議將數據包廣播到整個二層廣播域當中去,DHCP(或中繼)則以二層單播的方式返回結果(DHCP OFFER/ACK/NACK)
所以雖然貌似是個四層UDP協議,本質上還是靠二層通信機制。ARP也有類似的地方,它是跨二三層的
用比較通俗的例子說明一下,環境簡介
- 路由A,地址192.168.1.1
- 子網掩碼255.255.255.0
- 典型計算機B,地址192.168.1.129
一個典型機器的路由表
如果 B 要和 外界進行三層通信,有兩種情況
- 目標地址為192.168.1.1/24 網段內部,例如192.168.1.184,那麼發送的鏈路層幀目的 MAC 為ARP表中相應 MAC 地址(1c:1b:...),網路層目的IP為192.168.1.184
- 目的地址為192.168.1.1/24 網段外部,例如114.114.114.114, 那麼發送的鏈路層幀目的 MAC 為網關 MAC 地址(bc:d1:...),網路層目的IP仍為114.114.114.114。
在後一種情況使用網關通信的過程中,大概發生了幾件事
- 通過路由表查詢得到,114.114.114.114 需要使用 192.168.1.1 作為網關進行通信,介面為 eth0。這也就是為什麼有人說「網關就是一條路由」。
- 通過 ARP 表查詢得到,192.168.1.1 的 MAC 地址為 bc:d1:...
- 向 eth0 介面發送如上所述鏈路層幀
在自己所在子網通信不需要路由器(網路內),不需要網關。
和自己所在子網之外通信(網路間),需要通過網關。
「網關能在網路間轉遞數據包」,這個就是網關最初始的定義。
具體到你的問題,截圖截得很隨意,而且內容好像也很隨意,不如不看。
在常見的家用路由器/小型辦公室用企業路由器中,一般集成了交換機,路由器,NAT,DHCP Server 等多個角色。你題目中截圖中網關有時候指的是 DHCP Server.
所謂廣播域,就是從任意機器發送一個目的 MAC 地址為 FF.FF.FF.FF.FF.FF(廣播地址) 的鏈路層幀,能收到幀的所有介面(機器)的集合。廣播域中的機器相當於使用經典交換機(不支持 VLAN 的二層交換機)用網線連接起來。
VLAN 是用來劃分廣播域的一種方法/概念,可以使得同一根網線中流過多個廣播域的幀而不互相衝突,以及實現一個交換機多個埠分別屬於多個廣播域。歷史要比廣播域晚很多,為了簡便先不討論。
在一個廣播域中,完全可以存在多個子網,只要他們子網互不相交即可。
再舉一個例子,一個經典交換機有4個埠,連接三個計算機A,B,C,D
- A綁定兩個IP,192.168.1.1/24, 192.168.2.1/24
- B綁定一個IP,192.168.1.2/24
- C綁定一個IP,192.168.2.2/24
- D綁定一個IP,192.168.2.3/24
我們在不配置任何網關的情況下,A-B之間可以進行三層通信,A-C之間可以進行三層通信,B-C之間不能進行網路層通信,C-D之間可以進行三層通信且不經過A(因為在一個子網中)。同時ABCD互相都可以直接進行二層通信,不需要經過其他計算機,
如果把B的網關設置成192.168.1.1,C的網關設置成192.168.2.1,並在A上打開網路層轉發功能並正確配置路由表,那麼B-C之間就可以通過網關A進行網路層通信,但是網路層包要經過A的轉發。
於此同時,ABCD始終處於一個廣播域中,AB處於一個子網,ACD處於一個子網。這也舉例說明了,網關一般都會處於多個子網。
網關就是通向外界的一扇門。
有一點類似於超大型商場通常都有A,B,C,D等若干出入口,在這裡商場就是廣播域,A,B,C,D就是網關。
至於發送方的報文將從哪一個網關走是由發送方的路由表決定的。
假設A發送一個報文到B,首先A會用自身IP和目的地IP分別和自己的子網掩碼做與運算,如果結果不一致,於是發送方就明白目的方和自己不同屬於一個網段,於是檢查自己的路由表,查看有沒有除默認路由之外的路由可以通向目的地,如果沒有的話,就將這個IP包封裝成二層的幀,幀頭的目的MAC就是自身路由表中網關的MAC,然後發送給網關,由網關將這個幀轉發至B。
關於車總的2.22.2,主機a位於vlan2,主機b位於vlan3,他們同屬於supervlan100,主機a與主機b認為處於同一個廣播域,然而又被vlan隔離無法通信。我們可以在supervlan下開啟arp廣播,主機a與主機b即可獲得對方的mac地址,從而進行通信
這裡面有幾位回答很優秀,這裡補充一下。說網關是一個什麼樣的設備是不準確的,網關只是網路通信中的一個角色,而不是具體的一個設備。還有這裡面提到的一個「廣播域」的概念,其實與廣播域同時學習的還有一個重要概念是「衝突域」。以前我個人在學習中總結了一句話:廣播域就是數據幀間的共享域,衝突域就是模擬電訊號的共享域。是不是這樣就更好理解了呢?
一句話總結:網關是具有兩個以上的網路介面,可以連接兩個以上不同網段的設備(路由器、交換機),負責不同網域之間的封包轉遞 (IP Forwarding)。如果知乎機房的網關設備壞了,你就上不了知乎了.
網關,是連接兩個不同網路的這麼一個設備。
首先,要理解,是連接兩個不同網路的。關鍵字是「不同」!
其次,題目的DHCP遇到了雙網關雙代理的情況現實中幾乎不會遇到,肯定不會有哪個網路工程師故意給自己找麻煩吧網路做成這個傻樣。。。題中的例子,只是為了幫助你理解dhcp中繼和dhcp伺服器處理請求的過程。例子讓你理解的是dhcp而不是網關。
最後,網關只是一個統稱,就像是連接兩個不同房間之間的那個門。可以是防火牆,可以是路由器,也可以是三層交換機。只要具有3層以及以上層次的設備,都可以轉化為網關這個角色。哪怕是一台PC,一個網口,也可以通過打tag的方式轉化為一個單臂路由形態的網關。。。
另外,做實驗什麼的路由交換上的只是基礎理論,現實中企業網、政務網、金融網,路由器大多是用作廣域網互聯或者是跑個動態路由協議。。。。當你折騰過防火牆、行為管理器、負載均衡器等等的這種應用層的設備之後,你會對網關有更深的理解。
當學的越多,疑問也就越多。
我拿到ccie都五六年了,可有些問題還不是一樣得查文檔。。。
所以,努力學習吧。
想多了 網關就是一條路由 就是目的地址範圍大了些 其他沒有區別
你在任何設備的網關一欄填寫 到配置命令里就是生成了一條路由
知道什麼叫路由 就知道什麼叫網關了
看見配置命令你就懂了
推薦閱讀:
※微軟、谷歌、蘋果、英特爾等幾家巨頭公司如果聯合起來成為一個集團,能否成為一個超越政治和宗教的存在體?
※為什麼中國不能像日本一樣有高科技?
※各種西歐北歐東歐小國有哪些產業或公司是世界頂尖的?
※怎麼看待魅族把11.19的新品在雙十一提前開賣?
※如何評價智米馬桶蓋?