一、網絡接口配置
【檢視網卡資訊】
1. ifconfig
*錯誤和丢棄資料包數量,與網絡品質有關;溢出資料包總數通常與緩沖區大小及收發資料包速率有關。
2. 檢視所有網絡接口(包括被禁用)
ifconfig -a
3. 檢視IP位址:
ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen1000
link/ether 00:0c:29:6b:8d:81 brd ff:ff:ff:ff:ff:ff
inet 192.168.233.129/24 brd 192.168.233.255 scope global eth0
inet6 fe80::20c:29ff:fe6b:8d81/64 scope link
valid_lft forever preferred_lft forever
【配置網卡】
ifconfig <interface_name> <ip_address> netmask <netmask> [up | down]
上述指令也可以寫成:
ifconfig <interface_name> <ip_address> </prefix_len> [up | down]
其中prefix_len表示以“長度”表示子網路遮罩,需要将子網路遮罩轉換為2進制,然後将這穿2進制數中1的個數寫到prefix_len的位置。
【舉例】
#配置網卡eth1的ip和子網路遮罩,并使該網卡立即生效
ifconfig eth0 192.168.233.129 netmask 255.255.255.0 up
#或者寫成
ifconfig eth0 192.168.233.129/24 up
【網卡配置檔案】
位于/etc/sysconfig/network下,以ifcfg-ethX命名,X是網卡的編号。此外,ifcfg-lo是回環接口的配置檔案。
ifcfg-ethX檔案内容如下:
BOOTPROTO=’static'
STARTMODE='auto'
DEVICE=eth0
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.233.129
【配置項說明】
·BOOTPROTO:網卡開啟後應如何擷取配置,參數值如下:
dhcp:從dhcp伺服器自動擷取ip、掩碼、預設網關及DNS位址等資訊;
static:使用該配置檔案中的設定,這時要求該檔案中至少包含IP、預設網關、子網路遮罩這幾項資訊。
none:有兩種含義,一是這個網卡有其他用途(比如網卡處于bonding)、不需要使用IP位址;還可能網卡使用靜态IP位址。
·STARTMODE:決定了該網卡以何種方式啟動.有以下幾個參數:
manual:需要系統啟動後手動輸入ifup 網卡名(比如eth0)進行啟動;
auto:網卡會在系統啟動時啟動(如果網絡連接配接可用的話),或者在網絡連接配接被激活時、實時激活該網卡;
hotplug:和auto功能類似,差別在于網卡啟動失敗後、不會再嘗試rcnetwork指令;
nfsroot:與auto含義類似,差別在于配置了該參數後、該網卡就無法通過rcnetwork stop. ifdown <interface> -o force指令關閉;該參數用于iBFT中。
*BFT是一種将 iSCSI 引導裝置的相關參數傳遞到作業系統的方法。首次從 iSCSI 引導時,系統上的iSCSI 引導固件将連接配接到 iSCSI 目标。如果登入成功,則固件會将網絡和 iSCSI 引導參數儲存到iBFT,并将該表存儲在系統記憶體中。系統可使用此表配置其自己的 iSCSI 連接配接和網絡并啟動。
off:表示該網卡無法通過任何方法激活
ifplugd:多網卡環境下,網卡的啟動優先級;如果配置了這個參數,則下面的IFPLUGD_PRIORITY參數也需要配置到該檔案中;
·IFPLUGD_PRIORITY:當STARTMODE=ifplugd時,該參數辨別了該網卡的啟動優先級,預設為0.
·DEVICE:該網卡的名字
·NETMASK:子網路遮罩
·IPADDR:IP位址
·BROADCAST:廣播位址(網絡号),IP位址與子網路遮罩通過二進制“與”運算後自動擷取,一般不用寫(配了反而容易配錯)
*配置項的名字一定要用大寫,裡面的參數使用小寫字母。其他的配置項說明可以登入系統通過man ifcfg指令檢視。
【改變網絡服務狀态】
啟動網絡服務
service network start
停止網絡服務
service network stop
重新開機網絡服務
service network restart
停、啟某個網卡:
ifdown eth0(或者:ifconfig eth0 down)
ifup eth0(或者:ifconfig eth0 up)
檢視網卡狀态及網卡型号:
rcnetwork status
二、路由
*路由器:為資料包尋找最佳傳輸路徑的網絡裝置,是一種專門負責計算資料包傳輸路徑的“計算機”。
【路由表】
使用route指令檢視主機路由表(或者使用route -n,或者netstat -rn):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
loopback * 255.0.0.0 U 0 0 0 lo
link-local * 255.255.0.0 U 0 0 0 eth0
192.168.233.0 * 255.255.255.0 U 0 0 0 eth0
【結果說明】
Destination:目标IP,default表示預設路由(就是指向預設網關的條目)。
Gateway:網關位址,即下一跳的路由器位址,*表示直接與主機連接配接,不需要網關位址。
Genmask:目标IP的子網路遮罩
Flags:路由标記,U-活躍狀态,H-目标是主機,G-指向預設網關的路由,R:恢複動态路由産生的條目,D-背景路由程式動态安裝,M-路由背景程式修改過的條目,C-緩存的路由條目,!-拒絕路由的條目
Metric:該路由到達目标IP的代價值,越低越好
Ref:該條路由被引用的次數
Use:該條路由被路由軟體查找的次數
Iface:目标網卡名
【增/删預設路由】
route [add|del] default gw ip_address
該指令并不會儲存配置到配置檔案中,但可以快速确定網絡接口對應的網絡
【增/添路由條目】
route[add|del] [net|host] ipadd1 [netmask mask_IP] [gw|dev] gw_ipadd2|dev_name
[add|del]:添加/删除一條路由
[net|host]:目标是一個網絡還是主機
ipadd1:目标網絡的IP位址
ipadd2:下一跳路由器的IP位址
[netmask mask_IP]:目标主機IP的子網路遮罩,如果目标是一個網絡,此參數省略。
[gw|dev]:下一跳路由器的位址或要使用的網絡接口
【舉例】
1. 新增路由
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.233.1
或
route add -net 192.168.1.0/24 gw 192.168.233.1
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
loopback * 255.0.0.0 U 0 0 0 lo
link-local * 255.255.0.0 U 0 0 0 eth0
192.168.1.0 192.168.233.1 255.255.255.0 UG 0 0 0 eth0
192.168.233.0 * 255.255.255.0 U 0 0 0 eth0
2. 删除路由
route del -net 192.168.1.0/24 gw 192.168.233.1
【永久配置路由】
SUSE下打開/etc/sysconfig/network/routes,填寫如下:
#Destination Dummy/Gateway Netmask Device
第一列為路由目标,可以是網絡或主機的IP位址;
第二列包含預設網關或通過其可通路主機或網絡的網關;
第三列包含網關後的網絡或主機的子網路遮罩;
第四清單示該條路由從哪個裝置出去。
*注:實際試了一下,添加後重新開機網絡,用route或者netstat -rn指令查不出新增的路由,待定。
【路由彙總】
如果路由表條目過多,會導緻網絡性能下降,這是可以将一組路由條目彙總成單個路由廣播,比如,要将192.168.192.0~192.168.233.0的網絡彙總成一條路由廣播添加到路由表中:
route add -net 192.168.192.0/18 dev eth0
計算路由器的彙總路由,需判斷這些位址最左邊的多少位相同的。計算彙總路由的步驟如下:
第一步:将位址轉換為二進制格式,并将它們對齊
第二步:找到所有位址中都相同的最後一位。在它後面劃一條豎線。
第三步:計算豎線前面有多少位是相同的,記為n。彙總路由為第1個IP位址加上斜線,斜線後面寫剛才數出來的數字n。
三、主機名
【檢視主機名】
hostname
【修改主機名】
1. hostname new_hostname
2. SUSE下修改/etc/ HOSTNAME檔案,将.site前面的字元串改成新主機名即可
【/etc/hosts】
修改主機名後,還要修改/etc/hosts檔案中的映射關系,将本機IP和主機名加到這個檔案中,空格分隔;以保證依賴主機名工作的服務能夠正常工作。
四、其他網絡指令
【ping】
ping [option] ip_address
【OPTION】
c:指定發送資料包的個數
f:快速發包,用于極限測試
s:指定發送資料包的大小,機關Bytes
l:指定發送資料包的網絡端口
R:顯示資料包經過的路由
t:指定資料包使用的TTL值
*TTL:Time To Live的縮寫,該字段指定IP包被路由器丢棄之前允許通過的最大網段數量。TTL是IPv4標頭的一個8 bit字段。最大值255,預設值64。
【traceroute】
可以測試出經過的路由中、哪個節點有問題
【netstat】
【OPTION】
t:列出正在使用的tcp連接配接
u:列出正在使用的UDP連接配接
a:檢視所有正在連接配接中的套接字
n:以IP位址的形式顯示(而非域名)
p:顯示套接字對應的程序名即PID
l:隻顯示正處于監聽狀态的套接字
*套接字:系統處理相同端口的不同TCP、UDP連接配接的接口
i:檢視網卡使用情況
例:顯示正在監聽網路的程序、端口、PID
netstat -tunlp
【輸出說明】
Iface:網卡名
MTU和Met:最大傳輸單元及路徑成本
RX-OK和TX-OK:正常發送、接受的資料包個數
RX-ERR和TX-ERR:發送和接收到的錯誤資料包個數
RX-DRP和TX-DRP:發送、接收過程中丢棄的資料包個數
RX-OVR和TX-OVR:發送、接收過程中溢出(或者叫丢失)的資料包個數
Flg:辨別了目前網卡的工作狀态,隻有處于RU狀态的網卡才能正常工作
B:該網卡設定了廣播位址
M:處于混亂模式,可以接收所有資料包
R:網卡正在運作,可以接收資料包
U:網卡處于開啟狀态
L:該網卡是一個環回接口
State:使用a、n等選項時會被展示
ESTABLISHED:目前套接字已經存在一個連接配接
SYN_SENT:套接字正在積極嘗試建立連接配接
SYN_RECV:已經收到一個連接配接請求
CLOSE_WAIT:遠端端口已關閉,正在等待套接字關閉
FIN_WAIT1:套接字已經關閉,連接配接正在關閉
CLOSED:套接字沒有被使用
LISTEN:套接字處于監聽狀态
UNKNOWN:套接字狀态位置
【域名解析】
dig和nslookup
五、網絡通信過程
主要經曆以下三個過程:
【域名轉換】
通信之前,會對目标位址進行檢查,如果位址是一個域名,則需要對域名進行轉換;首先檢視hosts檔案中是否包含對應記錄,如果沒有,則會到對應的DNS伺服器上查詢。
【封裝資料包】
經過應用層和傳輸層的某些協定封裝,資料被傳遞到網絡層,開始經IP協定,對資料進行拆分、封裝,并加上IP頭,将其傳遞到資料鍊路層再次封裝(加上MAC位址)和校驗資訊,最後經過實體層傳輸。
【資料發送】
按照路由表中的路由進行傳輸。
【網絡故障排查思路】
1. ping指令測試網絡通訊是否正常,否則需要确認預設網關、DNS位址是否合理正确
2. traceroute判斷故障發生在哪個路由器
3. 檢查實體連接配接
