為什麼要為每個介面分配ip,而不是每台主機?
換句話說,為每台主機只分配一個ip地址,用這個地址來標識這個主機不行嗎?
這個問題提得好,但很難回答,嘗試回答一下。
真實網路中確實有題主所描述的,一個伺服器主機,有兩到三塊網卡,將網卡物理介面用LACP協議(Link Aggregate Control Protocol)邏輯綁定成一個邏輯介面,那麼呈現給IP層的就是一個介面,然後再給IP分配一個IP地址,手工靜態、或動態DHCP都可以,但常用前者分配。
需要對端的交換機支持LACP協議,同時每個物理介面位於同一個VLAN,否則不能正確工作。任何一塊網卡down掉(網線鬆動,硬體異常等),都會被邏輯鏈路踢出,依然可以依靠剩餘網卡提供二層接入,這樣最大限度地提供冗餘鏈路支持。如果down掉的網卡重新UP,又可以加入邏輯鏈路的隊伍,繼續為IP層服務。
在早年,路由器還沒有普及並且價格高昂時,有些伺服器主機可以有多個物理介面,一塊連著乙太網某個網段如10.1.1.0/24,另外一塊連著10.1.2.0/24, 那麼兩個網段都可以訪問伺服器IP,一個是10.1.1.1/24,另一個是10.1.2.1/24。
有同學會問,為何這兩個網卡不在一個網段?和上文提供冗餘鏈路不同的是,這裡需要對不同業務部門做邏輯隔離,一個網段對應一個業務部門,比如公司不允許其他部門訪問財務部的網段。
如果伺服器不做其他配置,網路里也沒有其他三層設備,那麼10.1.1.0/24、10.1.2.0/24這兩個網段是無法通信的,即使在伺服器上也無法用10.1.1.1/24 Ping 通 10.1.2.1/24,如果想讓這兩個網段可以通信,必須配置伺服器主機,使之工作在路由模式,這時主機就是一個提供三層轉發的路由器。
綜上,一塊網卡綁定一個IP,還是多塊網卡綁定一個IP,完全看業務需求。IP的設計目的是為了路由,而不是為了標識主機。
由於現實需要確實存在一個主機配備多個網卡的情況。比如筆記本電腦,一個有線網卡一個無線網卡。想像一下移動網路和聯通網路相互不通的情況。如果一個人在這兩個網路中都有朋友,他就只能雙卡雙待了。因此你不能要求他只能有一個手機號。另外,IP地址之於網卡就好像手機號之於手機卡,手機號並不是設置在手機上的,IP地址與主機同理。網卡就是主機的網路介面。
如果有多個介面,你這樣想:
路由器(網關)發了一個arp請求,這兩個介面誰回復呢?
不管誰回復,另一個網口將進入空閑的下行(路由器向主機發包)狀態(路由器不會給這個介面的mac地址發包)。
實際上,一般情況下,主機的多個介面是接在多個子網下(多個路由器)。這樣,從新浪發過來到某個IP地址的包可以準確地到達那個路由器(網路路由配置),然後由這個網關(最後一跳路由器)發給相應的介面。
多個介面只用一個IP地址,下行的包只能到達同一個路由器(網關)。額。因為有時候你的電腦一邊上著網,一邊還掛著一塊開發板。你上網的ip是公司分配的。而你用來連接開發板的網口ip則是你自己定義的。
IP地址確定就確定了歸屬哪個子網,而有的主機會同時在兩個不同的子網之中啊。
我是一種人稱路由器的主機
1:資源有限
2:便與管理
按主機分配IP,分配到哪?是主板,CPU,硬碟?只有專門的網路模塊(網卡)才能分配地址.
因為一台電腦上不一定只有一個網卡。
例如路由器,wan口是公網ip,lan口是內網網關ip(然後這個口上接上了一台四口到八口的交換機,上面可能還橋接了一塊無線網卡)。
作為路由器使用的雙網卡電腦同理。
不過,如果你是想要給每台機子一個獨特的名字,可以用域名(http://host.network.com,windows和Linux都可用),也可以用NetBIOS名(\networkhost,windows可用),這個就與電腦裝了多少塊網卡無關,每台電腦只有一個了
介面IP只是主機的網路屬性,只要數據包從網卡進來後主機網路協議棧能合理地處理包,怎麼設置都可以,和主機的標識無關。
舉個例子,如果你的主機IP是2.2.2.2,從網卡上收到一個報文,源IP是1.1.1.1, 目的IP是3.3.3.3,作為主機你要怎麼處理?
下面的圖是Linux里Netfilter框架,因為目的地址不是主機本身,其實你可以走NF_IP_FORWARD處理。在這個過程中,如果設計到地址轉換,你可能就需要利用到不同介面的不同IP地址了。
我覺得這個東西應該反過來講:一個ip(應該)唯一標識一個介面
假如說,網路上有多個介面具有相同的ip,那麼網路中的某個設備就會發出這樣的疑問
「這個目的ip地址我是知道的,但是有兩個介面有一樣的ip地址,那我應該發給誰啊」乙太網的三層通信必須使用同一子網ip,哪怕是互聯也得用個/30的子網,既然互聯用了一組/30,主機還要用一個/32,還得跑個協議把/32宣告出去,還不如用個大一點的子網....
如果你考慮的是不想用哪些蛋疼的二層冗餘協議,我看vswitch配vxlan會是主流啊...
如果裝了一個虛擬機,而這個虛擬機需要和物理機一起都在公司的區域網里,那你的物理機就得有兩個網卡,需要兩個IP地址~
如果一台主機5個網卡5線接入你怎麼用一個IP?
還有如果2個網卡接入1個交換機!
一個IP怎麼使用2個網卡?路由器可以看做是多網卡主機!
因為每個介面都工作在OSI三層,三層地址就是IP咯。如果想一個主機只配一個IP,可以把所有介面橋接在一起,這時候介面本身都工作在二層,只要有MAC地址就可以了。IP配在三層的橋接介面(虛擬)上。
你說的是mac地址?
通過mac地址代替ip地址
也就是數據鏈路層代替網路層的功能
這樣的話
- 不利於網路分層實現
- 不利於抽象
小白作答,歡迎指正
推薦閱讀:
※普通路由器的DHCP中繼有什麼作用?
※裝修時需要安裝幾根網線?
※網線從路由器接出來, 再接一個路由器怎麼設置?
※為什麼一定要通過網關來找計算機?
※路由器進行NAT地址轉換時,如何避免可能出現的如下錯誤?