簡單來說就是把很多台電腦用網路線或是 WIFI 串連在一起就是所謂的網路了
可以比喻為一個送信的過程
網路也是一樣的概念,假設要去瀏覽 Google 這個網站
跟 IP 的差異是 IP 是可以變動的, Mac Address 是固定的,所以在區域網路裡面是檢查 Mac Address 的,而不是 IP Address
在古代沒有 Switch 的時候, 適用 Hub 來連接多台電腦,但是 Hub 是沒有腦袋的,他會把信送給所有人,每台電腦會檢查 Mac Address 看那封信是不是寄給自己的,如果是就接收,如果不是就丟掉
在有 Switch 後就只會把信送給對的人
但在我們瀏覽網頁是用 IP Address 來找到對方的,要找到對方的 Mac Address 就要用 ARP 協定
會有一個 ARP Table 來記錄對方的 Mac Address,固定一段時間後會清理和更新
會不會有資安問題?
會的,如果在我問目標的 Mac Address 時,有壞人騙我說他是目標的 Mac Address,這樣就會把信送給壞人,這就是 ARP Spoofing
Lab 關掉了不能玩 😥
sudo tcpdump -Ai eth1
tcpdump 去聽封包的內容, -A
是把封包的內容顯示出來, -i
是指定網卡
sudo arpspoof -i eth1 -t 192.168.111.1 192.168.111.2
這個指令就會幫你實作 ARP Spoofing 把 192.168.111.1
要傳給 192.168.111.2
的封包攔截
上下最不同的是,上面的送的人是區域網路,下面的是送給區域外的人,所以他是要經過 Router 來轉發的
一樣用寄信來比喻
上下最大的差異就是在區域內還是區域外,在網路內也是一樣的,要怎沒看是在區域內外等等會講
可以通過判斷目標 IP 是否是寄給 Default Gateway 來判斷是區域內還是區域外
如何知道來源 IP 和目標 IP 是不是在同一個網段?
把 Address 和 Netmask 的二進制做 AND 運算,就會是 Network ID ,俗果兩個 Network ID 一樣就是在同一個網段 (所以如果 netmask 是 255.255.255.0
的話其實就看 IP 前九碼是不是都一樣就知道是不是在同區域,如果 netmask 是 255.255.0.0
就看 IP 前六碼)
/24
的意思 255.255.255.0
轉成二進制是 11111111.11111111.11111111.00000000
,因為有 24 個 1,就表示成 /24
資料送到 router 時, router 會根據上面的路由表傳送 packet ,路由會根據他的路由地圖來決定要傳送給誰(就像我們可以利用 mtr 看到我們資料是怎麼傳送目標的)
上面這個就是路由表,如果是 192.168.20.5 就會通過 192.168.20.2 出去
router table 會以 netmask 最長的為優先
default gateway 就是 0.0.0.0/0
的縮寫,那如果沒有 default gateway 就會找不到路徑,就會出現 Destination Host Unreachable
就是直接丟過去,不管有沒有真的收到
如果需要可靠信傳送,要是資料很大用 UDP 傳過去可能就會很破碎,TCP 就會每次都確認有沒有收到,有收到後才會傳下一個
因為 TCP 的效能有點差,現在有一個叫做 QUIC 的協定,他是基於 UDP 的,但是他有 TCP 的功能,所以效能會比較好
因為一台電腦上有很多程式,所以要用 Port 來區分,每個服務都有自己的 Port,像是 HTTP 預設是 80,HTTPS 是 443
現今 IPv4 最嚴重的問題,就是 IP 數量不夠用,因為 IP 最多就只有 2^32
個,也就是 4,294,967,296
個,而且還有一些 IP 是不能用的,很明顯不可能讓地球上每個人都能用,這樣就會有些人沒有辦法用網路,所以就有兩個辦法