IP地址與子網(wǎng)掩碼計(jì)算:網(wǎng)絡(luò)排錯(cuò)與規(guī)劃的必備基本功
1. 從一次真實(shí)的網(wǎng)絡(luò)故障說起為什么IP計(jì)算是基本功那天下午整個(gè)辦公室的網(wǎng)絡(luò)突然變得奇慢無比部分同事甚至完全無法訪問內(nèi)部的文件服務(wù)器。作為團(tuán)隊(duì)里對(duì)網(wǎng)絡(luò)稍有了解的人我被叫去幫忙。初步排查路由器和交換機(jī)指示燈都正常但就是有電腦能上網(wǎng)有的不能。我隨手在一臺(tái)能上網(wǎng)的電腦上敲了ipconfig看到IP是192.168.1.105子網(wǎng)掩碼是255.255.255.0。又在一臺(tái)不能上網(wǎng)的電腦上查看IP是192.168.1.210子網(wǎng)掩碼也是255.255.255.0網(wǎng)關(guān)同樣是192.168.1.1??雌饋砼渲盟坪鯖]問題但當(dāng)我嘗試用ping命令去探測(cè)網(wǎng)關(guān)時(shí)那臺(tái)“問題電腦”毫無反應(yīng)。問題就出在這里。一個(gè)看似正常的IP地址192.168.1.210配上255.255.255.0的子網(wǎng)掩碼它的“活動(dòng)范圍”被限制在了192.168.1.1到192.168.1.254之間網(wǎng)關(guān)192.168.1.1理應(yīng)在這個(gè)范圍內(nèi)通信應(yīng)該暢通。但實(shí)際情況是這臺(tái)電腦的網(wǎng)卡可能因?yàn)轵?qū)動(dòng)或系統(tǒng)問題錯(cuò)誤地將子網(wǎng)掩碼識(shí)別或應(yīng)用為另一個(gè)值比如255.255.255.128。如果真是這樣那么對(duì)于192.168.1.210這個(gè)IP在255.255.255.128的掩碼下它所屬的網(wǎng)絡(luò)段就變成了192.168.1.128到255而網(wǎng)關(guān)192.168.1.1則屬于另一個(gè)完全不同的網(wǎng)絡(luò)段192.168.1.0到127。不同網(wǎng)段的設(shè)備在二層是無法直接通信的必須通過路由器網(wǎng)關(guān)但此時(shí)電腦認(rèn)為自己與網(wǎng)關(guān)不在同一網(wǎng)段其網(wǎng)絡(luò)棧的行為會(huì)變得混亂導(dǎo)致連網(wǎng)關(guān)都ping不通。這個(gè)案例讓我深刻體會(huì)到計(jì)算機(jī)網(wǎng)絡(luò)中的IP地址計(jì)算絕不是課本上的數(shù)學(xué)題而是實(shí)實(shí)在在的、能幫你快速定位和解決網(wǎng)絡(luò)問題的“手術(shù)刀”。無論是手動(dòng)配置服務(wù)器IP、規(guī)劃企業(yè)內(nèi)部子網(wǎng)、應(yīng)對(duì)像“我們的系統(tǒng)檢測(cè)到您的計(jì)算機(jī)網(wǎng)絡(luò)中存在異常流量”這類安全提示背后的網(wǎng)絡(luò)環(huán)境排查還是應(yīng)對(duì)“計(jì)算機(jī)網(wǎng)絡(luò)期末復(fù)習(xí)”或“王道計(jì)算機(jī)網(wǎng)絡(luò)”的考試核心的IP、子網(wǎng)掩碼、網(wǎng)絡(luò)地址、廣播地址、可用主機(jī)范圍這“五要素”的計(jì)算都是你必須爛熟于心的基本功。很多人覺得它枯燥但當(dāng)你真正用它解決了一個(gè)棘手問題時(shí)那種成就感是無與倫比的。接下來我就把這套“刀法”的每一個(gè)細(xì)節(jié)結(jié)合原理和大量實(shí)戰(zhàn)案例為你徹底拆解清楚。2. 基石IP地址與子網(wǎng)掩碼的本質(zhì)關(guān)系在深入計(jì)算之前我們必須先統(tǒng)一認(rèn)知IP地址從來都不是一個(gè)孤立的數(shù)字它必須和子網(wǎng)掩碼成對(duì)出現(xiàn)才有意義。單獨(dú)說“我的IP是192.168.1.1”在專業(yè)層面是不完整的甚至可能引發(fā)誤解。2.1 IP地址網(wǎng)絡(luò)中的“門牌號(hào)”與“街道名”的結(jié)合體一個(gè)IPv4地址如192.168.1.105由32位二進(jìn)制數(shù)構(gòu)成通常用點(diǎn)分十進(jìn)制表示以便閱讀。這32位被分為兩部分網(wǎng)絡(luò)位好比“街道名”或“小區(qū)名”標(biāo)識(shí)了這個(gè)IP所屬的更大范圍的邏輯網(wǎng)絡(luò)。同一個(gè)網(wǎng)絡(luò)位下的所有設(shè)備被認(rèn)為在同一個(gè)“廣播域”內(nèi)可以直接進(jìn)行二層通信如以太網(wǎng)幀的直接交換。主機(jī)位好比“門牌號(hào)”在同一個(gè)“街道”網(wǎng)絡(luò)內(nèi)唯一標(biāo)識(shí)一臺(tái)具體的設(shè)備。那么這32位中哪幾位是網(wǎng)絡(luò)位哪幾位是主機(jī)位呢這個(gè)問題的答案就藏在子網(wǎng)掩碼里。2.2 子網(wǎng)掩碼定義“街道”邊界的標(biāo)尺子網(wǎng)掩碼同樣是一個(gè)32位的二進(jìn)制數(shù)其設(shè)計(jì)非常巧妙連續(xù)的“1”表示網(wǎng)絡(luò)位連續(xù)“0”表示主機(jī)位。它就像一把透明的、帶有刻度的尺子壓在IP地址上一下子就把網(wǎng)絡(luò)部分和主機(jī)部分區(qū)分開了。常見的子網(wǎng)掩碼表示點(diǎn)分十進(jìn)制255.255.255.0。這是最直觀的形式。255在二進(jìn)制中是111111118個(gè)1所以255.255.255.0換算成二進(jìn)制就是11111111.11111111.11111111.00000000。這意味著前24位是網(wǎng)絡(luò)位后8位是主機(jī)位。CIDR前綴長度表示法/24。這種表示法更簡潔直接寫明網(wǎng)絡(luò)位有多少個(gè)。/24就對(duì)應(yīng)255.255.255.0。在命令行、路由器配置、現(xiàn)代網(wǎng)絡(luò)文檔中這種表示法更為普遍。注意子網(wǎng)掩碼的“1”必須是連續(xù)的不能是11110011這樣的形式。像255.255.255.24011111111.11111111.11111111.11110000即/28是合法的而255.255.255.251二進(jìn)制11111011則是不合法的掩碼。2.3 “與”運(yùn)算找出你的“街道”地址確定了網(wǎng)絡(luò)位和主機(jī)位我們?nèi)绾蔚玫骄唧w的“街道地址”即網(wǎng)絡(luò)地址呢這里需要用到邏輯“與”運(yùn)算。規(guī)則很簡單1與1得1其他情況1與0 0與1 0與0都得0。操作過程將IP地址和子網(wǎng)掩碼都轉(zhuǎn)換為二進(jìn)制然后對(duì)每一位進(jìn)行“與”運(yùn)算得到的結(jié)果就是網(wǎng)絡(luò)地址。舉例IP192.168.1.105 子網(wǎng)掩碼255.255.255.0。轉(zhuǎn)換二進(jìn)制IP:192.168.1.105-11000000.10101000.00000001.01101001Mask:255.255.255.0-11111111.11111111.11111111.00000000逐位“與”運(yùn)算11000000.10101000.00000001.01101001 (IP) AND 11111111.11111111.11111111.00000000 (Mask) ------------------------------------ 11000000.10101000.00000001.00000000 (結(jié)果)將結(jié)果轉(zhuǎn)換回十進(jìn)制11000000-192,10101000-168,00000001-1,00000000-0。所以網(wǎng)絡(luò)地址是192.168.1.0。網(wǎng)絡(luò)地址是一個(gè)子網(wǎng)中的第一個(gè)地址但它不能分配給任何一臺(tái)具體設(shè)備作為其IP地址。它代表這個(gè)子網(wǎng)本身。3. 核心五要素計(jì)算手把手推導(dǎo)全過程掌握了“與”運(yùn)算我們就可以系統(tǒng)地計(jì)算出一個(gè)子網(wǎng)的所有關(guān)鍵信息。我們以192.168.1.105/24即掩碼255.255.255.0為例進(jìn)行完整推演。3.1 第一步確定網(wǎng)絡(luò)地址子網(wǎng)地址如上所述通過IP與掩碼“與”運(yùn)算我們得到網(wǎng)絡(luò)地址192.168.1.0。 這是所有計(jì)算的起點(diǎn)。3.2 第二步確定廣播地址廣播地址是子網(wǎng)中最后一個(gè)地址用于向該子網(wǎng)內(nèi)所有主機(jī)發(fā)送數(shù)據(jù)包。它的特點(diǎn)是主機(jī)位全部置為1。我們的掩碼是/24所以后8位最后一個(gè)字節(jié)是主機(jī)位。網(wǎng)絡(luò)地址192.168.1.0的最后一個(gè)字節(jié)是00000000。將主機(jī)位全部置100000000-11111111即十進(jìn)制255。所以廣播地址是192.168.1.255。廣播地址同樣不能分配給任何具體設(shè)備。3.3 第三步確定可用主機(jī)地址范圍可用主機(jī)地址就是介于網(wǎng)絡(luò)地址和廣播地址之間的所有地址。網(wǎng)絡(luò)地址192.168.1.0廣播地址192.168.1.255可用范圍192.168.1.1到192.168.1.254。這里有一個(gè)極易出錯(cuò)的關(guān)鍵點(diǎn)192.168.1.0是網(wǎng)絡(luò)地址192.168.1.255是廣播地址它們倆是“圍墻”不能住人分配設(shè)備。所以第一個(gè)可用的IP是網(wǎng)絡(luò)地址1192.168.1.1最后一個(gè)可用的IP是廣播地址-1192.168.1.254。3.4 第四步計(jì)算可用主機(jī)數(shù)量一個(gè)子網(wǎng)能容納多少臺(tái)設(shè)備公式是2^主機(jī)位數(shù) - 2?!皽p2”就是減去網(wǎng)絡(luò)地址和廣播地址。本例中主機(jī)位是8位所以可用主機(jī)數(shù) 2^8 - 2 256 - 2 254臺(tái)。這個(gè)數(shù)字直接決定了你的子網(wǎng)規(guī)劃是否夠用。比如一個(gè)辦公室有300臺(tái)電腦一個(gè)/24的網(wǎng)段就不夠你需要更大的子網(wǎng)如/23主機(jī)位9位可用510臺(tái)或劃分多個(gè)子網(wǎng)。3.5 第五步判斷IP是否屬于同一子網(wǎng)關(guān)鍵實(shí)戰(zhàn)技能這是網(wǎng)絡(luò)排錯(cuò)中最常用的技能。判斷兩個(gè)IP地址能否直接通信不經(jīng)過路由器就看它們是否在同一子網(wǎng)即網(wǎng)絡(luò)地址是否相同。案例1正常電腦A:192.168.1.105/24- 網(wǎng)絡(luò)地址:192.168.1.0電腦B:192.168.1.200/24- 網(wǎng)絡(luò)地址:192.168.1.0結(jié)論網(wǎng)絡(luò)地址相同屬于同一子網(wǎng)可以直接通信。案例2故障文章開頭案例的另一種可能電腦A:192.168.1.105/24(255.255.255.0) - 網(wǎng)絡(luò)地址:192.168.1.0電腦B:192.168.1.200/25(255.255.255.128) - 我們來計(jì)算一下IP:192.168.1.200-11000000.10101000.00000001.11001000Mask:255.255.255.128-11111111.11111111.11111111.10000000(/25)“與”運(yùn)算后11000000.10101000.00000001.10000000-192.168.1.128結(jié)論電腦A的網(wǎng)絡(luò)地址是192.168.1.0電腦B的網(wǎng)絡(luò)地址是192.168.1.128。兩者不同這意味著它們處于不同的子網(wǎng)。即使物理上連著同一個(gè)交換機(jī)它們也會(huì)認(rèn)為對(duì)方在“別的街道”會(huì)把數(shù)據(jù)包發(fā)給默認(rèn)網(wǎng)關(guān)路由器去處理。如果路由器沒有配置相應(yīng)的路由通信就會(huì)失敗。4. 進(jìn)階可變長子網(wǎng)掩碼與子網(wǎng)劃分實(shí)戰(zhàn)/24255.255.255.0是最常見的家用和小型企業(yè)網(wǎng)段但現(xiàn)實(shí)網(wǎng)絡(luò)規(guī)劃要復(fù)雜得多。ISP互聯(lián)網(wǎng)服務(wù)提供商或大型企業(yè)需要將一個(gè)大網(wǎng)段如10.0.0.0/8高效地劃分成多個(gè)大小不同的子網(wǎng)分配給不同部門或客戶這就需要用到可變長子網(wǎng)掩碼。4.1 理解“借位”的概念VLSM的核心思想是從標(biāo)準(zhǔn)分類網(wǎng)絡(luò)的主機(jī)位中“借”一些位過來作為子網(wǎng)位。 假設(shè)我們有一個(gè)192.168.1.0/24的網(wǎng)段公司有3個(gè)部門研發(fā)部需要60個(gè)IP、市場(chǎng)部需要25個(gè)IP、財(cái)務(wù)部需要10個(gè)IP。直接用/24給每個(gè)部門一個(gè)太浪費(fèi)地址每個(gè)部門254個(gè)實(shí)際只用一小部分。我們需要進(jìn)行子網(wǎng)劃分??傇瓌t先滿足需求最大的子網(wǎng)。研發(fā)部需要60個(gè)IP。計(jì)算所需主機(jī)位2^n - 2 60。n最小取62^6 -2 62。所以主機(jī)位需要6位。原/24網(wǎng)絡(luò)主機(jī)位是8位現(xiàn)在只需要6位那么多出來的2位8-62就可以“借”來作為子網(wǎng)位。新的子網(wǎng)掩碼長度 原網(wǎng)絡(luò)位 借用的子網(wǎng)位 24 2 /26。對(duì)應(yīng)點(diǎn)分十進(jìn)制掩碼為255.255.255.192因?yàn)樽詈?位是11000000十進(jìn)制192。4.2 劃分子網(wǎng)并計(jì)算詳情192.168.1.0/24借用2位主機(jī)位二進(jìn)制00,01,10,11可以產(chǎn)生4個(gè)/26的子網(wǎng)。我們只計(jì)算前三個(gè)滿足需求的子網(wǎng)。子網(wǎng)1192.168.1.0/26網(wǎng)絡(luò)地址192.168.1.0(后8位:00000000)廣播地址主機(jī)位全1后8位為00111111 -63。所以是192.168.1.63可用范圍192.168.1.1~192.168.1.62可用主機(jī)數(shù)2^6 - 2 62臺(tái)。分配給研發(fā)部。子網(wǎng)2192.168.1.64/26網(wǎng)絡(luò)地址192.168.1.64(后8位:01000000)廣播地址后8位01111111 -127。所以是192.168.1.127可用范圍192.168.1.65~192.168.1.126可用主機(jī)數(shù)62臺(tái)。分配給市場(chǎng)部綽綽有余。子網(wǎng)3192.168.1.128/26網(wǎng)絡(luò)地址192.168.1.128(后8位:10000000)廣播地址后8位10111111 -191。所以是192.168.1.191可用范圍192.168.1.129~192.168.1.190可用主機(jī)數(shù)62臺(tái)。分配給財(cái)務(wù)部。你看通過VLSM我們把一個(gè)/24網(wǎng)段劃分成了多個(gè)更小的、適合不同部門規(guī)模的子網(wǎng)地址利用率大大提高。剩下的192.168.1.192/26子網(wǎng)還可以留作未來擴(kuò)展。4.3 快速計(jì)算技巧與心算表對(duì)于常見的子網(wǎng)劃分記住幾個(gè)關(guān)鍵掩碼和主機(jī)數(shù)對(duì)應(yīng)關(guān)系可以極大提升排錯(cuò)和規(guī)劃效率。CIDR前綴點(diǎn)分十進(jìn)制掩碼子網(wǎng)掩碼二進(jìn)制最后8位每個(gè)子網(wǎng)可用主機(jī)數(shù)典型用途/24255.255.255.000000000254小型局域網(wǎng)家用網(wǎng)絡(luò)/25255.255.255.12810000000126中等規(guī)模部門/26255.255.255.1921100000062大型部門或小組/27255.255.255.2241110000030小型部門、服務(wù)器集群/28255.255.255.2401111000014網(wǎng)絡(luò)設(shè)備管理網(wǎng)段、小型辦公/29255.255.255.248111110006點(diǎn)對(duì)點(diǎn)鏈路如兩個(gè)路由器互聯(lián)/30255.255.255.252111111002最經(jīng)典的點(diǎn)對(duì)點(diǎn)鏈路掩碼心算技巧對(duì)于/24以上的掩碼如/25,/26...關(guān)鍵看最后一個(gè)字節(jié)。/25128塊大小是128。子網(wǎng)是0, 128, 256...。/26192塊大小是64。子網(wǎng)是0, 64, 128, 192...。/27224塊大小是32。子網(wǎng)是0, 32, 64, 96, 128...。/28240塊大小是16。子網(wǎng)是0, 16, 32, 48, 64...。/29248塊大小是8。子網(wǎng)是0, 8, 16, 24, 32...。/30252塊大小是4。子網(wǎng)是0, 4, 8, 12, 16...。“塊大小”是什么它就是這個(gè)掩碼所定義的每個(gè)子網(wǎng)的IP地址總數(shù)包括網(wǎng)絡(luò)和廣播地址。要判斷一個(gè)IP屬于哪個(gè)子網(wǎng)找到離它最近但小于等于它的“塊大小”的倍數(shù)即可。舉例判斷192.168.1.217/28屬于哪個(gè)子網(wǎng)/28掩碼240塊大小是16??醋詈笠粋€(gè)字節(jié)217。16的倍數(shù)有0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224...離217最近且小于等于217的倍數(shù)是208。所以網(wǎng)絡(luò)地址是192.168.1.208廣播地址是20816-1223即192.168.1.223。5. 實(shí)戰(zhàn)場(chǎng)景從排錯(cuò)到規(guī)劃的完整應(yīng)用理解了原理和計(jì)算我們來看幾個(gè)綜合性的實(shí)戰(zhàn)場(chǎng)景這往往是“計(jì)算機(jī)網(wǎng)絡(luò)面試題”或“計(jì)算機(jī)網(wǎng)絡(luò)筆試題”的??鸵彩侨粘9ぷ鞯恼鎸?shí)需求。5.1 場(chǎng)景一解讀“一鍵設(shè)置IP”批處理命令“win 10 批處理命令 一鍵設(shè)置ip地址、子網(wǎng)掩碼、網(wǎng)關(guān)、dns”這個(gè)熱詞背后是網(wǎng)絡(luò)管理員或運(yùn)維人員的日常。我們來看一個(gè)典型的命令netsh interface ip set address 以太網(wǎng) static 192.168.2.100 255.255.255.0 192.168.2.1 netsh interface ip set dns 以太網(wǎng) static 8.8.8.8現(xiàn)在你可以完全理解這條命令在做什么了192.168.2.100 255.255.255.0將電腦的IP設(shè)置為192.168.2.100子網(wǎng)掩碼為/24。由此可計(jì)算出網(wǎng)絡(luò)地址192.168.2.0本機(jī)所在子網(wǎng)的可用IP范圍192.168.2.1~192.168.2.254本機(jī)IP100在此范圍內(nèi)有效。192.168.2.1設(shè)置默認(rèn)網(wǎng)關(guān)。你必須檢查網(wǎng)關(guān)IP是否與本機(jī)IP在同一子網(wǎng)計(jì)算網(wǎng)關(guān)192.168.2.1的網(wǎng)絡(luò)地址192.168.2.1 255.255.255.0 192.168.2.0。與本機(jī)網(wǎng)絡(luò)地址192.168.2.0一致。校驗(yàn)通過。如果網(wǎng)關(guān)是192.168.1.1網(wǎng)絡(luò)地址就變成了192.168.1.0與本機(jī)不在同一子網(wǎng)這條命令執(zhí)行后網(wǎng)絡(luò)立刻會(huì)斷8.8.8.8設(shè)置DNS服務(wù)器。DNS服務(wù)器的IP不需要與本機(jī)在同一子網(wǎng)因?yàn)樵L問DNS屬于跨網(wǎng)段通信數(shù)據(jù)包會(huì)發(fā)給網(wǎng)關(guān)192.168.2.1由路由器負(fù)責(zé)轉(zhuǎn)發(fā)。實(shí)操心得在編寫或使用這類一鍵腳本時(shí)務(wù)必先手動(dòng)計(jì)算并確認(rèn)IP、掩碼、網(wǎng)關(guān)三者的網(wǎng)絡(luò)地址是否一致。這是避免配置性網(wǎng)絡(luò)中斷的最重要一步。5.2 場(chǎng)景二應(yīng)對(duì)“異常流量”檢測(cè)與網(wǎng)絡(luò)隔離“我們的系統(tǒng)檢測(cè)到您的計(jì)算機(jī)網(wǎng)絡(luò)中存在異常流量”這種提示常見于公司網(wǎng)絡(luò)、校園網(wǎng)或一些公共服務(wù)。從網(wǎng)絡(luò)原理角度看觸發(fā)這種檢測(cè)的可能原因之一就是IP地址沖突或偽造。假設(shè)網(wǎng)絡(luò)管理員監(jiān)控到來自192.168.5.0/24網(wǎng)段的異常流量。他可以通過交換機(jī)的端口安全功能或DHCP Snooping等特性進(jìn)行排查。但更深一層如果他懷疑有設(shè)備私自配置了靜態(tài)IP造成沖突就需要精準(zhǔn)定位已知正常DHCP分配的地址池是192.168.5.100~192.168.5.200掩碼255.255.255.0。監(jiān)控發(fā)現(xiàn)異常流量源IP是192.168.5.50。這個(gè)IP不在DHCP池內(nèi)可能是靜態(tài)設(shè)置的。管理員登錄核心交換機(jī)查看ARP表找到IP192.168.5.50對(duì)應(yīng)的MAC地址。再通過MAC地址表定位到這個(gè)MAC地址連接在交換機(jī)的哪個(gè)物理端口上。找到對(duì)應(yīng)端口即可定位到那臺(tái)可疑設(shè)備。在這個(gè)過程中管理員對(duì)192.168.5.0/24這個(gè)網(wǎng)段的范圍1~254、廣播地址.255了如指掌是快速判斷一個(gè)IP是否“異?!钡幕A(chǔ)。如果異常IP是192.168.5.0或192.168.5.255那幾乎可以斷定是惡意掃描或配置錯(cuò)誤因?yàn)檫@兩個(gè)地址根本不能用于主機(jī)。5.3 場(chǎng)景三規(guī)劃一個(gè)中小型公司網(wǎng)絡(luò)假設(shè)你要為一家擁有總部和兩個(gè)分公司的企業(yè)規(guī)劃網(wǎng)絡(luò)??偛坑行姓?0人、研發(fā)50人、市場(chǎng)30人、服務(wù)器集群需要20個(gè)IP四個(gè)部分。分公司A15人。分公司B8人。 公司申請(qǐng)到了一個(gè)172.16.0.0/16的私有地址段。規(guī)劃思路選擇子網(wǎng)掩碼總部人數(shù)最多的部門是研發(fā)部50人考慮未來增長需要約60個(gè)IP。根據(jù)主機(jī)數(shù)公式2^6 -2 62 60所以主機(jī)位需要6位掩碼為/26255.255.255.192。為總部分配子網(wǎng)從172.16.0.0/16中劃分多個(gè)/26子網(wǎng)。每個(gè)/26子網(wǎng)塊大小為64。行政部172.16.1.0/26(范圍: .1 ~ .62)研發(fā)部172.16.1.64/26(范圍: .65 ~ .126)市場(chǎng)部172.16.1.128/26(范圍: .129 ~ .190)服務(wù)器集群172.16.1.192/26(范圍: .193 ~ .254)注意每個(gè)子網(wǎng)的第一個(gè)IP如.1,.65通常用作該子網(wǎng)的網(wǎng)關(guān)。為分公司分配子網(wǎng)分公司A15人2^5 -2 30 15可用/27掩碼主機(jī)位5位可用30臺(tái)。分公司B8人2^4 -2 14 8可用/28掩碼主機(jī)位4位可用14臺(tái)。分公司A172.16.2.0/27(范圍: .1 ~ .30)分公司B172.16.2.32/28(范圍: .33 ~ .46)點(diǎn)對(duì)點(diǎn)鏈路總部與分公司之間通過路由器專線互聯(lián)這種鏈路只需要2個(gè)有效IP兩端各一個(gè)使用/30掩碼是最節(jié)省的??偛?分公司A鏈路172.16.255.0/30(可用IP: .1 和 .2)總部-分公司B鏈路172.16.255.4/30(可用IP: .5 和 .6)通過這樣的規(guī)劃地址空間層次清晰管理方便且留有了充足的擴(kuò)展余地。在路由器上配置好指向各個(gè)子網(wǎng)的路由整個(gè)公司的網(wǎng)絡(luò)框架就搭建起來了。6. 常見陷阱與深度排錯(cuò)指南即使掌握了計(jì)算在實(shí)際網(wǎng)絡(luò)管理和排錯(cuò)中依然會(huì)遇到各種“反直覺”的問題。下面是一些高頻陷阱和我的排查心得。6.1 陷阱一默認(rèn)網(wǎng)關(guān)“不在我網(wǎng)段”這是最經(jīng)典的配置錯(cuò)誤癥狀是電腦顯示“已連接”但無法上網(wǎng)無法ping通網(wǎng)關(guān)。排查ipconfig /all查看本機(jī)IP和子網(wǎng)掩碼計(jì)算網(wǎng)絡(luò)地址。再查看默認(rèn)網(wǎng)關(guān)IP用同樣的掩碼計(jì)算網(wǎng)關(guān)的網(wǎng)絡(luò)地址。對(duì)比兩者是否一致。根因手動(dòng)配置IP時(shí)填錯(cuò)了掩碼或網(wǎng)關(guān)。例如本機(jī)192.168.1.100/24網(wǎng)關(guān)卻配成了192.168.0.1。解決更正網(wǎng)關(guān)地址或子網(wǎng)掩碼使兩者網(wǎng)絡(luò)地址一致。6.2 陷阱二子網(wǎng)掩碼不匹配導(dǎo)致的“時(shí)通時(shí)不通”這種問題非常隱蔽。例如網(wǎng)絡(luò)中有兩臺(tái)設(shè)備A和B。A配置192.168.1.1/24(網(wǎng)絡(luò)地址:192.168.1.0)B配置192.168.1.254/25(網(wǎng)絡(luò)地址:192.168.1.128)從A ping BA認(rèn)為B在同一網(wǎng)段(.0)會(huì)發(fā)送ARP請(qǐng)求詢問B的MAC地址。B收到ARP請(qǐng)求但發(fā)現(xiàn)請(qǐng)求來自192.168.1.1計(jì)算其網(wǎng)絡(luò)地址為192.168.1.0與自己(.128)不同網(wǎng)段。有些系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧會(huì)拒絕回應(yīng)這種“跨網(wǎng)段”的ARP請(qǐng)求。結(jié)果就是A無法獲取B的MAC地址ping不通。但從B ping A呢B認(rèn)為A(.1)的網(wǎng)絡(luò)地址是192.168.1.0因?yàn)锽用/25掩碼去“與”A的IP與自己(.128)不同網(wǎng)段所以B會(huì)直接將數(shù)據(jù)包發(fā)往自己的默認(rèn)網(wǎng)關(guān)。如果網(wǎng)關(guān)知道如何到達(dá)192.168.1.0/24網(wǎng)絡(luò)這個(gè)ping包可能又能通。這就造成了“單向不通”或“時(shí)通時(shí)不通”的詭異現(xiàn)象。排查時(shí)一定要核對(duì)互訪雙方的IP和子網(wǎng)掩碼設(shè)置是否完全一致。6.3 陷阱三全零子網(wǎng)與全一子網(wǎng)在一些非常老舊的路由器或嚴(yán)格的網(wǎng)絡(luò)規(guī)范中曾經(jīng)不推薦使用“全零子網(wǎng)”網(wǎng)絡(luò)地址主機(jī)位全0的子網(wǎng)和“全一子網(wǎng)”廣播地址與主網(wǎng)廣播地址相同的子網(wǎng)。例如將192.168.1.0/24劃分為4個(gè)/26子網(wǎng)子網(wǎng)1:192.168.1.0/26(網(wǎng)絡(luò)地址:.0)子網(wǎng)2:192.168.1.64/26子網(wǎng)3:192.168.1.128/26子網(wǎng)4:192.168.1.192/26(廣播地址:.255與原/24網(wǎng)廣播地址相同)在現(xiàn)代網(wǎng)絡(luò)設(shè)備Cisco IOS 12.0以后以及絕大多數(shù)企業(yè)級(jí)設(shè)備上默認(rèn)都支持使用這些子網(wǎng)。但在某些特定環(huán)境或遺留系統(tǒng)里可能會(huì)出現(xiàn)問題。我的建議是在全新的網(wǎng)絡(luò)規(guī)劃中可以放心使用這能提高地址利用率。但在接手一個(gè)老舊網(wǎng)絡(luò)或遇到莫名問題時(shí)可以作為一個(gè)排查方向暫時(shí)避開使用192.168.1.0/26和192.168.1.192/26這兩個(gè)子網(wǎng)看看問題是否消失。6.4 深度排錯(cuò)鏈路當(dāng)ping不通網(wǎng)關(guān)時(shí)這是一個(gè)系統(tǒng)化的排查流程IP計(jì)算是其中的核心一環(huán)物理層網(wǎng)線插好了嗎網(wǎng)卡燈亮嗎這是第一步。鏈路層ipconfig看是否獲取到了IP地址如果是自動(dòng)獲取(DHCP)是否拿到了有效的地址如果是169.254.x.x說明DHCP失敗。網(wǎng)絡(luò)層IP計(jì)算主戰(zhàn)場(chǎng) a. 如果是手動(dòng)IP計(jì)算本機(jī)IP與網(wǎng)關(guān)IP的網(wǎng)絡(luò)地址是否一致。 b.arp -a查看ARP表是否能找到網(wǎng)關(guān)IP對(duì)應(yīng)的MAC地址如果找不到可能是上述的掩碼不匹配問題或者有防火墻禁止了ARP。 c. 如果能找到網(wǎng)關(guān)MAC嘗試ping 網(wǎng)關(guān)IP。不通嘗試ping 127.0.0.1環(huán)回地址檢驗(yàn)本機(jī)TCP/IP協(xié)議棧是否正常。超越本地如果能ping通網(wǎng)關(guān)但上不了網(wǎng)。嘗試ping 8.8.8.8一個(gè)公網(wǎng)DNS。如果通說明問題在DNS檢查DNS設(shè)置。如果不通問題可能出在網(wǎng)關(guān)路由器本身它的WAN口配置、路由表或上層運(yùn)營商問題。在整個(gè)過程中對(duì)IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS這幾個(gè)參數(shù)的含義和它們之間關(guān)系的深刻理解是你能快速推進(jìn)到問題根源的關(guān)鍵。它讓你擺脫了“重啟試試”、“重裝網(wǎng)卡驅(qū)動(dòng)”這種碰運(yùn)氣式的排錯(cuò)轉(zhuǎn)而進(jìn)行有邏輯、有步驟的“外科手術(shù)”。

相關(guān)新聞

AI監(jiān)控濫用已致37起跨國訴訟:企業(yè)級(jí)倫理審查清單(含實(shí)時(shí)行為分析、情感識(shí)別、員工監(jiān)工三大禁區(qū))

AI監(jiān)控濫用已致37起跨國訴訟:企業(yè)級(jí)倫理審查清單(含實(shí)時(shí)行為分析、情感識(shí)別、員工監(jiān)工三大禁區(qū))

更多請(qǐng)點(diǎn)擊: https://kaifayun.com 第一章:AI監(jiān)控濫用已致37起跨國訴訟:企業(yè)級(jí)倫理審查清單(含實(shí)時(shí)行為分析、情感識(shí)別、員工監(jiān)工三大禁區(qū)) 全球范圍內(nèi),AI驅(qū)動(dòng)的職場(chǎng)監(jiān)控系統(tǒng)正引發(fā)前所未有的法律與倫理?!?/p>

2026/7/29 4:56:04 閱讀更多
Verilog計(jì)數(shù)器設(shè)計(jì)全解析:從基礎(chǔ)原理到高級(jí)應(yīng)用與避坑指南

Verilog計(jì)數(shù)器設(shè)計(jì)全解析:從基礎(chǔ)原理到高級(jí)應(yīng)用與避坑指南

1. 從“數(shù)數(shù)”到“時(shí)序控制”:計(jì)數(shù)器的核心價(jià)值在數(shù)字電路和FPGA/ASIC設(shè)計(jì)的世界里,計(jì)數(shù)器(Counter)可能是你接觸到的第一個(gè),也是貫穿整個(gè)職業(yè)生涯最基礎(chǔ)、最核心的時(shí)序邏輯電路。它遠(yuǎn)不止是“數(shù)數(shù)”那么簡單。當(dāng)你需要…

2026/7/29 4:56:04 閱讀更多
SQL注入四種類型詳解:原理、利用與防御

SQL注入四種類型詳解:原理、利用與防御

1. 什么是 SQL 注入?SQL 注入是指攻擊者將惡意 SQL 代碼插入到輸入?yún)?shù)中,應(yīng)用程序未進(jìn)行過濾便將其拼接到 SQL 查詢語句中,導(dǎo)致數(shù)據(jù)庫執(zhí)行了非預(yù)期的命令。一句話解釋就是你輸入的內(nèi)容被直接當(dāng)作代碼執(zhí)行了2. 四種常見類型2.1 聯(lián)合查詢注入 …

2026/7/29 6:06:06 閱讀更多
Node.js C++擴(kuò)展開發(fā):突破性能瓶頸,構(gòu)建高性能數(shù)據(jù)處理架構(gòu)

Node.js C++擴(kuò)展開發(fā):突破性能瓶頸,構(gòu)建高性能數(shù)據(jù)處理架構(gòu)

1. 項(xiàng)目概述:為什么要在Node.js里“嵌入”C?如果你是一個(gè)Node.js開發(fā)者,尤其是涉足后端服務(wù)、數(shù)據(jù)處理或者工具鏈開發(fā),大概率會(huì)遇到過這樣的瓶頸:某個(gè)計(jì)算密集型的任務(wù),用純JavaScript寫出來,性…

2026/7/29 6:06:06 閱讀更多
機(jī)器學(xué)習(xí)與深度學(xué)習(xí):核心差異與實(shí)戰(zhàn)應(yīng)用指南

機(jī)器學(xué)習(xí)與深度學(xué)習(xí):核心差異與實(shí)戰(zhàn)應(yīng)用指南

1. 機(jī)器學(xué)習(xí)與深度學(xué)習(xí):從理論到實(shí)戰(zhàn)的全方位解析 在數(shù)據(jù)爆炸的時(shí)代,機(jī)器學(xué)習(xí)(Machine Learning)和深度學(xué)習(xí)(Deep Learning)已經(jīng)成為推動(dòng)技術(shù)進(jìn)步的核心引擎。作為一名從業(yè)多年的數(shù)據(jù)科學(xué)家,我見…

2026/7/29 6:06:06 閱讀更多
NSAIDs藥物全解析:從作用機(jī)制到安全使用指南

NSAIDs藥物全解析:從作用機(jī)制到安全使用指南

1. 從“止痛藥”到“抗炎藥”:重新認(rèn)識(shí)NSAIDs 在藥柜里,布洛芬、阿司匹林、雙氯芬酸鈉這些名字你一定不陌生。頭疼腦熱、關(guān)節(jié)酸痛、運(yùn)動(dòng)拉傷,我們總會(huì)習(xí)慣性地求助于它們。但你是否想過,這些被我們籠統(tǒng)稱為“止痛藥”的家伙&#…

2026/7/29 6:06:06 閱讀更多
51單片機(jī)LED點(diǎn)陣廣告牌設(shè)計(jì):從硬件驅(qū)動(dòng)到軟件掃描全解析

51單片機(jī)LED點(diǎn)陣廣告牌設(shè)計(jì):從硬件驅(qū)動(dòng)到軟件掃描全解析

1. 項(xiàng)目概述:從零到一,打造一個(gè)會(huì)“說話”的LED點(diǎn)陣廣告牌最近在帶學(xué)生做單片機(jī)課設(shè),發(fā)現(xiàn)“LED點(diǎn)陣廣告牌設(shè)計(jì)”這個(gè)題目真是經(jīng)久不衰。它麻雀雖小,五臟俱全,幾乎涵蓋了單片機(jī)應(yīng)用開發(fā)的所有核心環(huán)節(jié):從硬件…

2026/7/29 6:06:06 閱讀更多
Spring Security OAuth2 Scope驗(yàn)證全流程解析與實(shí)戰(zhàn)

Spring Security OAuth2 Scope驗(yàn)證全流程解析與實(shí)戰(zhàn)

1. 項(xiàng)目概述:為什么我們需要深入理解OAuth2的scope驗(yàn)證? 如果你正在開發(fā)或維護(hù)一個(gè)基于Spring Security OAuth2的授權(quán)服務(wù)器或資源服務(wù)器,那么“scope驗(yàn)證”這個(gè)環(huán)節(jié),很可能就是你系統(tǒng)安全防線上最容易被忽視,卻又至關(guān)…

2026/7/29 5:56:05 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過程中,發(fā)現(xiàn)一個(gè)問題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過來的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂應(yīng)用,模擬了真實(shí)擲骰子的過程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫效果?!?/p>

2026/7/29 0:15:24 閱讀更多