基本概念
互聯網 (internet)
互聯網就是各種終端通過轉發設備(交換機,路由器)進行環型的連接形成一個圖的結構,使之每個設備都能夠互相連通,如下圖:

計算機之間的連接方式
- 同台電腦直連
- 同軸電纜(Coaxial)
- 集線器(hub)
- 網橋(Bridge)
- 交換機(Swtch)
- 路由器(Router)
上面的設備都是用於連接終端設備的,發展使也是從上往下
RJ45接口 與 網線

直通線與交叉線
-
直通線:接口兩端同樣的顏色會對應同一個接口位
-
交叉線:有些線的位置需要調整,如下圖

同台電腦直連
直接使用網線將兩台PC連接,需要使用 直通線
同軸電纜(Coaxial)


特點
- 半雙工通信(發送和接收不能同時進行)
- 容易沖突
- 不安全
- 中間斷了,整個網絡都癱瘓
集線器(hub)

用於連接多台PC終端,所有PC都需要在同一網段
特點
- 半雙工通信(發送和接收不能同時進行)
- 容易沖突
- 不安全
- 和同軸電纜一樣:沒有智商
網橋(Bridge)

主要用於隔絕沖突域,連接2邊的集線器,能夠通過自學習得到每個接口那側的MAC地址
所以它會緩存兩邊的PC的MAC地址,當發起ARP(Address Resolution Protocol 地址解析協議)的時候就不需要再去廣播了,所以說它是有智商的
交換機(Switch)


特點
- 相當於接口更多的網橋
- 全雙工通信(可以同時接和收)
- 比集線器安全
- 智能
路由器(Router)

特點
- 隔絕廣播域
- 可以在不同網段之間轉發數據
- 路由器兩端也必須是不同網段
網線直連、同軸電纜、集線器、網橋、交換機
-
連接的設備必需在同一網段
-
連接的設備處在同一廣播域(廣播是針對同一網段的)
MAC地址、IP地址
MAC地址

- 每個網卡都有一個唯一6字節(48bit)的MAC地址(
Media Access Control Address) - 全球唯一,固化在網卡的ROM中,由IEEE802標准規定
- 前3字節:OUI(Orgnaizationally Unique Identifier),組織唯一標識符,由IEEEE的注冊管理機構分析給廠商
- 后3字節:網絡接口標識符,由廠商自行分配
OUI查詢
http://standards-oui.ieee.org/oui/oui.txt
MAC地址表示格式
- Windows
- 60-38-78-10-8C-34
- Linux、Android、Mac、iOS
- 60:38:78:10:8C:34
- Packet Tracer
- 6038.7810.8C34
- 當48位全為1時,代表廣播地址
- FF-FF-FF-FF-FF-FF
MAC地址操作
- 查看MAC地址
- windows: ipconfig /all
- linux: ifconfig
- 修改MAC地址
- 更改適配器選項 -> 屬性 -> 配置 -> 高級 -> 網絡地址
- 填寫時需要把減號(-)去掉

MAC地址的獲取
- 當不知道對方主機的MAC地址時,可以通過發送
ARP廣播獲取對方的MAC地址- 獲取成功后,會緩存IP地址、MAC地址的映射信息,俗稱:ARP緩存
- 通過ARP廣播獲取的MAC地址,屬於動態(dynamic)緩存
- 存儲時間比較短(默認是2分鍾),過期后自動刪除
- 相關命令
- arp -a [主機地址]: 查詢當前設備或指定IP的ARP緩存
- arp -d [主機地址]: 刪除AR緩存
- arps -s 主機地址 MAC地址: 手動增加一條ARP緩存,屬於靜態緩存,不同系統存儲時長不同
ARP欺騙
ARP攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊

攻擊主機PC2發送ARP應答包給被攻擊主機PC1和網關,分別修改它們的ARP緩存表, 將它們的ip地址所對應的MAC地址,全修改為攻擊主機PC2的MAC地址,這樣它們之間數據都被攻擊主機PC2截獲
簡單描述:
我是PC2,PC1是被攻擊者,我通過ARP包告訴網關我是PC1,告訴PC1我是網關,這樣他們發送的數據就都會發給我,從而實現數據攔截(可以實現對目標進行限速等操作)
IP地址

-
IP地址(Internet Protocol Address):互聯網上的每一個主機都有一個IP地址
-
最初是IPv4版本,32bit(4字節),2019年11月25日,全球的IP地址已經用完
-
后面推出了IPv6版本,128bit(16字節),目前使用的還是IPv4,特殊地方才用IP6
-
IP地址的組成
- IP地址由2部分組成:網絡標識(網絡ID)、主機標識(主機ID)
- 通過子網掩碼(subnet mask)可以得到網絡ID、主機ID
- 主機所在的網段:子網掩碼 & IP地址
- 計算機再與其它計算機通信前,會先判斷是否在同一網段
- 同一網段:不需要路由器進行轉發
- 不同網段:需要路由器進行轉發
網段計算

上面的IP地址與子網掩碼計算的網段為:192.168.1.0
&操作
只有當兩個都為1的時候才為1,其它為0
IP地址的分類
-
A類地址:子網掩碼默認是255.0.0.0

-
B類地址:子網掩碼默認是255.255.0.0

-
C類地址:子網掩碼默認是255.255.255.0

-
D類地址:以1110開頭,多播地址
-
E類地址:以1111開頭,保留為今后使用
注
- 只有A\B\C類地址才能分配給主機
- 主機ID為全0,表示主機所在的網段
- 主機ID為全1 ,表示主機所在的網段所有主 要(用於廣播)
- 使用ping廣播地址可以實現獲取當前網段內的所有在線主機
A類地址

- 網絡ID
- 0不能用,127作為保留網段。其中 127.0.0.1 是本地環回地址(Loopback),代表本地地址
- 1~126 為可以分配給主機用
- 主機ID
- 第2、3、4部分的取值范圍:0~255
- A類網絡最大能容納主機數:256 * 256* 256 - 2 = 2的24次方 - 2 = 16777214
- 減2原因:0不能用,網段不能用
B類地址

- 網絡ID
- 可分配給主機的
- 第1部分:128~191
- 第2部分:0~255
- 可分配給主機的
- 主機ID
- 第3、4部分的取值范圍:0~255
- B類網絡最大能容納主機數:256 * 256 - 2 = 2的16次方 - 2 = 65534
C類地址

- 網絡ID
- 可分配給主機的
- 第1部分:192~223
- 第2、3部分:0~255
- 可分配給主機的
- 主機ID
- 第4部分的取值范圍:255
- B類網絡最大能容納主機數:256 - 2 = 254
D類地址

- 沒有子網掩碼,用於多播(組播)地址
- 第1部分取值范圍:224~239
E類地址

-
沒有子網掩碼,用於多播(組播)地址
-
第1部分取值范圍:240~255
子網掩碼的CIDR表示方法
- CIDR (Classless Inter-Domain Routing):無類別域間路由
- 子網掩碼的CIDR表示方法
- 192.168.1.100/24,代表子網掩碼為 24個1,也就是 255.255.255.0
- 123.210.100.200/16,代表子網掩碼為 16個1,也就是 255.255.0.0
- 計算工具
子網划分
為什么要進行子網划分
-
200台主機在同一網段,分配一個C類網段,如:192.168.1.0/24
- 共254個可用IP地址:192.168.1.1~192.168.1.254
- 多出54個空閑的IP地址,這到不算浪費
-
如果 500台主機在同一網段,分配一個B類網段,如:191.100.0.0/16
- 共65534個可用IP地址:191.100.0.1~191.100.255.254
- 多出65034個空閑的IP地址,這種情況屬於極大的浪費資源
-
為了避免浪費IP地址資源,就需要進行子網划分
如何子網划分
- 借用主機位做子網位,划分出多個子網
- 2種划分方式
- 等長子網划分:將一個子網划分成多個子網,並且每個子網可用IP地址數一樣
- 變長子網划分:划分成多個可用IP地址不一樣的子網
- 子網在線划分器:http://www.ab126.com/web/3552.html
- 子網划分步驟:
- 確定子網的子網掩碼長度
- 確定子網中第1個、最后1個主機可用IP地址
等長子網划分
等分成2個子網

上圖是將 192.168.0.0/24 C類網段划分成兩個子網
-
A子網
- 可用IP地址:192.168.0.1 ~ 192.168.0.126 (0 和 127 不能用,0是網段,127是廣播地址)
-
B子網
- 可用IP地址:192.168.0.129 ~ 192.168.0.254(128 和 255 不能用,128是網段,255是廣播地址)
-
2個網段的子網掩碼都是:255.255.255.128/25,每個網段可用主機數為:126
算法解析
如上圖,將網絡位往主機部借1位時,主機部分可用的位數就只有7位,此時網絡部分可分為 :
- A子網:192.168.0|0
- B子網:192.168.0|1
主機部分全0和全1是不能做為可用IP地址的,全0是網段,全1就是廣播地址
- A子網的主機部分可用IP就是 0|0000001 ~ 0|1111110 (1~126)
- B子網的主機部分可用IP就是 1|0000001 ~ 1|1111110 (129~254)
- 注:雖然向主機位借位,但計算主機IP個數時還是按之前的8位來算,需要加上被借的那1位
等分成4個子網

- A子網:192.168.0.1 ~ 192.168.0.62
- B子網:192.168.0.65 ~ 192.168.0.126
- C子網:192.168.0.129 ~ 192.168.0.190
- D子網:192.168.0.193 ~ 192.168.0.254
- 4個子網的子網掩碼都是:255.255.255.192/26,每個網段可用主機數:62
等分成8個子網

-
A子網:192.168.0.1~192.168.0.30
-
B子網:192.168.0.33~192.168.0.62
-
C子網:192.168.0.65~192.168.0.94
-
D子網:192.168.0.97~192.168.0.126
-
E子網:192.168.0.129~192.168.0.158
-
F子網:192.168.0.161~192.168.0.190
-
G子網:192.168.0.193~192.168.0.222
-
H子網:192.168.0.225~192.168.0.254
-
8個子網的子網掩碼都是:255.255.255.224/27,每個網段可用主機數:30
規律
如果一個子網是是原來網絡2/1,子網掩碼往后移1位就行,如果是4/1,移2位,是8/1,移3位,簡單點就是 移幾位就是2的幾次方
-
1位 = 2^1 = 2
-
2位 = 2^2 = 4
-
3位 = 2^3 = 8
變長子網划分
- 等長子網划分是每個子網都使用 **相同 **的子網掩碼
- 變長子網划分是每個子網都使用 **不同 **的子網掩碼
例子
對 192.168.100.0/24 網段進行變長子網划分,需要主機數分別為 A: 80,B: 50,C: 24,D: 10 不同數量的網段,如果使用等長子網划分,划分成4個網段,那樣每個網段的主機數只有 62個,不滿足 80 個主機的要求,此時就可以使用變長子網划分
步驟:
- 滿足A:先將 192.168.100.0/24 往后移一位,划分出 192.168.100.0/25 與 192.168.100.128/25 兩個網段,將 192.168.100.0/25 網段的 126 個地址分配給 A 用
- 滿足B:再將剩余的 192.168.100.128/25 網段再往后移一位,划分出 192.168.100.128/26 與 192.168.100.192/26 兩個網段,將 192.168.100.128/26 網段的 62個地址分配給B用
- 滿足C:再將 192.168.100.192/26 再往后移一位,划分出 192.168.100.192/27 與 192.168.100.224/27 兩個網段,將 192.168.100.192/27 網段的 30個地址分配給C用
- 滿足D:再將 192.168.100.224/27 再往后移一位,划分出 192.168.100.224/28 與 192.168.100.240/28 兩個網段,將 192.168.100.224/28 網段的 13個地址分配給D用

思考問題
【PC1】 192.168.0.10/24 與 【PC2】192.168.10.10/16 能進行通信嗎?
思路:先將兩台PC的網段算出來,看是不是同一網段
- PC1:192.168.0.0/24
- PC2:192.168.0.0/16
看上去好像兩個是同一網段,實際是不能進行通信的,為什么呢?當一台設備與另一台設備進行通信之前是怎么處理的?首先它並不知道目標設備的子網掩碼,只知道目標設備的IP地址,所以它要判斷該設備是否和自己是同一網段,它是直接拿自己的子網掩碼去和目標IP進行&運算得到網段,網段一樣才會通訊,計算如下:
【PC1=>PC2】 192.168.10.10/24 = 192.168.10.0 與自己的網段 192.168.0.0 不一樣,所以無法通訊
【PC2=>PC1】 192.168.0.10/16 = 192.168.0.0 與自己的網段 192.168.0.0 一樣,可以通訊
注意:PC1 不能發給 PC2,但 PC2 能發給 PC1,只有兩同設備都能夠互相通信,才能真正通訊
超網
- 它和子網是反過來,將多個連續的網段合並成一個更大的網段
- 比如原來有200台設備使用192.168.0.0/24網段,現在想再增加 200台設備到同一網段
- 200台在 192.168.0.0/24網段,另外200台在 192.168.1.0/24網段
- 合並 192.168.0.0/24 與 192.168.1.0/24 網段為 192.168.0.0/23 網段(子網掩碼往左移動1位)
合並2個子網

合並4個子網

思考:下面這2個網段向左移一位能合並嗎?

答案是不可以的,為什么呢?因為如果只向左移一位的話,它們的網段還是不相同的,當然就不是同一網段了,所以至少移2位才可以
判斷一個網段是子網還是超網
- 首頁判斷IP地址的類型,是A類、B類、C類?
- A類子網掩碼是8位,就是 255.0.0.0,如果 當前IP地址是A類,再看子網掩碼是往左移位還是往右移位,往左移位就是超網,往右移位就是子網
- B類是16位
- C類是24位
