linux網絡配置詳解

基礎知識:

局域網內尋址通過MAC地址(物理地址)來實現

FF:FF:FF:FF:FF:FFMAC的廣播地址,主機間通信發起方如果不知道接收方MAC會用此MAC地址發一個廣播包。

 

電纜傳輸過程:電流(電信號)------經過一段距離(電阻)-----電信號衰減中繼器

 

不同介質的傳輸距離不同,但都是有限的。

 

網橋、交換機:切割衝突域(有端口MAC對應表,定期清理---學習)

路由器:(有路由表,定期學習、清理),選路根據路由協議,邏輯尋址依靠被路由協議(如ip協議)切割廣播域(引入IP等邏輯地址尋址)

 

網絡模式:

單工:只能單向發送數據。

半雙工:可以雙向發送數據,但同一時刻只能有一方可以發送數據(如對講機)。

全雙工:如雙絞線,傳輸數據只要用到2跟線(一個爲發送數據用的,一個爲接收數據用的),另外2根用來屏蔽干擾。雙機互聯必須使用交叉線(一端收,一端發),雙方同時可以向對方發送數據,就如同電話機,電話線就只有兩條線!---千兆網絡需要使用雙絞線全部8條線

 

主機要聯網----必須設置一個網關(即默認路由)

 

***MAC地址不能跨網絡,每次都由router封裝爲自己出口網口的MAC地址(主機間通信最終還是要靠MAC地址!)

 

ARPIP--MAC已知對方ip地址,請求mac地址

RARP(MAC—IP, 已知對方MAC地址,請求IP地址)

 

IP地址分爲2段:網絡地址.主機地址;以子網掩碼標識網絡位。

 

子網掩碼:是一堆連續的10組成的二進制數字。

 

路由過程:發信息前,系統判定目標主機是否屬於本主機所在網絡,若不是則通過網關發出去。

 

**端口(範圍065535):系統通過端口來識別同一系統上的不同進程,以表示2臺不同主機的進程間的通信。流程:數據包----網卡----內核空間(查看目標端口號)-----用戶空間對應進程

 

*服務器需要監聽在某端口上,它的端口號必須固定以便於客戶端訪問。

 

*一個端口只能對應一個進程,2者之間建立起對應關係,這種機制對於服務器端稱爲被動打開,對於客戶端稱爲主動打開。

 

端口與IP有一一對應的關係,1server上有多個ip,就可以有多個80端口可供使用(每個ip一個80端口),對於server程序來說,必須至少與其中一個ip綁定,這種綁定(1ip1個端口)稱爲套接字(socket

 

ISO/OSI 7層網絡模型

 

 

TCP/IP網絡模型

 

IP地址分類A\B\C\D

 

127.0.00/8用於迴環地址

 

*主機位全1爲廣播地址,全0爲網絡地址

 

*)國際組織ICANN管理IPv4地址,如需使用需要向他們註冊購買

 

私有地址(這些地址不會被互聯網上的路由器路由的,路由即選路):

A類:10.0.0.0/8

B類:172.16.0.0/16------172.31.0.0/16

C類:192.168.0.0/24-----192.168.255.0/24

 

術語:

主機路由:目標地址爲主機IP的路由條目。

網絡路由:目標地址爲網絡IP的路由條目。

 

*路由選路原則:一般以最佳匹配/最長匹配條目優先。

 

*默認路由/缺省路由:0.0.0.0  在路由表中找不到目標IP的條目時走這條路由。

 

超網(將幾個小網絡合併爲一個大的網絡,對應網絡位轉爲主機位)

分網(變長子網掩碼,將一個大網絡分爲幾個小網絡)

 

*遠端主機之間底層(物理層)可能不同,可能是ethernet/ppp/ATM等不同的MAC算法的網絡,這些都由router來屏蔽了不同。

 

TCP/IP網絡模型

第四層:傳輸層

TCP協議:傳輸控制協議,有連接的協議

UDP協議:用戶數據報協議,無連接的協議;不管接收方是否可以收到,只管發,效率高,用於例如QQ等即時通訊軟件,UDP較簡單,採用UDP的程序一般通過應用層來控制傳輸錯誤。

 

 

TCP協議描述:有連接的協議;先敲門,試探性地詢問目的方在不在,如無響應則不發,如有相應則發送報文,並且每發一個報文接收方都要確認一下,TCPUDP更加可靠,但傳輸效率低,目前網絡服務90%以上都採用TCP

 

TCP協議通信過程:

1,  通信雙方建立連接(3次握手)

2,  傳輸數據

3,  斷開連接,發起方發送斷開請求—timewait1----time wait2--關閉連接。

 

TCP3次握手過程(第12步爲新建連接的過程,第3步爲連接已建立的過程)

1)  發送方向接收方發起連接請求(將SYN位置爲1SN序列號,sn=100

2)  接收方確認(syn=1,ack=1,an(確認號)=101(意思爲:100號報文已收到,可以發101號報文),sn=300(這是響應方的報文序列號,是另外一套編號體系))

3)  發送方(Ack=1sn=101an=301------此時連接狀態爲已建立(Established

4)  接下來開始傳輸數據:接收方發送報文(ack=1,sn=301,an=102

 

TCP斷開連接過程(四次斷開)

1)  發送方想接收方發起請求(fin=1,ack=1,an=xxx

2)  略。。。。。。。

 

TCP有限狀態機的概念:即tcp連接不管什麼時候,總是處於一種狀態中的!在TCP連接的不同的階段有不同的狀態!

 

linux網絡配置命令

 

對於linux,內存分爲:

用戶空間:命令:配置ip,臨時生效;配置文件:永久生效(系統啓動時讀取)

內核空間:網絡功能(TCP/IP協議棧),網絡的配置在內核生效

 

網絡配置的內容:

ip地址,子網掩碼,網關,本機的DNS服務器,路由,主機名,幾塊網卡綁定(用於網卡冗餘/加大吞吐量)

以上配置可以手工指定,也可以動態從DHCP服務器獲取

*linux也可以作爲router來使用!

 

*本機的多個DNS服務器的配置:第一個dnsserver不在線則找第二個;不是第一個dns server解析不出再找第二個!解析不出就不解析了。所以應該把訪問速度最快的dns server放在第一個。

 

*DHCP動態獲取ip地址:如獲取不到DHCP分配的地址,會隨機生成一個169.254.0.0/16網段的ip,此ip只能用於本地網絡間主機通信,無網關。

 

*linux內核:網絡屬於內核功能,ip地址屬於內核,不屬於網卡,只要當前主機有的ip,別人在另一塊網卡的ipping進來,也會給予響應(即使與ping請求的源ip不屬於同一網段)!

lo:本地迴環網絡接口(兼serverclient,在內存中完成通信)

 

以太網卡名稱:ethX範圍從eth1eth100

pppXppp1----ppp2

 

*系統一般將網卡模塊定義爲一個別名(配置文件:/etc/modprobe.conf,可以自己去改這個名字。例  alias  eth0 pcnet32

 

*(RHEL6)系統一般將網卡模塊定義爲一個別名

(配置文件:/etc/udev/rules.d/70-persistent-net.rules,可以自己去改這個名字。

 

 

ifconfig命令(顯示當前系統上處於活動狀態的網卡信息),顯示信息關鍵字如下:

Rx:接受到的包的個數                   Errors:錯誤包個數       dropped:丟棄報個數

Tx:發送的包的個數               collisions:衝突包個數overruns:溢出包個數

txqueuelen:傳輸隊列長度      Rx bytes:接受到的字節數 Tx bytes:傳出去的字節數

Interrput:中斷號

 

ifconfig命令使用示例:

ifconfig -a 顯示所有連接(接口)配置信息

ifconfig ethX顯示指定連接(接口)配置信息

ifconfig ethX IP/mask(指定連接(接口)ip2種風格:(1x.x.x.x/24(2)x.x.x.x/255.0.0.0

ifconfig ethX IP/mask [up|down] (指定連接(接口)ip並啓用|關閉對應接口)

 

ifup/ifdown ethX  啓用或關閉對應接口

以上配置方式是一次生效,重啓網絡服務後即失效

 

RHEL5上網絡服務腳本:/etc/init.d/network

RHEL6上網絡服務腳本:/etc/init.d/NetworkManager(建議禁用使用NetworkManager服務)

 

網關添加(臨時):

route [add|del]  [-host(主機路由)|-net(網絡路由)]DEST  gw NextHop

route命令不帶參數爲查看系統路由表,DESTdefault爲默認路由。

route命令輸出詳解:flagsU爲本地網絡,就是本機直連的。UG爲網關路由,需要通過網關發出去。

route命令實例:

默認路由添加:#route  add  default gw NextHop

                            #routeadd  -net 10.0.0.0/8 gw 192.168.10.1

route –n(以數字形式(不解析主機名)顯示路由信息,這樣執行速度會比較快)

 

 

 

 

 

配置文件配置網卡ip(永久有效)

示例:vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #表示關聯的設備

BOOTPROTO={static|none|dhcp|bootp} #引導的協議

IPADDR=

NETMASK=

GATEWAY=

ONBOOT= #network服務啓動時是否自動激活此接口

HWADDR= #硬件地址,要與硬件中的地址保持一致,可以省略

USERCTL={yes|no} #是否允許普通用戶控制此接口

PEERDNS={yes|no} #是否在BOOTPROTOdhcp時接收由dhcp服務器指定的DNS地址,並更新到/etc/resolve.conf

 

*這種方式配置網卡不會立即生效,但重啓網絡服務後會生效!

 

配置路由(配置文件形式):/etc/sysconfig/network-scripts/route-ethX(自己在這個目錄下建一個對應網口的路由配置文件,通過那個網口出去就寫那個網卡名稱)

有兩種添加格式:

1)  Dest  via  NextHop

例如:vi route-eth1輸入:

  1. 168.10.0/24 via 10.10.10.254     :x保存退出

#service network restart#route –n

2) 例如:vi route-eth1輸入:

ADDRESS0=192.168.0.0

NETMASK0=255.255.255.0

GATEWAY0=192.168.0.1

ADDRESS1=

NETMASK1=

GATEWAY1=

 

*DNS Server指定方法:編輯/etc/resolve.conf(最多指定3個)用nameserverx.x.x.x來指定

可以指定的DNS Serverdhcp服務器指定的DNS地址給覆蓋掉,將ifcfg-ethXPEERDNS=no設置一下即可不被覆蓋。

 

指定本地解析:

編輯/etc/hosts文件:輸入:10.0.0.1(IP)  www.a.com(主機名)  www(別名)

本地解析主機名順序一般爲:1)先找hosts文件2)再找dns緩存3)再找dns服務器

這個順序可以在/etc/nsswitch.conf文件中配置!

 

臨時配置主機名:hostname命令

永久配置主機名:編輯/etc/sysconfig/network文件

HOSTNAME指令配置主機名

NETWORKING={yes|no}指令指定是否啓用網絡(IPv4)總開關,也可以在這個文件中定義GATEWAY=(全局的網關)-----*****在網卡配置文件中定義的GATEWAY更加優先,那個是專門對應於網卡的,這裏的GATEWAY是全局的。

 

策略路由:某個網絡採用哪一張路由表(系統可以有多張路由表)

 

軟件包iproute2提供了很強大的命令集,其中包含ip命令,ip命令的有些高級功能是ifconfig命令無法替代的。它可以控制流量

ip link(網絡接口屬性)        show

                                                        set ethX   [up|down|arp {on|off}]

ip命令過於強大,此處略!                                                                                   

 

一個網卡可以有多個IP,用別名來配置

示例:

#ifconfig eth0:0  x.x.x.x/24

讓別名永久生效:

新建一個配置文件/etc/sysconfig/network-scripts/ifconfig-ethx:x(注:別名不能使用dhcp協議,只能配置靜態地址!)

 

*)/etc/init.d/NetworkManager(此服務不支持網絡橋接功能,建議禁用此服務)

禁用此服務方法:

將網卡配置文件中

NM_CONTROLLED=no

#chkconfig NetworkManager off

#chkconfig network on

#service NetworkManager stop

#service network start

 

***實現網卡配置時,可以複製其他的網卡配置文件在此基礎上改一下即可,但注意HWADDR一定要改過來,覺得麻煩刪掉HWADDR這一行也可以!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章