一、基本概念:
1、協議protocol:約定收發雙方能理解的數據格式。
2、分層:將複雜任務分解爲簡單的任務。
3、MAC:Media Access Control介質訪問控制。
二、網絡類型:
1、CSMA/CD:
監聽到網絡空閒即立即發送信息,邊發送邊監聽。如果監聽到衝突,就立即停止發送,等待下一個空閒時間再次發送。著名的以太網就採用這種方式發送信息。
2、消息發送方式:
單工:要麼只能發,要麼只能收。
半雙工:可以收發,但不能同時收發。
全雙工:收發同時,互不影響。
3、CSMA/CD設備:
(1)、Hub:集線器,接收雙方在接收信息就獨佔線路,可見是獨佔的總線模式,其他接收雙方只能等待,即存在接收衝突域問題。可見效率較低。現在已經很少用Hub。
(2)、網橋(只有兩個端口):網橋用來分隔一個較大規模的網絡,解決衝突域(同時收發)的問題。能暫存數據,內部有地址數據表格且內部有多個線路,在接收信息是臨時建立一通路,接發完畢斷開。可見效率較高。
(3)、交換機(MAC表)(多端口的網橋):但是不能解決廣播域的問題,即第一次發送數據MAC地址表無數據或MAC地址表數據老化,那麼在發送數據時是向此交換機上所有端口發送的。如果多個交換機的多個網絡直接連接在一起,那麼廣播域的問題更嚴重。
(4)、路由器(路由表):用來隔斷廣播域的問題,從而解決了廣播域的問題。從而實現了跨網絡通信,又能有效解決廣播域的問題。
(5)、IP地址(由網絡地址和主機地址組成,共分四段。如果網絡地址位長了,那麼主機地址位短,所連接的主機就少;反之所連接的主機就多。):
A-大型:0 000 0000-0 111 1111:0-127,第1段爲網絡地址,並且規定第一位爲0,其他爲主機地址
1-126:
2^7個網絡
每個網絡中的主機:2^24-2
默認掩碼:255.0.0.0
1個私有網絡:10.0.0.0(這個私有網絡可以連接255個主機:10.0.0.0~10.0.0.255)
B-中型:10 00 0000-10 11 1111:128-191,前2段爲網絡地址,並且規定前兩位爲10,其他爲主機地址
128-191
2^14個網絡
每個網絡中的主機:2^16-2
默認掩碼:255.255.0.0
16個私有網絡:172.16.0.0-172.31.0.0
C-小型:110 0 0000-110 1 1111:192-223,前3段爲網絡地址,並且規定前三位爲110,其他爲主機地址
192-223
2^21個網絡
每個網絡中的主機:2^8-2
默認掩碼:255.255.255.0
256個私有網絡:192.168.0.0-192.168.255.0
D、注意:
主播地址 1110 0000-1110 1111:224-239
測試網絡 1111 0000-1111 1111:240-255
主機位全0:網絡地址
主機位全1:廣播地址
(6)、子網掩碼:
規定對應“網絡地址”子網掩碼全爲1,對應“主機地址”子網掩碼全爲0。
A類網子網掩碼:255.0.0.0
B類網子網掩碼:255.255.0.0
C類網子網掩碼:255.255.255.0
(7)、網絡通訊:
A、1-4:通信,在內核空間解析完成。
物理層:物理介質如同軸電纜、光纖等,並封裝前導碼。
鏈路層:封裝源mac和目標mac,實現介質訪問控制。
網絡層:IP數據包,封裝源IP和目標IP,IP協議。路由器就工作在此層上。
傳輸層:並非真正意義上的傳輸,而是用來“標記進程即端口(0-65535)",TCP/UDP協議。
TCP:0-65535,Transimission Control Protocol,類似於打電話。
UDP:0-65535 User Datagram Protocol 用戶數據包協議,類似於發信件。
Socket套接字:由IP+Port組成。
B、5-7:資源,在用戶空間解析完成。
會話層:保持會話
表示層:標記資源展示。
應用層:標記資源,請求的資源,即以什麼格式的文件返回給客戶端。
C、TCP:有連接協議,建立的是邏輯連接。
a、建立連接:需要三次握手。
SYN=1,ACK=0
SYN=1,ACK=1
SYN=0,ACK=1
b、斷開連接:需要四次斷開,TCP是全雙工的即雙通道。
因此,斷開時雙方都需要發出請求等待對方確認。
4、Token Ring:令牌環網,獲得令牌才能發送消息。
三、網絡設備:內核通過驅動來識別網絡設備。
1、以太網設備:eth#,如eth0,eth1等。
2、PPP網絡設備:ppp#,如ppp0,ppp1等。
3、在Dell服務器上,網絡設備通常標識爲:em#,如em0,em1等。
下圖這臺dell服務器有4塊網卡:em1~em4
4、本地迴環:lo
四、配置主機接入TCP/IP網絡:
1、IP/Netmask(掩碼)。
2、路由:提供與非本地網絡的主機進行通信。
主機路由:-host,目標指向主機。
網絡路由:-net,目標指向網絡。
默認路由也叫網關也叫下一跳:default,目標指向所有地址(0.0.0.0)。
3、DNS服務器:
主DNS服務器
備用DNS服務器
4、主機名
以上4步的詳細配置,見五。
五、配置主機接入TCP/IP網絡詳解:
只配置IP/Netmask,此時只能完成本地網絡通信。再配置路由,就可以完成跨網絡通信。
1、配置IP/Netmask:
(1)、命令方式配置IP/Netmask:
ifconfig(ip addr,ip link),配置後立即生效,是暫時有效,但不會永久有效即關機失效。
A、#ifconfig:顯示所有活動接口的相關信息。
如:#ifconfig
eth0 Link encap:Ethernet(鏈路層封裝格式:以太網幀)
HWaddr 00:0C:29:27:38:DA (MAC地址,前三段廠商地址塊,後三段設備地址塊)
inet addr:192.168.127.147(IP地址) Bcast:192.168.127.255(廣播地址) Mask:255.255.255.0(掩碼)
inet6 addr: fe80::20c:29ff:fe27:38da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500(最大傳輸單元) Metric:1
RX packets:76 errors:0 dropped:0 overruns:0 frame:0 (接收)
TX packets:87 errors:0 dropped:0 overruns:0 carrier:0(傳出)
collisions:0 txqueuelen:1000
RX bytes:9410 (9.1 KiB) TX bytes:11954 (11.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
B、#ifconfig Interface:僅顯示指定接口的相關信息。
如ifconfig eth0:
eth0 Link encap:Ethernet HWaddr 00:0C:29:27:38:DA
inet addr:192.168.127.147 Bcast:192.168.127.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe27:38da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:120 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13263 (12.9 KiB) TX bytes:15320 (14.9 KiB)
C、ifconfig Interface Address:配置地址。
如:長格式:ifconfig eth0 192.168.10.9 netmask 255.255.255.0
短格式(CIDR),掩碼指定多少個1即上面的的長格式爲24個1。
如:ifconfig eth0 192.168.10.9 netmask 255.255.255.0=ifconfig eth0 192.168.10.9/24
如:ifconfig eth0 10.0.0.6 netmask 255.0.0.0=ifconfig eth0 10.0.0.6/8
如:ifconfig eth0 172.16.1.6 netmask 255.255.0.0=ifconfig eth0 172.16.1.6 /16
D、ifconfig Interface {up|down}:啓用|禁用Interface
(2)、靜態配置IP,通過配置文件配置IP,配置將永久有效。
與網絡設備相關的服務控制腳本:它通常能讀取網絡的配置文件,並讓其配置生效或失效等管理功能。注意:配置完成後,需執行#service network restart,使配置生效。
A、配置IP、掩碼、網關:
a、以太網:ifcfg-eth#
#vi /etc/sysconfig/network-scripts/ifcfg-eth0,內容如下:
DEVICE="eth0" :此配置關聯的設備,設備名要與文件名ifcfg-後的內容保持一致。
BOOTPROTO="dhcp" 引導協議,{none(手動配置)|static(手動配置)|dhcp(動態獲取)|bootp(動態獲取)}
HWADDR="00:0C:29:27:38:DA" :MAC地址,要與真實MAC保持一致,如果不知道可省略,系統會自動配置,MAC是固化在網卡上的。
IPV6INIT="yes":是否自動初始化IPV6協議地址。
NM_CONTROLLED="yes" :是否接受NetworkManager腳本控制{yes|no}
ONBOOT="yes" :是否開機自動啓用此網卡{yes|no}
TYPE="Ethernet" :設備類型,如Ethernet以太網,Bridge橋接,Binding綁定
UUID="80930047-c6a8-4d70-aa8d-0f876e94221d" :唯一標示,可省略,同MAC配置。
IPADDR=192.168.127.135:IP地址
NETMASK=255.255.255.0:掩碼
GATEWAY=10.0.0.1:默認網關
DNS1=10.0.0.1:指定的DNS服務器地址(dns最多三個,至少要一個)
USERCTL=no:是否允許普通用戶啓用或者禁用此網卡。
PEERDNS={yes|no} 是否允許DHCP服務分配地址時直接更新/etc/resolv.conf中的DNS服務器地址。
b、ppp:ifcfg-ppp#
(3)、通過TUI/GUI(圖形界面,極少用)靜態配置IP,配置結束後會改變配置文件:
命令1:#system-config-network-tui
命令2: #setup,選擇Network congiguration 也可進入
(4)、動態配置IP/Netmask:
DHCP服務器:Dynamic Host Configuration Protocol 動態主機配置協議。
2、配置路由:
(1)、命令方式配置路由:route(ip route),配置立即生效,是暫時有效,但不會永久有效即關機失效。
A、#route:顯示路由信息。
-n:使用數字格式顯示,不反解地址到主機名。
如:# route -n
Kernel IP routing table
Destination Gateway(下一跳) Genmask Flags Metric Ref Use Iface
192.168.127.0 0.0.0.0 255.255.255.0 U(U啓用狀態) 1 0 0 eth0
0.0.0.0 192.168.127.2 0.0.0.0 UG(G默認) 0 0 0 eth0
192.168.1.100 172.16.100.188 255.255.255.255 UGH(H主機路由)
B、route add [-net|-host]:添加路由條目,有如下三種方式:
#route add -host HOST_IP gw NEXT_HOP [dev Device] 配置主機路由
#route add -net NET_ADDR/MASK gw NEXT_HOP [dev Device] 配置網絡路由
#route add -net 0.0.0.0:默認路由(目標地址爲任務地址). 配置默認路由
如配置網絡路由:請配置路由條目,要求目標爲192.168.0.0/24網絡,下一跳爲172.16.0.1(下一跳一定和本機地址在同一網絡中,不然沒跳,哈哈)
#route add -net 192.168.0.0/24 gw 172.16.0.1
如配置主機路由:請配置路由條目,要求目標爲192.168.1.100主機,下一跳爲172.16.100.188(下一跳一定和本機地址在同一網絡中,不然沒跳,哈哈)
#route add -host 192.168.1.100 gw 172.16.100.188
如配置默認路由:添加默認路由,下一跳爲 172.16.100.88
#route add -net 0.0.0.0 gw 172.16.100.88=#route add default gw 172.16.100.88
C、route del:刪除路由。
-host HOST_IP
-net NET_ADDR/MASK
default:刪除默認路由如:route del default
(2)、靜態配置路由:注意:配置完成後,需執行#service network restart,使配置生效。
A、以太網:route-eth#,在/etc/sysconfig/network-scripts/默認沒有,需要自己創建。
如:#vi /etc/sysconfig/network-scripts/route-eth0,內容如下:
192.168.0.0/24 via 172.16.100.188
192.168.1.10 via 172.16.100.88
配置的格式1爲:DEST via NEXT_HOP,如上例。
配置的格式2爲:ADDRESS#=DEST
NETMASKE#=Netmask
GATEWAY#=Gateway
例如:那麼格式1用格式2配置如下:
ADDRESS0=192.168.0.0
NETMASKE0=255.255.255.0
GATEWAY0=172.6.100.188
ADDRESS1=192.168.1.10
NETMASKE1=255.255.255.255
GATEWAY1=172.16.100.88
B、ppp:route-ppp#
3、DNS服務器:只能通過編輯/etc/resolv.conf配置,最多三個,至少一個,配置永久有效。
#vi /etc/resolv.conf如下:
# Generated by NetworkManager
nameserver 192.168.127.2
注意:測試DNS是否配置成功命令,只要能解析就說明配置成功:
正解:#dig -t A FQDN,如#dig -t A www.baidu.com
反解:#dig -x IP,如#dig -x 74.125.203.199
4、主機名配置:
(1)、動態(立即生效,但不能永久有效):#hostname HOSTNAME
(2)、靜態(永久有效,但不能立即有效,需要重啓服務。)
#vi /etc/sysconfig/network
NETWORKING={yes|no}本機的網絡總開關,一般爲yes,否則就不能上網。
HOSTNAME=www.lzf.com
六、如何實現在單接口上配置多個地址:通過網絡接口別名來實現。
eth0,那麼它的別名可以是eth0:#格式,如eth0:0,eth0:1,eth0:2....
1、動態配置:
如,ifconfig eth0:0 172.16.100.11/16
2、靜態配置:注意:非主地址不支持使用DHCP協議獲取,所以BOOTPROTO只能是none|static。
如,ifcfg-ethX:Y
DEVICE=ethX:Y
BOOTPROTO={none|static}
IPADDR=
NETMASK=
.
.
七、服務腳本:
1、服務腳本位置 :/etc/rc.d/init.d/或/etc/init.d/
注:網絡服務腳本位置:/etc/init.d/network
2、多數爲控制運行於後臺守護進程,接收的常用參數{start|stop|restart|status}
3、配置某服務開機自動啓動:chkconfig Srv_Script_Name on
4、禁止某服務開機自動啓動:chkconfig Srv_Script_Name off
5、查看某服務:chkconfig --list [Srv_Script_Name]
6、調用機制:
(1)、#/etc/init.d/Script_Name {start|stop|restart|status}
(2)、#service Script_Name {start|stop|restart|status}
八、網絡管理或監測的相關工具:
1、ping:
-c(count) :指定ping的次數。如:ping -c 2 www.baidu.com
2、netstat(網絡狀態探測命令--因爲TCP是有狀態的網絡鏈接):執行速度有點慢。
-n:數字格式顯示
-t:tcp協議的鏈接
-u:udp協議的鏈接
-l(listen):監聽狀態的鏈接
-a:所有狀態的鏈接
-p:鏈接相關的進程
-r:顯示路由表
常用組合:
netstat -tan
netstat -tuan
netstat -tunl
netstat -tnl
netstat -tunlp
netstat -rn,與命令route執行結果一樣
3、ss:執行速度比netstat要快。
-n:數字格式顯示
-t:tcp協議的鏈接
-u:udp協議的鏈接
-l(listen):監聽狀態的鏈接
-a:所有狀態的鏈接
-p:鏈接相關的進程
-e:顯示擴展信息
-m:顯示套接字鏈接使用的內存信息
-o state {established已建立的鏈接|listen 監聽的鏈接}
4、traceroute(追蹤路由):
獲取從當前主機到達目標主機所經過的路由(網關),
不過一般服務器禁止traceroute。
5、ethtool ethX:顯示設備接口屬性。
如:ethtool eth0
ethtool -S ethX:顯示設備接口統計數據。