自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

CIDR與NAT的分身術(shù)逆襲

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
IPv4由于最初的設(shè)計(jì)原因,長(zhǎng)度只有32位,所以只提供了大約40億個(gè)地址。這造成了IPv4地址的耗盡危機(jī)。但是IPv4與IPv6并不兼容,IPv4向IPv6的遷移并不容易。CIDR和NAT的相繼推廣可以緩解IPv4的稀缺狀態(tài),成就了IPv4一時(shí)的逆襲。

IPv4由于最初的設(shè)計(jì)原因,長(zhǎng)度只有32位,所以只提供了大約40億個(gè)地址。這造成了IPv4地址的耗盡危機(jī)。隨后,IPv6被設(shè)計(jì)出來(lái),并可以提供足夠多的IP地址。但是IPv4與IPv6并不兼容,IPv4向IPv6的遷移并不容易。一些技術(shù),比如說(shuō)這里要說(shuō)的CIDR和NAT,相繼推廣。這些技術(shù)可以緩解IPv4的稀缺狀態(tài),成就了IPv4一時(shí)的逆襲。

CIDR

CIDR(Classless Inter Domain Routing)改進(jìn)了傳統(tǒng)的IPv4地址分類。傳統(tǒng)的IP分類將IP地址直接對(duì)應(yīng)為默認(rèn)的分類,從而將Internet分割為網(wǎng)絡(luò)。CIDR在路由表中增加了子網(wǎng)掩碼(subnet masking),從而可以更細(xì)分網(wǎng)絡(luò)。利用CIDR,我們可以靈活的將某個(gè)范圍的IP地址分配給某個(gè)網(wǎng)絡(luò)。

1) IP地址分類

在IP接力賽中,我提到,IP地址可以分為如下幾類:

IP class From To Subnet Mask

A 1.0.0.0 126.255.255.255 255.0.0.0

B 128.0.0.0 191.255.255.255 255.255.0.0

C 192.0.0.0 223.255.255.255 255.255.255.0

這是最初的IPv4地址分類設(shè)計(jì)。一個(gè)IPv4地址總共有32位,可以分為網(wǎng)絡(luò)(network)和主機(jī)(host)兩部分。子網(wǎng)掩碼(subnet mask)是用于表示哪些位代表了網(wǎng)絡(luò)部分。比如如下subnet mask 255.0.0.0的二進(jìn)制表示為:

11111111 00000000 00000000 00000000

它的前八位為1,所以表示IP地址的前八位為網(wǎng)絡(luò)部分。而后面的24位代指該網(wǎng)絡(luò)的各個(gè)主機(jī)。一個(gè)A類網(wǎng)絡(luò)可以有224臺(tái)主機(jī),也就是16777216。由于IPv4地址已經(jīng)分好了類,所以當(dāng)我們拿到一個(gè)IP地址,我們就可以通過(guò)上面查到它的子網(wǎng)掩碼。(B類,216; C類,28)

2) 傳統(tǒng)路由表

IP分類的方便了IP包的接力。IP包到達(dá)某個(gè)路由器后,會(huì)根據(jù)該路由器的路由表(routing table),來(lái)決定接力的下一站。一個(gè)傳統(tǒng)的路由表看起來(lái)是這樣的:

Destination Gateway Iface

199.165.145.0 0.0.0.0 eth0

199.165.146.0 0.0.0.0 eth1

0.0.0.0 199.165.146.8 eth1

該路由表代表的網(wǎng)絡(luò)拓?fù)淙缦拢?/p>

路由表代表的網(wǎng)絡(luò)拓?fù)? /></a></p>
<p>由于IP分類,我們不需要記錄subnet  mask。當(dāng)我們要前往199.165.146.17時(shí),我們已經(jīng)知道這臺(tái)主機(jī)位于一個(gè)C類地址,所以它的子網(wǎng)掩碼是255.255.255.0,也就是說(shuō)199.165.146代表了網(wǎng)絡(luò),17代表了主機(jī)。</p>
<p>3) CIDR路由表</p>
<p>然而,由于默認(rèn)分類,造成了網(wǎng)絡(luò)只能按照A、B、C的方式存在。假設(shè)一個(gè)網(wǎng)絡(luò)(比如MIT的網(wǎng)絡(luò))分配了一個(gè)A類地址,那么該網(wǎng)絡(luò)將容許16777216個(gè)主機(jī)。如果該網(wǎng)絡(luò)無(wú)法用完這些IP地址,這些IP地址將無(wú)法被其他網(wǎng)絡(luò)使用。再比如上面的網(wǎng)絡(luò),199.165.145必須作為一個(gè)整個(gè)的網(wǎng)絡(luò)存在。如果我們只有10臺(tái)主機(jī),那么將會(huì)有200多個(gè)IP地址被浪費(fèi)。CIDR的本質(zhì)是在路由表中加入子網(wǎng)掩碼,并根據(jù)該列信息對(duì)網(wǎng)絡(luò)進(jìn)行分割,而不是根據(jù)默認(rèn)的A,B,C進(jìn)行分割。比如:</p>
<p>Destination Gateway Genmask Iface</p>
<p>199.165.145.254 0.0.0.0 255.255.255.254 eth2</p>
<p>199.165.145.0 0.0.0.0 255.255.255.0 eth0</p>
<p>199.165.146.0 0.0.0.0 255.255.255.0 eth1</p>
<p>0.0.0.0 199.165.146.8 0.0.0.0 eth1</p>
<p>根據(jù)路由表的***條記錄,</p>
<p>199.165.145.254 (IP address) : 11000111 10100101 10010001 11111110</p>
<p>255.255.255.254 (subnet mask): 11111111 11111111 11111111 11111110  (31個(gè)1,1個(gè)0)</p>
<p>通過(guò)子網(wǎng)掩碼可以知道,前31位表示網(wǎng)絡(luò),***一位表示主機(jī)。子網(wǎng)掩碼總是有連續(xù)多個(gè)1組成,比如上面的31個(gè)1。所以也可記為199.165.145.254/31,來(lái)同時(shí)表示IP地址和子網(wǎng)掩碼。</p>
<p>路由器將原來(lái)的199.165.145網(wǎng)絡(luò)中的一部分分割出來(lái)。這一網(wǎng)絡(luò)可以容納兩臺(tái)電腦,也就是199.165.145.254和199.165.145.255。這個(gè)網(wǎng)絡(luò)對(duì)應(yīng)網(wǎng)卡是eth2。當(dāng)有IP包通向這兩個(gè)IP地址時(shí),會(huì)前往eth2,而不是eth0。</p>
<p>網(wǎng)絡(luò)拓?fù)淙缦拢?/p>
<p> </p>
<center><img height=

 

利用CIDR,我們可以將IP地址根據(jù)需要進(jìn)行分割,從而不浪費(fèi)IP地址。#p#

NAT

CIDR雖然可以更加節(jié)約IP地址,但它并不能創(chuàng)造新的IP地址。IP地址的耗盡危機(jī)并不能因此得到解決。我們來(lái)看IPv4的第二襲,NAT(Network Address Translation)。

理論上,每個(gè)IP地址代表了Internet上的一個(gè)設(shè)備。但有一些IP地址被保留,用于一些特殊用途。下面三段IP地址被保留用作私有IP地址:

From                To

10.0.0.0         10.255.255.255

172.16.0.0      172.31.255.255

192.168.0.0     192.168.255.255

私有IP地址只用于局域網(wǎng)內(nèi)部。理論上,我們不應(yīng)該在互聯(lián)網(wǎng)上看到來(lái)自或者發(fā)往私有IP地址的IP包。與私有IP地址對(duì)應(yīng)的是全球IP地址(global IP address)。

NAT是為私有網(wǎng)絡(luò)(private network)服務(wù)的。該網(wǎng)絡(luò)中的主機(jī)使用私有IP地址。當(dāng)私有網(wǎng)絡(luò)內(nèi)部主機(jī)和外部Internet通信時(shí),網(wǎng)關(guān)(gateway)路由器負(fù)責(zé)將私有IP地址轉(zhuǎn)換為全球IP地址,這個(gè)地址轉(zhuǎn)換過(guò)程就是Network Address Translation。網(wǎng)關(guān)路由器的NAT功能。最極端情況下,我們可以只分配一個(gè)全球IP地址給網(wǎng)關(guān)路由器,而私有網(wǎng)絡(luò)中的設(shè)備都使用私有IP地址。由于私有IP地址可以在不同私有網(wǎng)絡(luò)中重復(fù)使用,所以就大大減小了設(shè)備對(duì)IP地址的需求。

1) 基礎(chǔ)NAT

NAT的一種為基礎(chǔ)NAT,也成為一對(duì)一(one-to-one)NAT。在基礎(chǔ)NAT下,網(wǎng)關(guān)路由器一一轉(zhuǎn)換一個(gè)外部IP地址和一個(gè)私有IP地址。網(wǎng)關(guān)路由器保存有IP的NAT對(duì)應(yīng)關(guān)系,比如:

網(wǎng)關(guān)路由器保存有IP的NAT對(duì)應(yīng)關(guān)系

上面網(wǎng)絡(luò)中,當(dāng)有IP包要前往199.165.145.1時(shí),網(wǎng)關(guān)路由器會(huì)將目的地改寫(xiě)為10.0.0.1,并接力給私有網(wǎng)絡(luò)中的10.0.0.1的電腦。同樣,當(dāng)10.0.0.1的電腦向Internet發(fā)送IP包時(shí),它的發(fā)送地為10.0.0.1。在到達(dá)網(wǎng)關(guān)路由器時(shí),會(huì)將發(fā)送地更改為199.165.145.1。此外,IP頭部的checksum,以及更高層協(xié)議(比如UDP和TCP)中的校驗(yàn)IP的checksum也會(huì)更改。

基礎(chǔ)NAT盡管是一對(duì)一轉(zhuǎn)換IP地址,它還是可以減小內(nèi)部網(wǎng)絡(luò)對(duì)IP地址的需求。通常來(lái)說(shuō),一個(gè)局域網(wǎng)中只有少數(shù)的設(shè)備處于開(kāi)機(jī)狀態(tài),并不需要給每個(gè)設(shè)備對(duì)應(yīng)一個(gè)全球IP地址。NAT可以動(dòng)態(tài)的管理全球IP地址,并將全球IP地址對(duì)應(yīng)到開(kāi)機(jī)設(shè)備,從而減小內(nèi)部網(wǎng)絡(luò)對(duì)IP地址的需求。

2) NAPT

NAT還有一種,被成為NAPT (Network Address and Port Translation)。在基礎(chǔ)NAT中,高層協(xié)議的端口號(hào)并不會(huì)改動(dòng)。NAPT下,IP地址和端口號(hào)可能同時(shí)改動(dòng)。

我們?cè)赨DP和TCP中提到端口(port)的概念。在建立UDP或者TCP通信時(shí),我們實(shí)際上是用IP:Port來(lái)代表通信的一端(正如打電話時(shí)主機(jī):分機(jī)號(hào)一樣)。NAPT就是在網(wǎng)關(guān)路由器處建立兩個(gè)通信通道,一個(gè)通往內(nèi)部網(wǎng)絡(luò),一個(gè)通往外部網(wǎng)絡(luò),然后將網(wǎng)關(guān)處的通道端口連接,從而讓內(nèi)部和外部通信。比如:

 

 

我們看到,通往IP 199.165.145.1建立了三個(gè)端口的連接:8888, 8889和8080。它們分別在NAPT處改為通往10.0.0.1:80, 10.0.0.1:8080和10.0.0.3:6000。NAPT記錄有外部IP:端口和內(nèi)部IP:端口的一一對(duì)應(yīng)關(guān)系。在IP包經(jīng)過(guò)時(shí),網(wǎng)關(guān)路由器會(huì)更改IP地址,端口號(hào)以及相關(guān)的checksum。

利用NAPT我們可以使用一個(gè)(或者多個(gè)但少量的)外部IP和大量的端口號(hào),來(lái)對(duì)應(yīng)多個(gè)內(nèi)部IP以及相應(yīng)的端口號(hào),從而大大減小了對(duì)全球IP地址的需求。

 

無(wú)論是基礎(chǔ)NAT還是NAPT,它們的設(shè)置都比較復(fù)雜,并且從本質(zhì)上違背了互聯(lián)網(wǎng)最初的設(shè)計(jì)理念。但由于IPv4的使用慣性,NAT還是被廣泛推廣。由于NAT所處的網(wǎng)關(guān)服務(wù)器是理想的設(shè)置防火墻的位置,NAT還往往和防火墻共同建設(shè),以提高私有網(wǎng)絡(luò)的安全性。

總結(jié)

即使是CIDR和NAT廣泛使用,IPv4還是在不可避免的耗盡。IPv6正在加緊部署。但上述的兩種技術(shù),CIDR和NAT在IPv6中同樣被采用,所以了解它們依然是有意義的。

責(zé)任編輯:林琳 來(lái)源: 博客園
相關(guān)推薦

2011-03-23 16:31:52

2015-08-04 14:22:43

虛擬化OpenFlowSDN

2020-07-13 08:40:21

BAT模具設(shè)計(jì)

2014-08-07 10:45:31

長(zhǎng)尾市場(chǎng)華為

2015-08-10 10:20:09

虛擬化OpenFlowSDN

2014-09-03 16:04:17

傳統(tǒng)數(shù)據(jù)中心逆襲

2011-06-28 13:51:24

飛視美視頻會(huì)議

2017-04-19 17:16:14

黑產(chǎn)黑色產(chǎn)業(yè)鏈網(wǎng)絡(luò)黑產(chǎn)

2012-10-19 11:05:03

思科OpenStackCitrix

2020-05-27 14:07:56

HTTPServer編譯器

2017-04-18 14:25:54

Excel實(shí)戰(zhàn)數(shù)據(jù)

2013-07-23 09:42:21

IBMNetflix

2013-11-13 14:42:05

手游海外市場(chǎng)

2019-01-21 16:37:08

2010-02-24 09:13:07

軟件加服務(wù)微軟

2018-01-16 08:40:13

SSD市場(chǎng)缺貨

2012-10-08 11:44:51

2024-11-15 11:00:00

C#多線程

2018-03-09 09:53:37

國(guó)產(chǎn)內(nèi)存紫光半導(dǎo)體
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)