準備材料:
- 三個沒有聯網的樹莓派,所裝系統爲centos7;
- 一個交換機;
- MacBook一臺;
- 正常連接外網的無線路由器一臺;
- 網線若干,根據具體情況可能還需要準備網線轉接頭;
網絡組成示例
感覺光文字描述不直觀,我隨便畫了個示意圖,大概如上圖所示:
- 三個樹莓派通過灰色的網線、交換機和MacBook組建成一個通信子網;
- MacBook通過無線(Wi-Fi)、路由器、其他個人電腦組成了另外一個通信子網;
對於交換機來說,交換機不會像路由器一樣自動分配IP地址,我們通過網線、交換機進行連接的時候,此時雖然物理上產生鏈接了,但實際上並沒有產生通信子網。
我們知道網絡連接從功能上劃分來說,分爲七層,自頂向下分別爲:
- 第七層:應用層;
- 第六層:表示層;
- 第五層:會話層;
- 第四層:傳輸層;
- 第三層:網絡層;
- 第二層:數據鏈路層;
- 第一層:物理層;
此時我們只是搭好物理層、數據鏈路層,所以網絡並不會產生通路;IP協議層屬於網絡層,由於交換機不會自動分配IP地址,所以此時我們需要給主機配置IP地址,建立網絡層。這些層建好後,其他更上層的協議由操作系統進行實現,我們此時不做關注。
具體流程
樹莓派的配置
- 啓動網卡
ifconfig eth0 up
說明:啓用名稱爲eth0的網卡,通常來說,樹莓派也是有無線網絡的,我們在安裝系統的時候,進行初始化的時候如果沒有選擇網絡,通常網卡是沒有啓動的。可以通過
ifconfig -a
進行查看有哪些網卡,然後根據具體情況進行網卡啓動,對應的關閉網卡命令爲:
ifconfig eth0 down
- 配置IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
說明:此處根據具體情況,進行網卡配置文件的修改,具體可以到/etc/sysconfig/network-scripts/
目錄進行查看;
- 修改的配置文件內容
ONBOOT=yes # 開機啓動
NM_CONTROLLED=yes
BOOTPROTO=static # IP地址方式設置爲靜態IP
IPADDR=192.168.2.1 # IP地址
NETMASK=255.255.255.0 # 子網掩碼,默認爲這個,不同的子網掩碼能用的地址數不同
GETEWAY=192.168.2.10 # 默認網關先填這個
主要是配置以上幾個參數,具體IP地址根據具體情況配置,依葫蘆畫瓢,分別設置其他幾臺樹莓派的IPADDR
地址爲:
192.168.2.2
192.168.2.3
- 重啓網絡
service network restart
正常情況下,當我們給三臺主機連上後,三臺主機相互進行ping
是能ping
得通的,但此時我們的MacBook
是ping
不同其他三臺主機的;
MacBook的配置
如圖所示,我們打開macOS的網絡設置如圖,一般來說,當我們的MacBook與交換機連上了後,此時的USB 10/....
這個網卡是綠色的,表示啓用。我寫這篇文章的時候不是在連接的情況下寫的,所以是紅色的。
配置IPV4的時候,我們選擇手動
.
然後分別把IP地址、子網掩碼、路由器分別配置爲:
192.168.2.10
255.255.255.0
192.168.2.10
然後點擊應用
按鈕生效,正常的話,此時我們在MacBook上ping
其他主機是能ping
得通的;
好了,我們整個通信子網組建好了,整套網絡之間也能互相訪問,但是網絡的通信機制決定了,不同網段的通信需要做路由器進行數據轉發,具體的網絡基礎知識如果有疑問的話,可以通過搜索引擎搜索“子網掩碼 IP地址 網關”進行了解。而對於子網來說,我們如果不能直接訪問外網的話,通常我們在做程序安裝的時候會帶來諸多不便,也會產生諸多麻煩事。所以,此時我們就需要MacBook起到一個路由的作用。
MacBook配置數據轉發
- 在
設置
頁點擊 按鈕; - 選擇“互聯網共享”
- 共享來源選擇“Wi-Fi”
- 共享給電腦選擇“USB 10/100/1000 LAN”,這個地方根據具體情況選擇,要看交換機連接的是MacBook的哪一張網卡;
此時,正常來說,我們的MacBook就實現了網絡轉發功能,在子網的主機上可以直接上網了;但是,當我們嘗試着ping segmentfault.com
的時候卻發現ping
不通;而我們可以隨便找個外網的IP進行ping
,是能ping得通的;如果出現這種情況,那麼通常來說就是DNS需要配置;
子網主機配置DNS
vi /etc/resolv.conf
寫入配置
nameserver 8.8.8.8
nameserver 114.114.114.114
重啓子網主機的網絡
service network restart
此時我們再來嘗試
ping segmentfault.com
或者
yum search nginx
都能正常的進行網絡交互了。
總結
整體來說,我們做過的事情其實主要就是4件事情:
- 網絡物理層的連接;
- IP地址配置;
- 路由轉發配置;
- DNS配置;
而對於理解爲什麼需要做這些步驟,那麼就需要理解網絡七層協議的工作流程,理解網絡的構建形式以及計算機系統是怎麼實現這些協議的,然後纔可以在不同的計算機上進行網絡配置。