返回   ShareGet 社群討論 > ≡ 電腦網路 ≡ > □ -- Unix & Linux

發表新主題 回覆
 
主題工具 顯示模式
  #1  
舊 2005-12-05, 10:09 AM
kazaya 的頭像
原來傷害最深的
 
註冊日期: 2004-05-31
來自: 是那些不肯同你說真話的人
文章: 8,847
給予: 45 | 感謝 222 | 共 123 篇
積分: 25189 | 給分能力: 98
[轉貼] 第十章 Networking Fundamentals

第十章 Networking Fundamentals
一. IP (Internet Protocol:網際網路通訊協定)簡介
1. IP位址:即經常用以連線上網的一串數字碼,這串數字碼可讓電腦在internet中相互辨識,以達訊息資料傳送的目的,此數字碼便是IP位址。
目前IP位址有些不同版本,現大家所使用的為第四版的IP位址,即所謂的IPv4,至今已使用30多年了,另有資料顯示IPv4可能在2005~2010年用完,故IPv6應運而生。
IPv4位址由32bits(位元)所構成,可組成2(32)(註2的32次方)個位址,並以八位元為單位,將32位元分4部份,以十進位表示,而形成如61.219.18.224這類的表示法,若將其用二進位表示 :
00111101.11011011.00010010.11100000
此二進位數字即是網路上實際傳輸的數字串。
至於IPv6則由32bits→128bits,可提供未來數十年的IP位址須求。

2. IP位址分配由NIC (Network Information Center)美國網路資訊中心負責,再由各處中心細分下去。
IP位址分兩部份:Network bits(網路位元)、Host bits(主機位元),網路位元是用來區分是否位於同網段或不同網段,主機位元則用來識別網路段內的電腦主機。

3. IPv4將IP位址分A、B、C、D、E五個類型 (classA ~ classE),左邊第一個bit為0者→classA,為10者→classB,為110者→classC,為1110者→classD,為1111者→classE。
classA→ 8 Network bits+24 Host bits
classB→16 Network bits+16 Host bits
classC→24 Network bits+ 8 Host bits
classD及classE分別作多點群播 (Multicast一對多資料傳送:class D) 及提供實驗網路使用(classE)。

classA:0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Network bits Host bits
Network bits共有27=128種組合,即128個網路段(網域),換算成十進位=>0~127,扣除0 (用來簡化IP必須處理的路徑資訊)及127兩個特殊用途外,真正可用為1~126。
Host bits共224種組合,即能提供224-2個主機IP。
在Host bits皆為0時,代表該網段位址(網域位址),皆為1時,代表廣播位址(發送廣播封包時使用),所以可提供的主機IP為224-2。

classB:10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Network bits Host bits
可提供214個網路段,每網段可提供216-2個主機IP。
classC:110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Network bits Host bits
可提供221網路段,每網路段提供28-2個主機IP。
127.0.0.1是保留做Loop Back Test(迴路測試),即自己將訊息送回本身電腦(Local),以了解TCP/IP是否設定OK。
例:$ ping 127.0.0.1
Private IP (私有IP、虛擬IP)
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是提供做企業內部網路架構之IP設定範圍,可不與外界連線,亦可透過具NAT功能的Router或主機來與internet連線溝通。

4. 網路遮罩 (Network Mask)
用來確認不同的IP位址是否屬於同網段的辨識方法,即是由Network Mask來達成。
將IP位址中的Network bits設為1,Host bits設為0,而能得到網路遮罩,例如classA為255.0.0.0,classB為255.255.0.0,classC為255.255.255.0。

5. 子網路規劃:
如前所述,classA每一網段(網域)擁有224-2個IP位址,classB每一網段擁有216-2個IP位址,如此多的IP位址若無善加規劃,便易形成IP位址浪費與通訊不佳的情形,子網路 (subnet)規劃的須求便於此時應運而生。
所謂子網路切割即是將一個網路段(網域)底下再切割出子網路段,並藉由向Host bits借位元的方式來達成,如此使IP位址區分成網路位元、子網路位元及主機位元三部份。其中網路位元由NIC分配,子網路位元及主機位元則由該網段的擁有者逕行分配。
向Host bits借位元數愈多,所能區分的子網數也愈多。
如:172.16.x.x網段,向Host bits借三位元:
10101100.00010000.XXX XXXXX.XXXXXXXX
網路位元 子網位元 主機位元
網路位元向主機位元借位後,可切成23=8個子網段,每個子網段可用的IP位址為213-2 (Host bits為0及1扣除)。
其Sub-net Mask (子網遮罩):11111111.11111111.11100000.00000000
換算成十進位就等於255.255.224.0。
第一段:10101100.00010000.00000000.00000001

10101100.00010000.00011111.11111110
可分配IP位址為172.16.0.1~172.16.31.254/19
子網段:172.16.0.0 廣播:172.16.31.255

第二段:10101100.00010000.00100000.00000001

10101100.00010000.00111111.11111110
可分配IP位址為:172.16.32.1~172.16.63.254
子網段:172.16.32.0 廣播:172.16.63.255

第三段:172.16.64.1~172.16.95.254
子網段:172.16.64.0 廣播:172.16.95.255


第八段:172.16.224.1~172.16.255.254
子網段:172.16.224.0 廣播:172.16.255.255
此八個子網段中,由於class對子網規劃的限制,使其最前段與最後段不能使用,故實際只有6個子網段,不過現在好像已解除這種限制了。

6. CIDR(Classless Inter-Domain Routing):不分級的網域尋徑(在CIDR機制下,子網規劃時的所有子網路段均可使用)
目前可取得的IP位址都屬於C class,但一個class C的網路段只能提供254個IP位址,萬一哪天覺得不夠使用時,須再申請數個class C網路段,同時須添購許多路由器 (此路由器須支援CIDR),如此作法可能因網段過多而影嚮路由器的執行效率,為了解決此一問題,網路工程策進會便提出了CIDR架構,簡單說,CIDR就是將幾個小網路段進行整合工作。
例:將classC,net mask 255.255.255.0的幾個網段進行CIDR整合:
210.10.36.x=>11010010.00001010.00100100.XXXXXXXX
210.10.37.x=>11010010.00001010.00100101.XXXXXXXX
210.10.38.x=>11010010.00001010.00100110.XXXXXXXX
210.10.39.x=>11010010.00001010.00100111.XXXXXXXX
合併之後,有10個位元屬於變動位元,因此歸類為主機位元,其他22個位元就屬於網路位元,所以 Net Mask 255.255.252.0。同樣道理,將
主機位元設為0,就可得到網域位址→210.10.36.0,我們可用下式來表
式: 210.10.36.0/22。

二. 網路設定檔:
1. /etc/sysconfig/network-scripts
這個目錄大都是與網路介面有關係的設定,我們以其下的一個檔案為例:
# vi ifcfg-eth0
DEVICE=eth0  指定第一張網卡的網路介面。
BOOTPROTO=static  靜態設定ip位址,若使用動態ip則設dhcp。
IPADDR=192.168.2.1  ip位址。
NETMASK=255.255.255.0  網路遮罩。
BROADCAST=192.168.2.255  廣播位址。
NETWORK=192.168.2.0  網路位址。
ONBOOT=yes  開機時啟動介面。

另外像ifup及ifdown是兩支很好用的script,透過它們,可輕易的啟動
或關閉網路介面,例如:
# ifdown eth0
# ifup eth1
 記得使用這兩個script時,於network-scripts目錄下需存在相關檔案
如ifcfg-eth0、ifcfg-eth1才行,否則只能使用ifconfig eth0 down及
ifconfig eth1 up。

2. /etc/sysconfig/network
這是一個檔案,主要是設定啟動網路功能及主機名稱的地方。其內容
大致如下:
NETWORKING=yes  啟動網路功能。
HOSTNAME=redhat73  設定主機名稱。
FORWARD_IPV4=yes  啟動路由功能。
GATEWAY=192.168.2.254  default gateway的位址。
GATEWAYDEV=eth0  連接default gateway的網路介面。
在redhat 7.3 中,FORWARD_IPV4更改過後,不能發揮功用,所以要是
想啟動路由,可從以下幾個地方著手:
˙# echo “1” > /proc/sys/net/ipv4/ip_forward
˙# vi /etc/sysctl.conf
net.ipv4.ip_forward=1
˙利用linuxconf或netconfig工具,將enable routing 打上”*”。
Note:在Openlinux下,gateway需設定在 /etc/sysconfig/network-scripts
的ifcfg-eth0裡面,若設在network內會無效。
      而redhat要是兩者都設,會以network-scripts為主。

三. 在文字介面下的基本網路偵測指令:
1. ping:當傳送端下ping指令ping對方IP位址或FQDN時,事實上就是送出一個Echo Request訊息給目的端,而在目的端收到訊息後,會送出Echo Reply給傳送端,但若傳送端ping不到對方主機,則路由器會送出一個Destination Unreachable給傳送端。
註:ICMP (Internet Control Message Protocol)共有10餘種訊息類別,Echo Request屬於type8,Echo Reply屬於type0,而Destination Unreachable為type3。
例:# ping tw.yahoo.com
# ping 168.95.1.1
# ping -c 5 168.95.1.1

2. ifconfig:查看網路界面的資料訊息及設定網路界面。
例:# ifconfig =>顯示已啟動界面的資料訊息。
# ifconfig -a =>未啟動界面也顯示。
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast \ 192.168.1.255
=>設定eth0的IP位址、網路遮罩及廣播位址。此臨時性的設定,在reboot後會失效。
# ifconfig eth1
=>檢視eth1界面。
# ifconfig eth0 down
=>關閉eth0界面。
# ifconfig eth0 up
=>啟動eth0界面。
上式可用ifup及ifdown代替,如 # ifup eth0
再來我們看看如何在一網路卡(界面)上設定多IP位址 :
例:# ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0
# ifconfig eth0:1 192.168.2.2 netmask 255.255.255.0
說明: 使用ifup.ifdown時,網卡界面的關聯性檔案須存在才能使用此兩個指令,比如現在要使用ifdown來關閉eth1,則於 /etc/sysconfig/network-scripts目錄下,須存在ifcfg-eth1的設定檔才行,所以像eth0:0或eth0:1在此目錄下找不到,故不適用於ifup及ifdown。

3. route:顯示或異動routing table。
在命令列下執行 # route可顯示routing table如下:

Destination Gateway Genmask Flags Iface
61.219.18.0 * 255.255.255.0 U eth0
192.168.1.0 * 255.255.255.0 U eth1
127.0.0.1 * 255.0.0.0 U lo
default 61-219-18-254.H 0.0.0.0 UG eth0
說明: Destination:要到達的目的網段或目的主機。
例如要到內部192.168.1.10主機時,就可適用192.168.1.0那一行的定義。而Gateway為”*”,表示不會使用到gateway。假使現在我們要到達的目的端,在Destination下找不到時,就會使用default那一行的定義,比如在連internet上的網站時,都是使用default。
Flags:U→up,代表路由已啟動。
H→host,代表Destination是主機。
G→gateway,代表default gateway。
# route –n
→ 以IP位址顯示routing table內容。
# route add –net 192.168.4.0 netmask 255.255.255.0 gw 192.168.1.254 \
dev eth0
→ 對網路界面eth0增加一網路段的路由資訊。
# route add –host 192.168.1.11 dev eth0
→ 新增主機方式。若於 /etc/hosts內設定192.168.1.11 redhat後,用# route可看到於Destination下多一個redhat,此時改用# route –n此redhat變成192.168.1.11,而default變成0.0.0.0。
# route add default gw 192.168.1.254 dev eth0
→ 設定DG,當找不到路徑時,會使用此預設閘道器。
用# route看時,會列在default那一行。

範例:
環境: 以linux做router,其上有兩網卡,
eth0192.168.1.254,連接client for windows (192.168.1.10)
   eth1192.168.100.254,連接client for linux (192.168.100.10)
要如何設定才能讓兩台電腦彼此能夠溝通?
說明: ˙首先Router要啟動路由功能,其方式有二:
法一: echo ”1” > /proc/sys/net/ipv4/ip_forward
法二: # linuxconf
 選擇Routing and gateways,然後進入set defaults,並設
    定啟動。
˙client for linux:
# route add –net 192.168.1.0 netmask 255.255.255.0 \
gw 192.168.100.254 dev eth0
˙client for windows:
於預設閘道處設定:192.168.1.254
   以上都設定完成後,client端彼此互ping看看能否成功。

 4. traceroute (windows為tracert):
顯示從來源端至目的端所經節點。
例:# traceroute 168.95.1.1
# traceroute www.google.com

5. netstat:此指令功能非常強大,可顯示routing table、網路界面訊息及監控網路狀態。
以下所列為指令常用參數:
-a:顯示所有網路狀態,不論socket是否listen。
-n:預設是以主機名稱為服務名稱顯示於內容上,用-n後,會以IP位址及port number來代替。
-r:顯示routing table。
-i:顯示界面訊息。
-l:只顯示目前在listen的socket。
-p:顯示PID及程式名稱。
-t:只顯示tcp相關socket。
-u:只顯示udp相關socket。
例:# netstat -a
# netstat -an
# netstat -r (-i)
# netstat -tl
# netstat -anp∣less
__________________
如果您覺得"文章小說討論區"所發的主題不錯
請不要吝嗇 在主題 " 點閱" 及 並給予 發文者一些鼓勵
---------------------------------------------
為了防止世界被破壞  為了保護世界的和平
貫徹下載與燒錄的邪惡  可愛又迷人的盜版角色
MP3....Program...  我們是穿梭在網際網路中的盜版大隊~~
拷貝 拷貝的明天正等著我們~~
就是這樣....喵~~@@
回覆時引用此文章
發表新主題 回覆

書簽

主題工具
顯示模式

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用
論壇跳轉


所有時間均為GMT -5。現在的時間是 08:30 PM


Powered by vBulletin® Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.