說說一些少見的IP和掩碼

2021-09-30 09:23:59 字數 1985 閱讀 4720

今天遇到一件窩火的事情,被0.0.0.0的掩碼玩得很狼狽。以前的需求要求掩碼至少有1個1,就是說是不支援0.0.0.0的。但是對於三層路由來說,又要求0.0.0.0。

對路由有些許了解就清楚,對於預設路由,一般為下面形式:

檢視了tcp/ip網際互聯中對掩碼的說明,掩碼為0.0.0.0一般與ip位址為0.0.0.0一起使用,表示靜態路由。

rfc:

0.0.0.0/8 - addresses in this block refer to source hosts on "this"

network. address 0.0.0.0/32 may be used as a source address for this

host on this network; other addresses within 0.0.0.0/8 may be used to

refer to specified hosts on this network ([rfc1122], section

3.2.1.3).

因此,根據rfc文件描述,它不只是代表本機,0.0.0.0/8可以表示本網路中的所有主機,0.0.0.0/32可以用作本機的源位址,0.0.0.0/8也可表示本網路上的某個特定主機,綜合起來可以說0.0.0.0表示整個網路

在路由器配置中可用0.0.0.0/0表示預設路由,作用是幫助路由器傳送路由表中無法查詢的包。如果設定了全零網路的路由,路由表中無法查詢的包都將送到全零網路的路由中去。

1. 嚴格說來,0.0.0.0已經不是乙個真正意義上的ip位址了。它表示的是這樣乙個集合:所有不清楚的主機和目的網路。這裡的「不清楚」是指在本機的路由表裡沒有特定條目指明如何到達。對本機來說,它就是乙個「收容所」,所有不認識的「三無」人員,一 律送進去。如果你在網路設定中設定了預設閘道器,那麼windows系統會自動產生乙個目的位址為0.0.0.0的預設路由。

2. 網路中0.0.0.0的ip位址表示整個網路,即網路中的所有主機。它的作用是幫助路由器傳送路由表中無法查詢的包。如果設定了全零網路的路由,路由表中無法查詢的包都將送到全零網路的路由中去。

" 了解了這些後,仍然有乙個疑惑:掩碼255.255.255.255有什麼作用呢?

竟然還真搜到了,說明如下:」

此類介面是應用最為廣泛的一種虛介面,幾乎在每台路由器上都會使用。常見於如下用途。

1 作為一台路由器的管理位址 

系統管理員完成網路規劃之後,為了方便管理,會為每一台路由器建立乙個loopback 介面,並在該介面上單獨指定乙個ip 位址作為管理位址,管理員會使用該位址對路由器遠端登入(telnet ),該位址實際上起到了類似裝置名稱一類的功能。 

但是通常每台路由器上存在眾多介面和位址,為何不從當中隨便挑選乙個呢? 

原因如下:由於telnet 命令使用tcp 報文,會存在如下情況:路由器的某乙個介面由於故障down 掉了,但是其他的介面卻仍舊可以telnet ,也就是說,到達這台路由器的tcp 連線依舊存在。所以選擇的telnet 位址必須是永遠也不會down 掉的,而虛介面恰好滿足此類要求。由於此類介面沒有與對端互聯互通的需求,所以為了節約位址資源,loopback 介面的位址通常指定為32 位掩碼。 

2 使用該介面位址作為動態路由協議ospf 、bgp 的router id。

動態路由協議ospf 、bgp 在執行過程中需要為該協議指定乙個router id ,作 為此路由器的唯一標識,並要求在整個自治系統內唯一。由於router id 是乙個32 位的無符號整數,這一點與ip 位址十分相像。而且ip 位址是不會出現重複現象的,所以通常將路由器的router id 指定為與該裝置上的某個介面的位址相同。由於loopback 介面的ip 位址通常被視為路由器的標識,所以也就成了router id 的最佳選擇。 

3、使用該介面位址作為bgp 建立tcp 連線的源位址

在bgp 協議中,兩個執行bgp 的路由器之間建立鄰居關係是通過tcp 建立連線完成的。 

在配置鄰居時通常指定loopback 介面為建立tcp 連線的源位址(通常只用於ibgp ,原因同2.1 ,都是為了增強tcp 連線的健壯性) 

C語言一些少見但很有用的語法

我們平時用的都是 define,突然遇到了這個。其實,undef 與 define 相對應。undef 的作用是取消已經有的巨集定義。include define max 5 int main 當取消第6行printf的注釋,將會報錯,max undeclared 因為max巨集被undef 取消了...

關於子網掩碼IP和閘道器的一些個人總結

1 相同網段不同子網的不同主機通訊時,只要雙方都有對方的mac位址 則可以直接通訊,不需要經過閘道器 如果沒有,則需要通過閘道器獲取對方的mac,然後直接通訊 2.判斷兩台主機是不是在同一子網下 看子網掩碼,假設255,255,255,1和255,255,255,3 說明這類主機使用的是c類位址 則...

get和post區別 別再說一些簡單的區別了

get和post是http請求的兩種基本方法,要說它們的區別,接觸過web開發的人都能說出一二。最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。你可能自己寫過無數個get和post請求,或者已經看過很多權威 總結出的他們的區別,你非常清楚知道什麼時候該用什麼...