Kubernetes CKA課程筆記 19

基本網路概論

ZONGRU Li
8 min readOct 16, 2021

由問題發想:

  1. 電腦網路如何運作?
  2. 電腦如何連接到網路?
  3. 什麼是IP,什麼是PORT?

首先介紹:LAN,Switch,Router,WAN,Gateway

LAN(Local Area Network):

  • 可能是一個住家(或學校)等物理區域內的各種電子元件(手機,影印機,電腦等)連結在一起所形成的網路
  • 其中每一個電子元件都有唯一的IP(IP : Internet Protocol)
  • 電子元件間溝通即透過IP地址

Switch:

  • LAN網路內,電子元件間如何認得對方IP,或如何傳遞訊息,仰賴Switch
  • 所以Switch定義是在LAN裡面的一個裝置
  • 協助連接LAN中的電子元件,因為Switch會認得所有LAN中的電子元件IP用以協助不同電子元件間溝通

那接下來疑問題是如何連接到網路,例如連到LAN外部的FB Server?

Router:

  • 介於LAN與外部網路(Outside networks(WAN))中間的裝置
  • 例如LAN內的手機要連至FB Server
  • 首先手機會發送"請求"會先送往Router
  • 接著Router再將”請求”送往FB Server
  • 並且RouterIP位置又可以被稱之為Gateway(概念如下圖)

再來要問到,當LAN之中如手機發動"請求"給另一個電子元件

到底怎麼知道這個被請求的電子元件是在LAN內部還是外部?

Subnet:

  • 上面問題的答案其實是目標電子元件的IP是多少來決定的(詳下方解釋)
  • 首先上面提過LAN之內的各個IP位置都是唯一
  • 並且這個LAN之內的IP其實是在相同範圍IP位置
  • (如下圖最後一個123.123.123.X這個一個X位置的數字差異,但是也可能是123.123.X.X總共兩個X位置的差異,看下面解釋:Subnet Mask)
  • 並且這個有範圍的IP位置又被稱為Subnet
  • (Subnet : logical subdivision of an IP network) 或稱
  • (Subnetting : process of dividing a network into two or more networks)
三個電子元件各自唯一的IP都在172.16.0.X範圍內

範例解說IP位置範圍(IP address range):

以下是一個LAN之中的IP位置範圍的樣子,會有如下兩組IP組成

(windows用ipconfig指令可以查看)

前面192.168.0.0 後面255.255.255.0

其中前面那一組192.168.0.0就是實際的IP位置

並且前面這個IP位置可以是在範圍:192.168.0.0 ~ 192.168.0.255之間任意

並且該範圍(192.168.0.0 ~ 192.168.0.255)都屬於同一個LAN

此時後面那個255.255.255.0的部分則是Subnet Mask

255.255.255.0為Subnet Mask情況下代表前三個數字固定,僅第四個可浮動

亦即前面實際IP: 192.168.0這前三組數字固定

可以想像成192.168.0這三組數字被255.255.255遮擋,僅剩最後一個數字浮動

但是Subnet Mask也可能是:255.255.0.0

上述狀況表示實際IP則是192.168固定,所以IP範圍可以是:

192.168.0.0 ~ 192.168.255.255之間(或是這樣寫:192.168.x.x)

所以我們可以將Subnet Mask分類為如下:

第一種255.255.0.0的Subnet Mask:8+8=16 bits fixed

第二種255.255.255.0的Subnet Mask:8+8+8 = 24 bits fixed

亦即Subnet Mask

255的數字為固定八位元

0的數字為自由的範圍區

換句話說Subnet Mask決定了多少bits的IP位置被固定

針對這個機制還有另一稱呼:

CIDR(Classless Inter-Domain Routing) Block

並寫為以下形式:

192.168.0.0/16192.16.0.0/24(也就是16bits被固定或24bits固定)

Recap一下上述概念與原本的問題:

LAN之內的IP顯示為192.16.0.0 255.255.0.0

LAN之中某IP(192.168.1.11)電子元件發請求IP(192.168.1.20)則如下

IP在範圍內,所以一定也是內部電子元件

如果IP(192.168.1.11)元件發請求77.50.166.2則如下

不符合範圍,所以往外跑

所以任何電子元件做網路溝通都需要三樣資料:

  1. IP Address
  2. Subnet
  3. Gateway

Network Address Translation(NAT):

由上面描述概念,一個住家/學校/甚至公司的網路都屬於一個LAN

並且在LAN之內的電子元件IP都是在一個範圍內

但是一間學校的LAN中的IP範圍,不就可能跟另一間公司LAN的範圍

有機會重疊?

答案是某個LAN之中的電子元件的IP其實是外部看不到的

所以不同LAN之中IP重疊也沒關係

實際屬於LAN之內的範圍IP內的電子元件發動請求到FB Server會是如下

NAT好處:

  1. 安全地保護LAN中的IP
  2. 重複利用IP

(不同LAN中使用到相同範圍的IP是OK的!)

公司內同一個LAN中的IP範圍又可稱為"IPv4"

如上介紹最大範圍就是0.0到255.255

Firewall:

  • 考量在LAN內部有架設APP Server提供服務
  • 外部電腦向LAN內的APP發動請求
  • 這個請求溝通可否允許打進LAN裡面跟APP溝通
  • 則是由Firewall(防火牆)決定
  • Firewall是一組規則針對未授權的access來保護網路
  • 設置Firewall Rules可決定哪些請求可以允許通過
  • 透過Firewall Rules可以設置來源IP可以允許通過
  • 甚至可以決定到防火牆後的哪一台Server
  • 當然如果是公開Web APP,也可以允許任何外部電子元件打進來APP Server
  • 其中Firewall Rules內還要決定是哪個PORT是允許打進Server的,又或說外部電子元件可以透過哪個PORT進去內部APP Server

什麼是PORT?

PORT:

  • 每個電子元件(電腦或Server等)都有一組PORT
  • 可以允許使用特定的PORTS(就像門doors) 或是
  • 可以允許使用特定的PORTS(就像門doors),並且只允許特定IP位置(客人)
  • 例如許多APP使用PORT:80,所以通常會開80 PORT允許通過
  • 例如可能是一般住家電腦請求到FB Server走80 PORT
  • 防火牆有開80 PORT通過到達FB Server
  • 就允許由80 PORT進到FB內部Server
  • 常見的Server也都有預設常見使用的PORT
  • Web Server(80),Mysql DB(3306),PostgresQL DB(5432)…etc
  • 每個電子元件上的PORT都是唯一的,所以不能重用使用PORT
  • 如果有第二個應用程式啟動使用到同一個PORT
  • 則可能會拋出PORT XXXX was already in use等錯誤!
  • 亦即Firewall可以管控電子元件IP位置的哪個PORT可以被進入所
  • 以又可稱作(Port Forwarding)

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet