歡迎您光臨本站 註冊首頁

LINUX 網路基礎

←手機掃碼閱讀     火星人 @ 2014-03-22 , reply:0

教學內容:
 TCP/IP協議
 網路配置文件
 服務的啟動
教學目標:
 了解Linux支持的網路服務
 熟悉Linux中服務的啟動方式
 掌握Linux的乙太網設置、網路操作命令、服務的啟動方法
教學重點:
 乙太網的設置
 網路常用命令
 服務的啟動方法
教學難點:
 超級伺服器
一. TCP/IP協議
1. TCP/IP參考模式

(1) 網路介面層
  實際上TCP/IP參考模型沒有真正描述這一層的實現,只是要求能夠提供給其上層Internet層一個訪問介面,以便在其上傳遞IP分組。由於這一層次未被定義,所以其具體的實現方法將隨著網路類型的不同而不同。
(2) Internet層
Internet層是整個TCP/IP協議組的核心。它的主要功能是負責網路間的定址和數據傳輸,該層定義的主要協議如表8-1所示。
表1-1 Internet層協議
協議 說明
IP 提供主機之間的分組傳輸和路由選擇服務
ICMP 控制主機與網關之間差錯及控制報文的傳輸
ARP ARP把基於TCP/IP軟體使用的IP 地址解析成區域網硬體使用MAC地址
RARP 主要應用於無盤節點,把無盤節點的IP地址解析成MAC地址
(3). 傳輸層
  在TCP/IP模型中,傳輸層的功能是使源端主機和目標端主機上的對等實體可以進行會話。在傳輸層定義了兩種服務質量不同的協議。即:傳輸控制協議TCP(transmission control protocol)和用戶數據報協議UDP(user datagram protocol)。
  TCP協議是一個面向連接的、可靠的協議。它將一台主機發出的位元組流無差錯地發往互聯網上的其他主機。在發送端,它負責把上層傳送下來的位元組流分成報文段並傳遞給下層。在接收端,它負責把收到的報文進行重組后遞交給上層。TCP協議還要處理端到端的流量控制,以避免緩慢接收的接收方沒有足夠的緩衝區接收發送方發送的大量數據。
  UDP協議是一個不可靠的、無連接協議,主要適用於不需要對報文進行排序和流量控制的場合。
(4) 應用層
TCP/IP模型將OSI參考模型中的會話層和表示層的功能合併到應用層實現。應用層面向不同的網路應用引入了不同的應用層協議,其中常用的協議如表8-2所示。
表1-2 應用層協議
協議 說明
FTP 用於實現主機之間的文件傳輸功能
HTTP 用於實現互聯網中的WWW服務
SMTP 用於實現互聯網中的電子郵件傳送功能
DNS 用於實現主機名與IP地址之間的轉換
SMB 用於實現Windows主機與Linux主機間的文件共享
TELNET 用於實現遠程登錄功能
DHCP 用於實現動態分配IP配置信息
2. TCP/IP子協議介紹
(1) internet層協議介紹
 IP協議
說明:主要負責在主機之間定址和選擇數據包的路由,數據報的分組和封裝。IP協議不含錯誤恢復的編碼,屬於不可靠的協議.它是網路的最主要的協議
IP包格式:

路由表操作:
#route(顯示當前系統的路由表信息)
#route add ?net 192.168.0.0/24 dev eth0 (添加網路路由)
#route add ?host 192.168.3.2 dev eth1(添加主機路由)
#route add ?host 192.168.1.3 gw 192.168.1.1
#route add default gw 192.168.0.1(添加默認網關)
#route del ?host 192.168.3.2. dev eth1(刪除路由)
#route del ?net 192.168.0.0/24 dev eth0
#route del default gw 192.168.0.1
 ICMP協議
說明:通過ICMP協議,主機和路由器可以報告錯誤並交換相關的狀態信息。在下列情況中,通常自動發送ICMP消息
• IP數據報無法訪問目標。
• IP路由器(網關)無法按當前的傳輸速率轉發數據報。
• IP路由器將發送主機重定向為使用更好的到達目標的路。
ICMP包格式:


ICMP包類型:

 ARP協議
說明:ARP把基於TCP/IP軟體使用的IP 地址解析成區域網硬體使 用MAC地址
ARP工作過程

ARP表的操作:
#arp (顯示arp地址表)
# arp -s 192.168.3.1 00:60:08:27:ce:b2(向arp地址表中添加記錄)
#arp -d 192.168.3.1(刪除arp地址表的記錄)
#arp -f (從/etc/ethers文件中讀取添加的記錄)
(2) 傳輸層協議
 TCP協議
說明:提供可靠的、面向連接的數據報傳遞服務. 確保正確排序以及按順序傳遞分段的數據。通過計算校驗和,進行傳輸數據的完整性檢查。根據數據是否接收成功發送消息。通過有選擇的確認,也對沒有收到的數據發送確認。
TCP數據報格式:
來源埠(2位元組) 目的埠(2位元組)
序號(4位元組) 確認序號(4位元組)
頭長度(4位) 保留(6位)
URG ACK PSH RST SYN PIN
窗口大小(2位元組) 校驗和(16位)
緊急指針(16位) 選項(可選)
數據

工作過程:
 通過「三次握手」建立連接
 發送數據
 斷開連接
UDP協議:
說明:UDP提供的是非連接的數據報服務,意味著UDP無法保證任何數據報的傳遞和驗證。
UDP包格式:
源埠(2位元組) 目的埠(2位元組)
封報長度(2位元組) 校驗和(2位元組)
數據
3.IP地址和子網掩碼
(1)IP的定義
• IP地址是一個網路編碼,它既可以是一個 主機(伺服器、客戶機)的地址,也可以是路由器一個埠的地址,即IP地址確定的是網路中的一個連接。
• 所有的IP地址都由國際組織NIC(Network Information Center)負責統一分配,目前全世界共有三個這樣的網路信息中心
? INTERNIC:負責美國及其它地區
? RIPE-NIC: 負責歐洲地區
? APNIC: 負責亞太地區,總部設在日本東京大學
(2)IP地址的表示
• 點分二進位/十進位表示
(3)公有地址和私有地址
• 公有IP地址是唯一的, 由IANA統一管理和分配
• 私有IP地址不能直接與Internet連接的地址,解決公有地址短缺的問題

(4)子網掩碼
• 子網掩碼的功能
? 區分IP地址的網路ID和主機ID
? 區分是本地主機還是遠程主機
• 預設掩碼
? A類地址
255.0.0.0
? B類地址
255.255.0.0
? C類地址
255.255.255.0
• 子網劃分
? 網路位向主機位「借」位
? 劃分子網的個數:2n-2 ,n是網路位向主機位所借的位 數
? 每個子網的主機數:2m-2 ,m是借位后所剩的主機位數
(4)服務和埠
TCP/UDP的埠範圍為0—65535,其中0—255稱為「知名埠」,該類埠保留給常用服務程序使用。256—1024是用於UNIX/Linux專用服務;1024以上的埠為動態埠,動態埠不是預先分配的,必要時才將它們分配進程。
服務名稱 默認埠
www 80(TCP)
ftp-control 21(TCP)
ftp-data 20(TCP)
smtp 25(TCP)
telnet 23(TCP)
dns 53(UDP)
pop3 110(110)
二. 網路配置文件
1. /etc/sysconfig/network 文件
功能:設置主機最基本的網路信息,包括主機名、默認網關等信息
內容:
① NETWORKING= yes/no 設定啟動系統時是否啟用網路服務。
② HOSTNAME= www.sina.cm 設定主機名(不是NETBIOS名)。
③ GATEWAY= 192.168.0.1 設定默認網關。
④ GATEWAYDEV= eth0 設定網關介面。
⑤ FORWARD_IPV4= yes/no 設定LINUX是否支持IP轉發。
2. /etc/sysconfig/network-scripts/ifcfg-ethX(X取值0,1,2,…….n)
功能:用於配置乙太網介面卡的初始信息,。
內容:
① ONBOOT= yes 在設定啟動時,是否激活網卡。
② DEVICE= eth0 設定物理設備名稱。
③ BOOTPROTO= none|static|dhcp|bootp 設定網卡啟動協議。
④ NETMASK= 255.255.255.0 設定子網掩碼。
⑤ BROADCAST= 192.168.3.255 設定廣播碼。
⑥ NETWORK= 192.168.3.0 設定網路號。
⑦ IPADDR= 192.168.3.2 設定主機IP。
注意:一個乙太網卡如何綁定多個IP地址?
實例:設定主機中存在的eth0設備,它的ip地址是:192.168.3.1/24,要求給eth0再綁定ip:192.168.5.1
① # cp /etc/sysconfig/network-scripts/ifcfg-eth0 至
/etc/sysconfig/network-scrppts/ifcfg-eth0:0(x的取值從0開始)
② # vi /etc/sysconfigt/network-scrpts/ifcfg-eth0:0
修改後:
DEVICE= eth0:0
ONBOOT= YES
BOOTPROTO=NONE
IPADDR=192.168.5.1
NETMASK=255.255.255.0
NETWORK=192.168.5.0
BROADCAST=192.168.5.255
3. /etc/resolv.conf
功能:域名服務客戶端的配置文件,用於指定域名伺服器的位置
內容:
domainname linux.cn 設定主機域名。
search linux.cn 設定搜索列表。
nameserver 192.168.0.254 設定DNS伺服器的IP(最多三個)。
4. /etc/host.conf
功能:配置DNS解析順序及解析相關參數
文件選項:order bind,hosts/hosts,bind 配置解析順序
     multi on/off 設置hosts文件中是否允許一主機名對應多個IP地址
nospoolf on/off 是否防止主機欺騙
5. /etc/hosts
功能:配置主機名和IP的對應關係,可利用該文件進行名稱解析
文件格式:
IP地址     主機名 主機別名
192.168.0.1 www.abc.com www
6. /etc/hosts.deny和hosts.allow
功能:控制訪問tcp服務的客戶機地址,hosts.allow設置允許訪問的客戶機地址,hosts.deny設置禁止訪問的客戶機地址。如果兩個文件的配置文件有衝突,以hosts.deny為準.
格式:server_name:hosts-list
實例:smbd:192.168.2.0/255.255.255.0
7. /etc/services
功能:配置服務埠開放情況,不需要埠可以通過記錄行關閉埠
三. 服務的啟動
1. 守護進程的定義
linux系統上提供服務的程序是由運行在後台的守護程序來執行的,這些後台守護程序監聽特定埠上的客戶機的請求,並且為客戶機提供相應的服務,我們稱這個後台的守護程序稱為「守護進程」,又稱「服務」。
2. 服務的運行方式
⑴ 獨立運行方式:獨立運行的服務由init腳本負責管理,並且每項服務只監聽該服務指定的埠,服務的啟動腳本存放在/etc/rc.d/init.d。
⑵ 超級服務運行方式:超級服務由xinetd管理,xinetd同時創建多個socket和監聽多個埠,由xinetd管理的服務的配置文件存放在/etc/xinetd.d目錄中。
3. 服務的啟動、關閉與重啟
⑴ 獨立服務的啟動、關閉與重啟
手工方式:
①# /etc/rc.d/init.d/腳本名
實例:
#/etc/rc.d/init.d/network restart
②# service 服務名
實例:
#service httpd start
自動方式:
①# ntsysv [- -level 級別]
實例:
# ntsysv(設置當前運行級別要運行的服務)
# ntsysv -?level 5(設置啟動5號運行級別要運行的服務)
②# chkconfig [- -list | - -level 級別] [服務名 ]
實例:
#chkconfig ?-list(顯示各項服務在每個運行級別中的狀態)
#chkconfig ?-level 3 dhcpd on
⑵ 超級伺服器的啟動、關閉與重啟
手工方式:
①# /etc/rc.d/init.d/xinetd
②# service xinetd
自動方式:
①# ntsysv [--level] 級別
②# chkconfig [--list|--level] 級別 服務名
4. xinetd
⑴ xinetd的功能
 支持對rpc 、tcp、udp服務的啟動、關閉、重啟
 實現基於時間段的訪問控制
 tcp_wrapper的主機訪問控制
 能將服務綁定到指定的埠上
 能限定日誌大小
 能限制客戶機的併發連接數
⑵ xinetd的安裝
# rpm ?ivh xinetd-2.3.10-6.i386.rpm
相關文件:
/etc/xinetd.d目錄:存放xinetd被管對象的配置文件
/etc/rc.d/init.d/xinetd:xinetd的啟動腳本
/etc/xinetd.conf:xinetd配置文件
(3)xinetd的配置
 xinetd.conf的設置
功能:指定由xinetd管理的服務的默認選項
文件內容:
defaults {
instances=60       指定服務所接受客戶機併發連接的最大值
log_type=syslog authriv   指定日誌記錄方式
log_on_sucess=HOST PID   指定客戶機連接成功時登記的信息
log_on_failure=HOST RECORD 指定客戶機連接失敗時登記的信息
}
includedir /etc/xinetd.d 指定由xinetd管理的服務配置文件存放位置
 設置由xinetd管理的服務的配置文件
文件格式:
service 服務名 {
選項 操作符 值
選項 操作符 值
…………
…………
…………
}
說明:
 操作符
=  表示給選項分配一個或者多個值
+= 表示給選項在原有基礎上添加一個或多個值
-= 表示給選項在原有基礎上減小一個或多個值
 選項
 socket_type=stream(tcp)|dgram(udp)|seqpacket(可靠的有序數據報)
定義TCP/IP SOCKET類型
 log_type=SYSLOG 文件名/文件名
設置日誌類型,SYSLOG表示用SYSLOG記錄到指定日誌文件中,也可以記錄到指定文件中
 server=路徑
設定守護進程對應程序的位置
 protocol=tcp/udp/..
設定服務的工作協議,可以參照/etc/protocols文件
 port=埠號
設定服務的工作埠,可以參照/etc/services文件
 wait=yes/no
服務在啟動時,xinetd的其他服務是否等待
 log_on_sucess=HOST|PID|USERID|EXIT|DURATION
設置登錄成功時所記入日誌中的信息
HOST表示客戶機的ip地址
USERID表示客戶機的登錄用戶的UID
PID表示進程的PID
EXIT表示登記進程終止狀態
DURATION表示記錄會話持續期
 log_on_failure=HOST|USERID|RECORD
指定失敗時登記的信息,RECORD客戶機信息如本地用戶,遠程用戶和終端類型
 user=用戶名
設置服務的管理員帳號
 group=組名
設置服務管理員所屬組
 type=rpc/internal/unlisted
設定服務類型
rpc表示RPC服務
internal表示xinetd內置服務
unlisted表示/etc/services或/etc/rpc文件中沒有列出的服務
 access_times=hh:mm-hh:mm
設置訪問時間
 flags=REUSE|INTERCEPT|NORETRY|IDONLY
設置socket標記信息
REUSE設置socket可重用
INTERCEPT獲取數據報進行訪問檢查
NORETRY表示fork失敗,不重試
IDONLY 表示只有在遠程端識別遠程用戶時才接受該連接
 only_from=主機IP/網路號/主機名
設定允許訪問的客戶機,可以有以下幾種表示方法:
0.0.0.0  表示匹配所有主機的IP地址
x.x.x.0 x.x.0.0 x.0.0.0 其中的0具有通配符的含義,如:192.168.3.表示從192.168.3.0到192.168.3.255的所有ip地址
x.x.x{a,b,……}       指定主機表
ip地址/netmask       定義要匹配的網路號
 no_access=主機IP/網路號/主機名
禁止訪問的主機
 instances=數字
設定客戶機併發連接的最大值
 disable=YES/NO
設定是否禁用服務
 bind=主機IP /介面名
綁定服務至指定介面,必須先指定protocol值和port
 redirect=主機IP [埠號]
伺服器的重定向, 必須先指定protocol值和port
 per_source=數字
設置每個客戶機最大併發連接數
 banner=文件名
設置客戶機連接時顯示的歡迎信息文件
 banner_success=文件名
設置客戶機連接成功時顯示存入指定文件中內容
 banner_fail=文件名
設置客戶機連接失敗時顯示存入指定文件中內
 cps=數字 數字
限制客戶連接速度,第一個數字代表每秒鐘連接的句柄數,如果客戶機超個這個數字,伺服器就會臨時中斷此次連接,第二個數字代表客戶機的連接被臨時中斷後,等待多長時間會自動恢復,默認這兩個數字為50,10
實例:設置telnet的服務配置文件,使其達到以下要求:
 啟動系統時啟動telnet服務
 只接受192.168.0.3客戶機在6:00-18:00時間內連接
 綁定服務在192.168.0.2網路介面
# vi /etc/xinetd.d/telnet
Service telnet {
Disable=no
Flags=rescue
Socket_type=stream
Wait=no
User=root
Server=/usr/sbin/in.telnetd
Protocol=tcp
Port=23
Log_on_failure +=USERID
Only_from=192.168.0.3
Access_times=6:00-18:00
Bind=192.168.0.2
Per_source=5
Instances=5
}

[火星人 ] LINUX 網路基礎已經有506次圍觀

http://coctec.com/docs/linux/show-post-103517.html