網(wǎng)絡(luò)設(shè)備認(rèn)識(shí)介紹解析
網(wǎng)絡(luò)設(shè)備認(rèn)識(shí)介紹解析
知識(shí)網(wǎng)絡(luò)是知識(shí)參與者之間的社會(huì)網(wǎng)絡(luò)。能夠?qū)崿F(xiàn)個(gè)人、組織與組織外部的知識(shí)創(chuàng)造與傳遞,人們透過(guò)知識(shí)網(wǎng)絡(luò)進(jìn)行信息合作與交流。目標(biāo)是把技術(shù)與人連接起來(lái),實(shí)現(xiàn)智力資本、結(jié)構(gòu)資本和顧客資本的有效結(jié)合。可分為內(nèi)部知識(shí)網(wǎng)絡(luò)和外部知識(shí)網(wǎng)絡(luò),前者強(qiáng)調(diào)組織內(nèi)部員工間與組織間的知識(shí)交流,后者強(qiáng)調(diào)組織外部的知識(shí)來(lái)源,包括社區(qū)、國(guó)家社會(huì)關(guān)系,以及競(jìng)爭(zhēng)者。下面是小編收集整理的網(wǎng)絡(luò)設(shè)備認(rèn)識(shí)介紹解析范文,歡迎借鑒參考。
網(wǎng)絡(luò)設(shè)備認(rèn)識(shí)介紹解析(一)
網(wǎng)絡(luò)設(shè)備現(xiàn)在已經(jīng)成了家里必不可缺的一塊,而如何選購(gòu)網(wǎng)絡(luò)設(shè)備也是個(gè)不小的問(wèn)題,比如路由器,交換機(jī),網(wǎng)卡等等。今天就在這里給大家推薦幾款網(wǎng)絡(luò)硬件吧。
1:斐訊K3C
什么?斐訊不是翻車了嗎?怎么還推薦斐訊?沒(méi)錯(cuò),斐訊在狗東的車是翻了,但是K3C卻依舊是一款值得購(gòu)買的產(chǎn)品,在轉(zhuǎn)轉(zhuǎn)上基本160元左右就能收到,買回來(lái)刷個(gè)官改固件還是可以的,就是CPU和網(wǎng)絡(luò)芯片比較熱,能達(dá)到80℃以上。但是沖著它支持MU-MIMO以及千兆WAN+3口千兆LAN的規(guī)格來(lái)說(shuō),160元的價(jià)格可以說(shuō)超值了,還是全新的,非洋垃圾可以比,信號(hào)也不錯(cuò)。
2:Mikrotik RB750Gr3(千兆有線)
其實(shí)這款產(chǎn)品硬件配置上沒(méi)有什么出彩之處,MTK7621A+16MB ROM+256MB RAM,也許你看到這會(huì)說(shuō):什么?現(xiàn)在不都是無(wú)線路由器了嗎?你推薦個(gè)千兆有線路由是幾個(gè)意思?還是爛大街的MTK7621。但是這款路由值錢在它的固件上,它默認(rèn)標(biāo)配的固件就是ROS,而ROS的大名在玩路由器的朋友里面基本無(wú)人不知無(wú)人不曉,所以這款千兆路由器功能十分強(qiáng)大,而且因?yàn)榘l(fā)熱低,非常適合扔在弱電箱里面,而且即便你是千兆寬帶,也不會(huì)出現(xiàn)性能不足的問(wèn)題,經(jīng)使用這款路由的朋友測(cè)試,600M寬帶轉(zhuǎn)發(fā)最高只吃了14%的CPU,這NAT性能可以說(shuō)和交換機(jī)有的一拼了。應(yīng)付千兆寬帶是完全沒(méi)問(wèn)題的。而且還擁有ROS的L4授權(quán),340元的價(jià)格真的不算貴了。至于無(wú)線,你可以去找個(gè)無(wú)線路由器或者老路由器做AP即可,反正K2P這種100出頭就能買到。
3:支持VLAN的千兆交換機(jī)
這款交換機(jī)就是我之前客廳實(shí)現(xiàn)雙線合一使用的那款,但是這個(gè)固件好像不少?gòu)S家都在用,而且品牌略有不同,所以具體不推薦哪個(gè)牌子了,都是深圳出的。支持網(wǎng)管功能,VLAN等,非常適合用來(lái)組建家庭網(wǎng)絡(luò),而且發(fā)熱很低,扔在弱電箱毫無(wú)問(wèn)題,至于買5口還是8口看個(gè)人需求,鏈路匯聚,鏡像,WAN擴(kuò)WAN等功能一個(gè)不少,而價(jià)格僅僅百元出頭,而它的功能,路由器是基本做不到的,所以這里推薦有需求的朋友購(gòu)買。要知道同價(jià)位的品牌貨可是貴了好多倍。
4:1037U/J1900軟路由
如果你覺(jué)得ARM或者M(jìn)IPS路由器已經(jīng)滿足不了你的需求,那么x86軟路由絕對(duì)是你的不二選擇,對(duì)家庭用戶來(lái)說(shuō),1037U的軟路由基本是到頂了,而一般人來(lái)說(shuō)選擇J1900的路由器更合適,因?yàn)閮r(jià)格更便宜,而且不需要風(fēng)扇,1037U雖然性能強(qiáng)大,但是軟路由體積相對(duì)較大,而且有風(fēng)扇散熱的情況下肯定會(huì)帶來(lái)額外的噪音,固件方面都支持愛(ài)快,ROS,LEDE,OP等,如果你不滿足也可以去裝windows。總之軟路由基本是夠你玩的,性能對(duì)一個(gè)路由器來(lái)說(shuō)已經(jīng)是非常夠用了。
5:intel 9260AC(不支持AMD主板)
這是一款M.2規(guī)格的無(wú)線網(wǎng)卡,在5GHz wifi已經(jīng)基本普及的今天,怎么能沒(méi)有一款支持5GHz wifi的網(wǎng)卡呢?雖然很多主板默認(rèn)都標(biāo)配了無(wú)線網(wǎng)卡,但是基本都是433Mbps的寒酸貨,速度并沒(méi)有比2.4GHz快多少,而9260AC作為一款不到100元的M.2網(wǎng)卡,支持1.7GHz wifi+藍(lán)牙5.0,可以滿足你很長(zhǎng)一段時(shí)間的無(wú)線wifi需求,但是不兼容AMD的主板,如果AMD主板的話,建議購(gòu)買8265AC,速率是866Mbps,支持藍(lán)牙4.2,MU-MIMO也支持??梢阅脕?lái)連接X(jué)BOX手柄,藍(lán)牙耳機(jī)等。但是要注意的是,這里的M.2接口可不是M.2的SSD接口,是M.2網(wǎng)卡所使用的。當(dāng)然如果你的主板沒(méi)有M.2網(wǎng)卡接口,也可以淘寶30元買張轉(zhuǎn)接卡解決問(wèn)題。
網(wǎng)絡(luò)設(shè)備認(rèn)識(shí)介紹解析(二)
抽象網(wǎng)絡(luò)設(shè)備的原理及使用
網(wǎng)絡(luò)虛擬化是 Cloud 中的一個(gè)重要部分。作為基礎(chǔ)知識(shí),本文詳細(xì)講述 Linux 抽象出來(lái)的各種網(wǎng)絡(luò)設(shè)備的原理、用法、數(shù)據(jù)流向。您通過(guò)此文,能夠知道如何使用 Linux 的基礎(chǔ)網(wǎng)絡(luò)設(shè)備進(jìn)行配置以達(dá)到特定的目的,分析出 Linux 可能的網(wǎng)絡(luò)故障原因。
Linux 抽象網(wǎng)絡(luò)設(shè)備簡(jiǎn)介
和磁盤設(shè)備類似,Linux 用戶想要使用網(wǎng)絡(luò)功能,不能通過(guò)直接操作硬件完成,而需要直接或間接的操作一個(gè) Linux 為我們抽象出來(lái)的設(shè)備,既通用的 Linux 網(wǎng)絡(luò)設(shè)備來(lái)完成。一個(gè)常見(jiàn)的情況是,系統(tǒng)里裝有一個(gè)硬件網(wǎng)卡,Linux 會(huì)在系統(tǒng)里為其生成一個(gè)網(wǎng)絡(luò)設(shè)備實(shí)例,如 eth0,用戶需要對(duì) eth0 發(fā)出命令以配置或使用它了。更多的硬件會(huì)帶來(lái)更多的設(shè)備實(shí)例,虛擬的硬件也會(huì)帶來(lái)更多的設(shè)備實(shí)例。隨著網(wǎng)絡(luò)技術(shù),虛擬化技術(shù)的發(fā)展,更多的高級(jí)網(wǎng)絡(luò)設(shè)備被加入了到了 Linux 中,使得情況變得更加復(fù)雜。在以下章節(jié)中,將一一分析在虛擬化技術(shù)中經(jīng)常使用的幾種 Linux 網(wǎng)絡(luò)設(shè)備抽象類型:Bridge、802.1.q VLAN device、VETH、TAP,詳細(xì)解釋如何用它們配合 Linux 中的 Route table、IP table 簡(jiǎn)單的創(chuàng)建出本地虛擬網(wǎng)絡(luò)。
相關(guān)網(wǎng)絡(luò)設(shè)備工作原理
Bridge
Bridge(橋)是 Linux 上用來(lái)做 TCP/IP 二層協(xié)議交換的設(shè)備,與現(xiàn)實(shí)世界中的交換機(jī)功能相似。Bridge 設(shè)備實(shí)例可以和 Linux 上其他網(wǎng)絡(luò)設(shè)備實(shí)例連接,既 attach 一個(gè)從設(shè)備,類似于在現(xiàn)實(shí)世界中的交換機(jī)和一個(gè)用戶終端之間連接一根網(wǎng)線。當(dāng)有數(shù)據(jù)到達(dá)時(shí),Bridge 會(huì)根據(jù)報(bào)文中的 MAC 信息進(jìn)行廣播、轉(zhuǎn)發(fā)、丟棄處理。
Bridge 的功能主要在內(nèi)核里實(shí)現(xiàn)。當(dāng)一個(gè)從設(shè)備被 attach 到 Bridge 上時(shí),相當(dāng)于現(xiàn)實(shí)世界里交換機(jī)的端口被插入了一根連有終端的網(wǎng)線。這時(shí)在內(nèi)核程序里,netdev_rx_handler_register()被調(diào)用,一個(gè)用于接受數(shù)據(jù)的回調(diào)函數(shù)被注冊(cè)。以后每當(dāng)這個(gè)從設(shè)備收到數(shù)據(jù)時(shí)都會(huì)調(diào)用這個(gè)函數(shù)可以把數(shù)據(jù)轉(zhuǎn)發(fā)到 Bridge 上。當(dāng) Bridge 接收到此數(shù)據(jù)時(shí),br_handle_frame()被調(diào)用,進(jìn)行一個(gè)和現(xiàn)實(shí)世界中的交換機(jī)類似的處理過(guò)程:判斷包的類別(廣播/單點(diǎn)),查找內(nèi)部 MAC 端口映射表,定位目標(biāo)端口號(hào),將數(shù)據(jù)轉(zhuǎn)發(fā)到目標(biāo)端口或丟棄,自動(dòng)更新內(nèi)部 MAC 端口映射表以自我學(xué)習(xí)。
Bridge 和現(xiàn)實(shí)世界中的二層交換機(jī)有一個(gè)區(qū)別,圖中左側(cè)畫出了這種情況:數(shù)據(jù)被直接發(fā)到 Bridge 上,而不是從一個(gè)端口接受。這種情況可以看做 Bridge 自己有一個(gè) MAC 可以主動(dòng)發(fā)送報(bào)文,或者說(shuō) Bridge 自帶了一個(gè)隱藏端口和寄主 Linux 系統(tǒng)自動(dòng)連接,Linux 上的程序可以直接從這個(gè)端口向 Bridge 上的其他端口發(fā)數(shù)據(jù)。所以當(dāng)一個(gè) Bridge 擁有一個(gè)網(wǎng)絡(luò)設(shè)備時(shí),如 bridge0 加入了 eth0 時(shí),實(shí)際上 bridge0 擁有兩個(gè)有效 MAC 地址,一個(gè)是 bridge0 的,一個(gè)是 eth0 的,他們之間可以通訊。由此帶來(lái)一個(gè)有意思的事情是,Bridge 可以設(shè)置 IP 地址。通常來(lái)說(shuō) IP 地址是三層協(xié)議的內(nèi)容,不應(yīng)該出現(xiàn)在二層設(shè)備 Bridge 上。但是 Linux 里 Bridge 是通用網(wǎng)絡(luò)設(shè)備抽象的一種,只要是網(wǎng)絡(luò)設(shè)備就能夠設(shè)定 IP 地址。當(dāng)一個(gè) bridge0 擁有 IP 后,Linux 便可以通過(guò)路由表或者 IP 表規(guī)則在三層定位 bridge0,此時(shí)相當(dāng)于 Linux 擁有了另外一個(gè)隱藏的虛擬網(wǎng)卡和 Bridge 的隱藏端口相連,這個(gè)網(wǎng)卡就是名為 bridge0 的通用網(wǎng)絡(luò)設(shè)備,IP 可以看成是這個(gè)網(wǎng)卡的。當(dāng)有符合此 IP 的數(shù)據(jù)到達(dá) bridge0 時(shí),內(nèi)核協(xié)議棧認(rèn)為收到了一包目標(biāo)為本機(jī)的數(shù)據(jù),此時(shí)應(yīng)用程序可以通過(guò) Socket 接收到它。一個(gè)更好的對(duì)比例子是現(xiàn)實(shí)世界中的帶路由的交換機(jī)設(shè)備,它也擁有一個(gè)隱藏的 MAC 地址,供設(shè)備中的三層協(xié)議處理程序和管理程序使用。設(shè)備里的三層協(xié)議處理程序,對(duì)應(yīng)名為 bridge0 的通用網(wǎng)絡(luò)設(shè)備的三層協(xié)議處理程序,即寄主 Linux 系統(tǒng)內(nèi)核協(xié)議棧程序。設(shè)備里的管理程序,對(duì)應(yīng) bridge0 寄主 Linux 系統(tǒng)里的應(yīng)用程序。
Bridge 的實(shí)現(xiàn)當(dāng)前有一個(gè)限制:當(dāng)一個(gè)設(shè)備被 attach 到 Bridge 上時(shí),那個(gè)設(shè)備的 IP 會(huì)變的無(wú)效,Linux 不再使用那個(gè) IP 在三層接受數(shù)據(jù)。舉例如下:如果 eth0 本來(lái)的 IP 是 192.168.1.2,此時(shí)如果收到一個(gè)目標(biāo)地址是 192.168.1.2 的數(shù)據(jù),Linux 的應(yīng)用程序能通過(guò) Socket 操作接受到它。而當(dāng) eth0 被 attach 到一個(gè) bridge0 時(shí),盡管 eth0 的 IP 還在,但應(yīng)用程序是無(wú)法接受到上述數(shù)據(jù)的。此時(shí)應(yīng)該把 IP 192.168.1.2 賦予 bridge0。
另外需要注意的是數(shù)據(jù)流的方向。對(duì)于一個(gè)被 attach 到 Bridge 上的設(shè)備來(lái)說(shuō),只有它收到數(shù)據(jù)時(shí),此包數(shù)據(jù)才會(huì)被轉(zhuǎn)發(fā)到 Bridge 上,進(jìn)而完成查表廣播等后續(xù)操作。當(dāng)請(qǐng)求是發(fā)送類型時(shí),數(shù)據(jù)是不會(huì)被轉(zhuǎn)發(fā)到 Bridge 上的,它會(huì)尋找下一個(gè)發(fā)送出口。用戶在配置網(wǎng)絡(luò)時(shí)經(jīng)常忽略這一點(diǎn)從而造成網(wǎng)絡(luò)故障。
VLAN device for 802.1.q
VLAN 又稱虛擬網(wǎng)絡(luò),是一個(gè)被廣泛使用的概念,有些應(yīng)用程序把自己的內(nèi)部網(wǎng)絡(luò)也稱為 VLAN。此處主要說(shuō)的是在物理世界中存在的,需要協(xié)議支持的 VLAN。它的種類很多,按照協(xié)議原理一般分為:MACVLAN、802.1.q VLAN、802.1.qbg VLAN、802.1.qbh VLAN。其中出現(xiàn)較早,應(yīng)用廣泛并且比較成熟的是 802.1.q VLAN,其基本原理是在二層協(xié)議里插入額外的 VLAN 協(xié)議數(shù)據(jù)(稱為 802.1.q VLAN Tag),同時(shí)保持和傳統(tǒng)二層設(shè)備的兼容性。Linux 里的 VLAN 設(shè)備是對(duì) 802.1.q 協(xié)議的一種內(nèi)部軟件實(shí)現(xiàn),模擬現(xiàn)實(shí)世界中的 802.1.q 交換機(jī)。
Linux 里 802.1.q VLAN 設(shè)備是以母子關(guān)系成對(duì)出現(xiàn)的,母設(shè)備相當(dāng)于現(xiàn)實(shí)世界中的交換機(jī) TRUNK 口,用于連接上級(jí)網(wǎng)絡(luò),子設(shè)備相當(dāng)于普通接口用于連接下級(jí)網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)在母子設(shè)備間傳遞時(shí),內(nèi)核將會(huì)根據(jù) 802.1.q VLAN Tag 進(jìn)行對(duì)應(yīng)操作。母子設(shè)備之間是一對(duì)多的關(guān)系,一個(gè)母設(shè)備可以有多個(gè)子設(shè)備,一個(gè)子設(shè)備只有一個(gè)母設(shè)備。當(dāng)一個(gè)子設(shè)備有一包數(shù)據(jù)需要發(fā)送時(shí),數(shù)據(jù)將被加入 VLAN Tag 然后從母設(shè)備發(fā)送出去。當(dāng)母設(shè)備收到一包數(shù)據(jù)時(shí),它將會(huì)分析其中的 VLAN Tag,如果有對(duì)應(yīng)的子設(shè)備存在,則把數(shù)據(jù)轉(zhuǎn)發(fā)到那個(gè)子設(shè)備上并根據(jù)設(shè)置移除 VLAN Tag,否則丟棄該數(shù)據(jù)。在某些設(shè)置下,VLAN Tag 可以不被移除以滿足某些監(jiān)聽(tīng)程序的需要,如 DHCP 服務(wù)程序。舉例說(shuō)明如下:eth0 作為母設(shè)備創(chuàng)建一個(gè) ID 為 100 的子設(shè)備 eth0.100。此時(shí)如果有程序要求從 eth0.100 發(fā)送一包數(shù)據(jù),數(shù)據(jù)將被打上 VLAN 100 的 Tag 從 eth0 發(fā)送出去。如果 eth0 收到一包數(shù)據(jù),VLAN Tag 是 100,數(shù)據(jù)將被轉(zhuǎn)發(fā)到 eth0.100 上,并根據(jù)設(shè)置決定是否移除 VLAN Tag。如果 eth0 收到一包包含 VLAN Tag 101 的數(shù)據(jù),其將被丟棄。上述過(guò)程隱含以下事實(shí):對(duì)于寄主 Linux 系統(tǒng)來(lái)說(shuō),母設(shè)備只能用來(lái)收數(shù)據(jù),子設(shè)備只能用來(lái)發(fā)送數(shù)據(jù)。和 Bridge 一樣,母子設(shè)備的數(shù)據(jù)也是有方向的,子設(shè)備收到的數(shù)據(jù)不會(huì)進(jìn)入母設(shè)備,同樣母設(shè)備上請(qǐng)求發(fā)送的數(shù)據(jù)不會(huì)被轉(zhuǎn)到子設(shè)備上??梢园?VLAN 母子設(shè)備作為一個(gè)整體想象為現(xiàn)實(shí)世界中的 802.1.q 交換機(jī),下級(jí)接口通過(guò)子設(shè)備連接到寄主 Linux 系統(tǒng)網(wǎng)絡(luò)里,上級(jí)接口同過(guò)主設(shè)備連接到上級(jí)網(wǎng)絡(luò),當(dāng)母設(shè)備是物理網(wǎng)卡時(shí)上級(jí)網(wǎng)絡(luò)是外界真實(shí)網(wǎng)絡(luò),當(dāng)母設(shè)備是另外一個(gè) Linux 虛擬網(wǎng)絡(luò)設(shè)備時(shí)上級(jí)網(wǎng)絡(luò)仍然是寄主 Linux 系統(tǒng)網(wǎng)絡(luò)。
需要注意的是母子 VLAN 設(shè)備擁有相同的 MAC 地址,可以把它當(dāng)成現(xiàn)實(shí)世界中 802.1.q 交換機(jī)的 MAC,因此多個(gè) VLAN 設(shè)備會(huì)共享一個(gè) MAC。當(dāng)一個(gè)母設(shè)備擁有多個(gè) VLAN 子設(shè)備時(shí),子設(shè)備之間是隔離的,不存在 Bridge 那樣的交換轉(zhuǎn)發(fā)關(guān)系,原因如下:802.1.q VLAN 協(xié)議的主要目的是從邏輯上隔離子網(wǎng)?,F(xiàn)實(shí)世界中的 802.1.q 交換機(jī)存在多個(gè) VLAN,每個(gè) VLAN 擁有多個(gè)端口,同一 VLAN 端口之間可以交換轉(zhuǎn)發(fā),不同 VLAN 端口之間隔離,所以其包含兩層功能:交換與隔離。Linux VLAN device 實(shí)現(xiàn)的是隔離功能,沒(méi)有交換功能。一個(gè) VLAN 母設(shè)備不可能擁有兩個(gè)相同 ID 的 VLAN 子設(shè)備,因此也就不可能出現(xiàn)數(shù)據(jù)交換情況。如果想讓一個(gè) VLAN 里接多個(gè)設(shè)備,就需要交換功能。在 Linux 里 Bridge 專門實(shí)現(xiàn)交換功能,因此將 VLAN 子設(shè)備 attach 到一個(gè) Bridge 上就能完成后續(xù)的交換功能??偨Y(jié)起來(lái),Bridge 加 VLAN device 能在功能層面完整模擬現(xiàn)實(shí)世界里的 802.1.q 交換機(jī)。
Linux 支持 VLAN 硬件加速,在安裝有特定硬件情況下,圖中所述內(nèi)核處理過(guò)程可以被放到物理設(shè)備上完成。
TAP 設(shè)備與 VETH 設(shè)備
TUN/TAP 設(shè)備是一種讓用戶態(tài)程序向內(nèi)核協(xié)議棧注入數(shù)據(jù)的設(shè)備,一個(gè)工作在三層,一個(gè)工作在二層,使用較多的是 TAP 設(shè)備。VETH 設(shè)備出現(xiàn)較早,它的作用是反轉(zhuǎn)通訊數(shù)據(jù)的方向,需要發(fā)送的數(shù)據(jù)會(huì)被轉(zhuǎn)換成需要收到的數(shù)據(jù)重新送入內(nèi)核網(wǎng)絡(luò)層進(jìn)行處理,從而間接的完成數(shù)據(jù)的注入。
當(dāng)一個(gè) TAP 設(shè)備被創(chuàng)建時(shí),在 Linux 設(shè)備文件目錄下將會(huì)生成一個(gè)對(duì)應(yīng) char 設(shè)備,用戶程序可以像打開(kāi)普通文件一樣打開(kāi)這個(gè)文件進(jìn)行讀寫。當(dāng)執(zhí)行 write()操作時(shí),數(shù)據(jù)進(jìn)入 TAP 設(shè)備,此時(shí)對(duì)于 Linux 網(wǎng)絡(luò)層來(lái)說(shuō),相當(dāng)于 TAP 設(shè)備收到了一包數(shù)據(jù),請(qǐng)求內(nèi)核接受它,如同普通的物理網(wǎng)卡從外界收到一包數(shù)據(jù)一樣,不同的是其實(shí)數(shù)據(jù)來(lái)自 Linux 上的一個(gè)用戶程序。Linux 收到此數(shù)據(jù)后將根據(jù)網(wǎng)絡(luò)配置進(jìn)行后續(xù)處理,從而完成了用戶程序向 Linux 內(nèi)核網(wǎng)絡(luò)層注入數(shù)據(jù)的功能。當(dāng)用戶程序執(zhí)行 read()請(qǐng)求時(shí),相當(dāng)于向內(nèi)核查詢 TAP 設(shè)備上是否有需要被發(fā)送出去的數(shù)據(jù),有的話取出到用戶程序里,完成 TAP 設(shè)備的發(fā)送數(shù)據(jù)功能。針對(duì) TAP 設(shè)備的一個(gè)形象的比喻是:使用 TAP 設(shè)備的應(yīng)用程序相當(dāng)于另外一臺(tái)計(jì)算機(jī),TAP 設(shè)備是本機(jī)的一個(gè)網(wǎng)卡,他們之間相互連接。應(yīng)用程序通過(guò) read()/write()操作,和本機(jī)網(wǎng)絡(luò)核心進(jìn)行通訊。
VETH 設(shè)備總是成對(duì)出現(xiàn),送到一端請(qǐng)求發(fā)送的數(shù)據(jù)總是從另一端以請(qǐng)求接受的形式出現(xiàn)。該設(shè)備不能被用戶程序直接操作,但使用起來(lái)比較簡(jiǎn)單。創(chuàng)建并配置正確后,向其一端輸入數(shù)據(jù),VETH 會(huì)改變數(shù)據(jù)的方向并將其送入內(nèi)核網(wǎng)絡(luò)核心,完成數(shù)據(jù)的注入。在另一端能讀到此數(shù)據(jù)。
網(wǎng)絡(luò)設(shè)置舉例說(shuō)明
為了更好的說(shuō)明 Linux 網(wǎng)絡(luò)設(shè)備的用法,下面將用一系列的例子,說(shuō)明在一個(gè)復(fù)雜的 Linux 網(wǎng)絡(luò)元素組合出的虛擬網(wǎng)絡(luò)里,數(shù)據(jù)的流向。網(wǎng)絡(luò)設(shè)置簡(jiǎn)介如下:一個(gè)中心 Bridge:bridge0 下 attach 了 4 個(gè)網(wǎng)絡(luò)設(shè)備,包括 2 個(gè) VETH 設(shè)備,1 個(gè) TAP 設(shè)備 tap0,1 個(gè)物理網(wǎng)卡 eth0。在 VETH 的另外一端又創(chuàng)建了 VLAN 子設(shè)備。Linux 上共存在 2 個(gè) VLAN 網(wǎng)絡(luò),既 vlan100 與 vlan200。物理網(wǎng)卡和外部網(wǎng)絡(luò)相連,并且在它之下創(chuàng)建了一個(gè) VLAN ID 為 200 的 VLAN 子設(shè)備。
從 vlan100 子設(shè)備發(fā)送 ARP 報(bào)文
當(dāng)用戶嘗試 ping 192.168.100.3 時(shí),Linux 將會(huì)根據(jù)路由表,從 vlan100 子設(shè)備發(fā)出 ARP 報(bào)文,具體過(guò)程如下:
·
1) 用戶 ping 192.168.100.3
·
·
2) Linux 向 vlan100 子設(shè)備發(fā)送 ARP 信息。
·
·
3) ARP 報(bào)文被打上 VLAN ID 100 的 Tag 成為 ARP@vlan100,轉(zhuǎn)發(fā)到母設(shè)備上。
·
·
4) VETH 設(shè)備將這一發(fā)送請(qǐng)求轉(zhuǎn)變方向,成為一個(gè)需要接受處理的報(bào)文送入內(nèi)核網(wǎng)絡(luò)模塊。
·
·
5) 由于對(duì)端的 VETH 設(shè)備被加入到了 bridge0 上,并且內(nèi)核發(fā)現(xiàn)它收到一個(gè)報(bào)文,于是報(bào)文被轉(zhuǎn)發(fā)到 bridge0 上。
·
·
6) bridge0 處理此 ARP@vlan100 信息,根據(jù) TCP/IP 二層協(xié)議發(fā)現(xiàn)是一個(gè)廣播請(qǐng)求,于是向它所知道的所有端口廣播此報(bào)文,其中一路進(jìn)入另一對(duì) VETH 設(shè)備的一端,一路進(jìn)入 TAP 設(shè)備 tap0,一路進(jìn)入物理網(wǎng)卡設(shè)備 eth0。此時(shí)在 tap0 上,用戶程序可以通過(guò) read()操作讀到 ARP@vlan100,eth0 將會(huì)向外界發(fā)送 ARP@vlan100,但 eth0 的 VLAN 子設(shè)備不會(huì)收到它,因?yàn)榇藬?shù)據(jù)方向?yàn)檎?qǐng)求發(fā)送而不是請(qǐng)求接收。
·
·
7) VETH 將請(qǐng)求方向轉(zhuǎn)換,此時(shí)在另一端得到請(qǐng)求接受的 ARP@vlan100 報(bào)文。
·
·
8) 對(duì)端 VETH 設(shè)備發(fā)現(xiàn)有數(shù)據(jù)需要接受,并且自己有兩個(gè) VLAN 子設(shè)備,于是執(zhí)行 VLAN 處理邏輯。其中一個(gè)子設(shè)備是 vlan100,與 ARP@vlan100 吻合,于是去除 VLAN ID 100 的 Tag 轉(zhuǎn)發(fā)到這個(gè)子設(shè)備上,重新成為標(biāo)準(zhǔn)的以太網(wǎng) ARP 報(bào)文。另一個(gè)子設(shè)備由于 ID 不吻合,不會(huì)得到此報(bào)文。
·
·
9) 此 VLAN 子設(shè)備又被 attach 到另一個(gè)橋 bridge1 上,于是轉(zhuǎn)發(fā)自己收到的 ARP 報(bào)文。
·
·
10) bridge1 廣播 ARP 報(bào)文。
·
·
11) 最終另外一個(gè) TAP 設(shè)備 tap1 收到此請(qǐng)求發(fā)送報(bào)文,用戶程序通過(guò) read()可以得到它。
·
網(wǎng)絡(luò)設(shè)備認(rèn)識(shí)介紹解析(三)
網(wǎng)絡(luò)設(shè)備及部件是連接到網(wǎng)絡(luò)中的物理實(shí)體。網(wǎng)絡(luò)設(shè)備的種類繁多,且與日俱增?;镜木W(wǎng)絡(luò)設(shè)備有:計(jì)算機(jī)(無(wú)論其為個(gè)人電腦或服務(wù)器)、集線器、交換機(jī)、網(wǎng)橋、路由器、網(wǎng)關(guān)、網(wǎng)絡(luò)接口卡(NIC)、無(wú)線接入點(diǎn)(WAP)、打印機(jī)和調(diào)制解調(diào)器。
中繼器 (Repeater)
中繼器是局域網(wǎng)互連的最簡(jiǎn)單設(shè)備,它工作在OSI體系結(jié)構(gòu)的物理層,它接收并識(shí)別網(wǎng)絡(luò)信號(hào),然后再生信號(hào)并將其發(fā)送到網(wǎng)絡(luò)的其他分支上。要保證中繼器能夠正確工作,首先要保證每一個(gè)分支中的數(shù)據(jù)包和邏輯鏈路協(xié)議是相同的。例如,在802.3以太局域網(wǎng)和802.5令牌環(huán)局域網(wǎng)之間,中繼器是無(wú)法使它們通信的。
但是,中繼器可以用來(lái)連接不同的物理介質(zhì),并在各種物理介質(zhì)中傳輸數(shù)據(jù)包。某些多端口的中繼器很像多端口的集線器,它可以連接不同類型的介質(zhì)。
中繼器是擴(kuò)展網(wǎng)絡(luò)的最廉價(jià)的方法。當(dāng)擴(kuò)展網(wǎng)絡(luò)的目的是要突破距離和結(jié)點(diǎn)的限制時(shí),并且連接的網(wǎng)絡(luò)分支都不會(huì)產(chǎn)生太多的數(shù)據(jù)流量,成本又不能太高時(shí),就可以考慮選擇中繼器。采用中繼器連接網(wǎng)絡(luò)分支的數(shù)目要受具體的網(wǎng)絡(luò)體系結(jié)構(gòu)限制。中繼器沒(méi)有隔離和過(guò)濾功能,它不能阻擋含有異常的數(shù)據(jù)包從一個(gè)分支傳到另一個(gè)分支。這意味著,一個(gè)分支出現(xiàn)故障可能影響到其它的每一個(gè)網(wǎng)絡(luò)分支。
集線器是有多個(gè)端口的中繼器。簡(jiǎn)稱HUB
網(wǎng)橋 (Birdge)
網(wǎng)橋工作于OSI體系的數(shù)據(jù)鏈路層。所以O(shè)SI模型數(shù)據(jù)鏈路層以上各層的信息對(duì)網(wǎng)橋來(lái)說(shuō)是毫無(wú)作用的。所以協(xié)議的理解依賴于各自的計(jì)算機(jī)。
網(wǎng)橋包含了中繼器的功能和特性,不僅可以連接多種介質(zhì),還能連接不同的物理分支,如以太網(wǎng)和令牌網(wǎng),能將數(shù)據(jù)包在更大的范圍內(nèi)傳送。網(wǎng)橋的典型應(yīng)用是將局域網(wǎng)分段成子網(wǎng),從而降低數(shù)據(jù)傳輸?shù)钠款i,這樣的網(wǎng)橋叫“本地”橋。用于廣域網(wǎng)上的網(wǎng)橋叫做“遠(yuǎn)地”橋。兩種類型的橋執(zhí)行同樣的功能,只是所用的網(wǎng)絡(luò)接口不同。生活中的交換機(jī)就是網(wǎng)橋。
路由器 (Router)
路由器工作在OSI體系結(jié)構(gòu)中的網(wǎng)絡(luò)層,這意味著它可以在多個(gè)網(wǎng)絡(luò)上交換和路由數(shù)據(jù)數(shù)據(jù)包。路由器通過(guò)在相對(duì)獨(dú)立的網(wǎng)絡(luò)中交換具體協(xié)議的信息來(lái)實(shí)現(xiàn)這個(gè)目標(biāo)。比起網(wǎng)橋,路由器不但能過(guò)濾和分隔網(wǎng)絡(luò)信息流、連接網(wǎng)絡(luò)分支,還能訪問(wèn)數(shù)據(jù)包中更多的信息。并且用來(lái)提高數(shù)據(jù)包的傳輸效率。
路由表包含有網(wǎng)絡(luò)地址、連接信息、路徑信息和發(fā)送代價(jià)等。路由器比網(wǎng)橋慢,主要用于廣域網(wǎng)或廣域網(wǎng)與局域網(wǎng)的互連。
橋由器(Brouter)
Brouter 是網(wǎng)橋和路由器的合并。
網(wǎng)關(guān)(Gatway)
網(wǎng)關(guān)把信息重新包裝的目的是適應(yīng)目標(biāo)環(huán)境的要求。
網(wǎng)關(guān)能互連異類的網(wǎng)絡(luò), 網(wǎng)關(guān)從一個(gè)環(huán)境中讀取數(shù)據(jù),剝?nèi)?shù)據(jù)的老協(xié)議,然后用目標(biāo)網(wǎng)絡(luò)的協(xié)議進(jìn)行重新包裝。
網(wǎng)關(guān)的一個(gè)較為常見(jiàn)的用途是在局域網(wǎng)的微機(jī)和小型機(jī)或大型機(jī)之間作翻譯。
網(wǎng)關(guān)的典型應(yīng)用是網(wǎng)絡(luò)專用服務(wù)器。
其他
個(gè)人計(jì)算機(jī):典型的個(gè)人計(jì)算機(jī)就是個(gè)體用戶所擁有的桌面計(jì)算機(jī)、工作站或筆記本電腦。微型計(jì)算機(jī)的最常見(jiàn)的類型就是個(gè)人計(jì)算機(jī),應(yīng)用于大多數(shù)的組織機(jī)構(gòu)之中。
服務(wù)器:網(wǎng)絡(luò)上,儲(chǔ)存了所有必要信息的計(jì)算機(jī)或其它網(wǎng)絡(luò)設(shè)備,專用于提供特定的服務(wù)。例如,數(shù)據(jù)庫(kù)服務(wù)器中儲(chǔ)存了與某些數(shù)據(jù)庫(kù)相關(guān)的所有數(shù)據(jù)和軟件,允許其它網(wǎng)絡(luò)設(shè)備對(duì)其進(jìn)行訪問(wèn),并處理對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。文檔服務(wù)器就是計(jì)算機(jī)和儲(chǔ)存設(shè)備的組合,專用于供該網(wǎng)絡(luò)上的任何用戶將文檔儲(chǔ)存到服務(wù)器中。打印服務(wù)器就是對(duì)一臺(tái)或多臺(tái)打印機(jī)進(jìn)行管理的設(shè)備,而網(wǎng)絡(luò)服務(wù)器就是對(duì)網(wǎng)絡(luò)傳輸進(jìn)行管理的計(jì)算機(jī)。
網(wǎng)卡:網(wǎng)絡(luò)接口卡(NIC)是計(jì)算機(jī)或其它網(wǎng)絡(luò)設(shè)備所附帶的適配器,用于計(jì)算機(jī)和網(wǎng)絡(luò)間的連接。每一種類型的網(wǎng)絡(luò)接口卡都是分別針對(duì)特定類型的網(wǎng)絡(luò)設(shè)計(jì)的,例如以太網(wǎng)、令牌網(wǎng)、FDDI或者無(wú)線局域網(wǎng)。網(wǎng)絡(luò)接口卡(NIC)使用物理層(第一層)和數(shù)據(jù)鏈路層(第二層)的協(xié)議標(biāo)準(zhǔn)進(jìn)行運(yùn)作。網(wǎng)絡(luò)接口卡(NIC)主要定義了與網(wǎng)絡(luò)線進(jìn)行連接的物理方式和在網(wǎng)絡(luò)上傳輸二進(jìn)制數(shù)據(jù)流的組幀方式。它還定義了控制信號(hào),為數(shù)據(jù)在網(wǎng)絡(luò)上進(jìn)行傳輸提供時(shí)間選擇的方法。
集線器:集線器是最簡(jiǎn)單的網(wǎng)絡(luò)設(shè)備。計(jì)算機(jī)通過(guò)一段雙絞線連接到集線器。在集線器中,數(shù)據(jù)被轉(zhuǎn)送到所有端口,無(wú)論與端口相連的系統(tǒng)是否安計(jì)劃好要接收這些數(shù)據(jù)。除了與計(jì)算機(jī)相連的端口之外,即使在一個(gè)非常廉價(jià)的集線器中,也會(huì)有一個(gè)端口被指定為上行端口,用來(lái)將該集線器連接到其它的集線器以便形成更大的網(wǎng)絡(luò)。
交換機(jī):交換機(jī)是第二層、多端口設(shè)備。交換機(jī)提供與集線器或網(wǎng)橋類似的功能,但擁有更多的先進(jìn)性能,能夠?qū)θ我鈨蓚€(gè)端口進(jìn)行臨時(shí)連接。它包含一個(gè)交換矩陣或交換結(jié)構(gòu)能夠用于迅速地連接端口或切斷端口間的連接。與集線器不同的是,交換機(jī)僅將信息幀從一個(gè)端口傳送到目標(biāo)節(jié)點(diǎn)所在的其它端口,而不會(huì)向所有其它的端口廣播。
路由器:路由器在網(wǎng)絡(luò)上將數(shù)據(jù)從發(fā)送者發(fā)送給接收者。路由器能夠確定數(shù)據(jù)的目的地址并能夠確定傳輸數(shù)據(jù)的最佳路徑。與網(wǎng)橋和交換機(jī)不同之處在于,網(wǎng)橋和交換機(jī)利用硬件上配置的MAC地址來(lái)確定數(shù)據(jù)的目的地址,而路由器利用邏輯網(wǎng)絡(luò)地址,如IP地址,來(lái)作出相應(yīng)的決定。
網(wǎng)關(guān):網(wǎng)關(guān)這一術(shù)語(yǔ)用來(lái)指任何設(shè)備、系統(tǒng)或軟件應(yīng)用程序,它們能夠起到將數(shù)據(jù)從一種格式轉(zhuǎn)化成另一種格式的功能。網(wǎng)關(guān)并不會(huì)改變數(shù)據(jù)本身。例如:從技術(shù)角度來(lái)說(shuō),能夠?qū)?shù)據(jù)從IPX網(wǎng)絡(luò)傳送到IP網(wǎng)絡(luò)的路由器就是一個(gè)網(wǎng)關(guān)。同樣地,能夠在以太網(wǎng)和令牌網(wǎng)之間往返傳輸數(shù)據(jù)的解析型交換機(jī)也可被稱為網(wǎng)關(guān)。
調(diào)制解調(diào)器:調(diào)制解調(diào)器是一種接入設(shè)備,將計(jì)算機(jī)的數(shù)字信號(hào)轉(zhuǎn)譯成能夠在常規(guī)電話線中傳輸?shù)哪M信號(hào)。調(diào)制解調(diào)器在發(fā)送端調(diào)制信號(hào)并在接收端解調(diào)信號(hào)。許多接入方式都離不開(kāi)調(diào)制解調(diào)器,如56k的調(diào)制解調(diào)器、ISDN、DSL等。它們可以為內(nèi)部設(shè)備,插在系統(tǒng)的擴(kuò)展槽中;或外部設(shè)備,插在串口或USB端口中;或膝上電腦所用的PCMCIA板;或?qū)橹T如手提電腦等系統(tǒng)中使用而設(shè)計(jì)的設(shè)備。另外,許多膝上電腦都配備了集成調(diào)制解調(diào)器。還提供了機(jī)架式調(diào)制解調(diào)器供大范圍地使用調(diào)制解調(diào)器,如ISP。