【翻譯自mos文章】怎麼正確的計算一個ip地址的subnet id?

來源:互聯網
上載者:User

標籤:ati   pca   hosts   data   sub   文法   網卡名   ipc   work   

怎麼正確的計算一個ip地址的subnet id?

來源於:
How to calculate the correct subnet for an interface (文檔 ID 1059759.1)

適用於:
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Information in this document applies to any platform.

目標:
正確的計算一個ip地址的subnet id,該subnet id是給oifcfg用的。

oifcfg 須要你敲入pulic 和cluster_interconnect的subnet id。


可是,ifconfig命令通常顯示ip地址和netmask,並不顯示subnet id

本文會顯示subnet id的計算方法。
更普遍的是。本文也適用於例如以下的問題:對於一個給定的ip地址和netmask,怎麼確定subnet id?

解決方式:
本文如果公用網路用的網卡名稱是e1000g0。ip地址是171.197.26.137,netmask是ffffffc0

從ifconfig -a的輸出中。我們會看到例如以下:

e1000g0:flags=209040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,CoS>mtu 1500 index 2inet 171.197.26.137 netmask ffffffc0 broadcast 171.197.26.191groupname prodether 0:14:4f:95:39:9a

注意:上面的netmask被以十六進位顯示為ffffffc0(在一些作業系統平台中。會顯示成十進位而不是十六進位)

該 netmaskffffffc0 = ff.ff.ff.c0=255.255.255.192二進位是11111111.11111111.11111111.11000000

還有一個通常的用來表示netmask的方法是 兩位的數字,比方“26”,這個“26”。是經過例如以下計算得到的:

11111111.11111111.11111111.11000000=>(1+1+1+1+1+1+1+1)+(1+1+1+1+1+1+1+1)+(1+1+1+1+1+1+1+1)+(1+1+0+0+0+0+0+0)=8+8+8+2=26

針對一個給出的網路ip地址(171.197.26.137)和netmask(255.255.255.192)。高速計算出subnet id的方法是使用IP calculator
免費的IP calculator在網上能夠得到,在本範例中,我使用的IP calculator是來源於:http://jodies.de/ipcalc.

將網路ip地址(171.197.26.137)和netmask(255.255.255.192)帶入該IP calculator,給出例如以下的輸出:

Result:Address:  171.197. 26.137       10101011.11000101.00011010.10 001001Netmask:  255.255.255.192 = 26  11111111.11111111.11111111.11 000000Wildcard:   0.  0.  0. 63       00000000.00000000.00000000.00 111111=>Network:  171.197. 26.128/26    10101011.11000101.00011010.10 000000 (Class B)Broadcast:171.197. 26.191       10101011.11000101.00011010.10 111111HostMin:  171.197. 26.129       10101011.11000101.00011010.10 000001HostMax:  171.197. 26.190       10101011.11000101.00011010.10 111110Hosts/Net: 62

=>注意給出的 “Network:  171.197. 26.128/26”
忽略上面輸出中的/26。 oifcfg 所須要的subnet id就是171.197. 26.128

另外一個獲得subnet id的方法是對ip地址和netmask的每一個bit 做一個bit-AND運算:

171.197. 26.137 => 10101011.11000101.00011010.10 001001255.255.255.192 => 11111111.11111111.11111111.11 000000                 & ------------------------------------                    10101011.11000101.00011010.10 000000 => 171.197.26.128

 

當然。另外的一個獲得subnet id的方法就是用oifcfg 命令本身
oifcfg iflist命令顯示了網卡名稱和對應的subnet id

$ ./oifcfg ifliste1000g0 171.197.26.128e1000g2 171.197.26.128e1000g3 10.241.6.0

要設定public 網路的oifcfg,你須要使用例如以下的文法:

oifcfg setif -global e1000g0/171.197.26.128:public
 
譯者註:
若:netmask是ffffff00(也就是255.255.255.0),那麼subnet id就是:ip地址的前三部分+一個零構成第四部分若:netmask不是ffffff00,那麼subnet id須要計算。計算過程見本文所述過程

【翻譯自mos文章】怎麼正確的計算一個ip地址的subnet id?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.