網絡模型與linux資源管理工具

osi七層網絡模型
TCP/iP五層網絡模型
htop
vmstat
dstat
ip命令
ss命令

  1. 簡述osi七層模型和TCP/IP五層模型
  2. 簡述iproute家族命令
  3. 詳細說明進行管理工具htop、vmstat等相關命令,并舉例
  4. 使用until和while分別實現192.168.0.0/24 網段內,地址是否能夠ping通,若ping通則輸出”success!”,若ping不通則輸出”fail!”

1、簡述osi七層模型和TCP/IP五層模型

clipboard

OSI七層:

  • 物理層:把數據轉換為傳輸介質上的電子流或模擬脈沖,并監視數據的傳輸
  • 數據鏈路層:提供與網絡適配器相連的接口,維護子網的邏輯鏈接
  • 網絡層:支持邏輯尋址與路由選擇
  • 傳輸層:為網絡提供錯誤控制和數據流控制
  • 會話層:在計算機的通信應用程序之間建立會話
  • 表示層:吧數據轉換為標準格式,管理數據加密與壓縮
  • 應用層:為應用程序提供網絡接口,支持文件傳輸,通信等功能的網絡應用

tcp/ip四層模型:

  • 網絡訪問層:提供了與物理網絡連接的接口,針對傳輸介質設置數據的格式,根據硬件的地址實現數據的尋址,對數據在物理網絡中的傳遞提供錯誤控制
  • 網絡層:提供獨立于硬件的邏輯尋址,從而讓數據能夠在具有不同物理結構的子網之間傳遞,提供路由功能來降低流量,支持不同網絡中的數據傳遞
  • 傳輸層:為網絡層提供了流量控制,錯誤控制和確認服務,充當網絡應用程序的接口
  • 應用層:為網絡排錯,文件傳輸,遠程控制和internet操作提供了應用程序,還支持應用編程接口(API),從而使得針對特定操作系統編寫的程序能夠訪問網絡

tcp/ip模型不是一個很嚴格的分界的模型,所以有說5層也有說四層,tcp/ip模型的實現也沒有嚴格遵守上圖的模型。

2、簡述iproute家族命令 iproute家族有很多命令其中比較常用的有ss,ip

ip命令:

簡介:查看/操作路由,設備,策略路由和隧道,在ip命令中有很多子命令,功能非常強大

格式:

ip [ OPTIONS ] OBJECT { COMMAND | help }
        OBJECT := { link | addr | route | netns  }    

配置網絡設備:

ip link:網絡設備配置
ip  link  set - 需要改變的設備的屬性
    dev NAME (default):指明要管理的設備,dev關鍵字可省略;
    up和down:
    multicast on或multicast off:啟用或禁用多播功能;
    name NAME:重命名接口
    mtu NUMBER:設置MTU的大小,默認為1500;
    netns PID:ns為namespace,用于將接口移動到指定的網絡名稱空間;                        
ip  link  show  - display device attributes                    
ip  link  help -  顯示簡要使用幫助;

舉例:

啟用/關閉網絡設備

clipboard

查看網絡設備信息

ip link show 或者 ip link list

clipboard

管理網絡命名空間:

ip netns:  -管理網絡命名空間
    ip  netns  list:列出所有的netns
    ip  netns  add  NAME:創建指定的netns
    ip  netns  del  NAME:刪除指定的netns
    ip  netns   exec  NAME  COMMAND:在指定的netns中運行命令

舉例:

1.添加一個netns名為Hal_netns

ip netns add Hal_netns

2.查看所有netns

clipboard

3.將ens37這個接口移動到Hal_netns這個網絡命名空間中

clipboard

4.刪除網絡命名空間Hal_netns

ip net del Hal_netns

clipboard

IP地址管理

ip address - IP地址管理
    ip address add - 添加新的ip地址
        ip  addr  add  IFADDR  dev  IFACE
        [label NAME]:為額外添加的地址指明接口別名;
        [broadcast ADDRESS]:廣播地址;會根據IP和NETMASK自動計算得到;
        [scope SCOPE_VALUE]:
        global:全局可用;
        link:接口可用;
        host:僅本機可用;                                                                        
    ip address delete - 刪除ip地址
        ip addr  delete  IFADDR  dev  IFACE                         
    ip address show - 查看ip地址
        ip  addr   list  [IFACE]:顯示接口的地址;
    ip address flush -   清空ip地址
        ip  addr  flush  dev  IFACE

舉例:

1.為ens37新增一個別名ens37:0 ip為10.0.1.25/8

ip ad add 10.0.1.25/8 dev ens37 label ens37:0

clipboard

2.查看接口ip地址

ip ad li 或者 id ad show

clipboard

3.down掉ens37接口的10.0.1.25/8這個ip地址

ip addr delete 10.0.1.25/8 dev ens37

clipboard

管理路由表

ip route -管理路由表
    ip route add - 增加一個新的路由條目
          ip  route   add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]
    ip route change - 更改路由條目
    ip route replace - 更改或新增路由條目
    ip route delete - 刪除路由條目
          ip  route  del  TYPE PRIFIX 
    ip route show -查看路由表
    ip route flush - 清空路由表            
    ip route get - 獲取單個路由條目
          ip  route  get  TYPE PRIFIX

舉例:

1.添加路由表

去往192.168.251.0網段的 下一跳是192.168.251.1 通過設備ens37 src地址設置為 192.168.253.159

ip route add 192.168.251.0 via 192.168.251.1 dev ens37 src 192.168.253.159

clipboard

2.查看路由表

ip route list 或者 ip route show

clipboard

3.清空ens37相關路由表

ip route flush dev ens37

4.獲取目標網絡為192.168.253.0/24的路由條目

clipboard

5.刪除目標網絡為192.168.251.0路由條目

clipboard

6.設置默認網關 ip route add default via 192.168.253.158

clipboard

7.刪除默認網關 ip route del default via 192.168.253.158

clipboard

ss命令:

格式:ss [options] [ FILTER ]

常用選項:

  • -t:TCP協議的相關連接
  • -u:UDP相關的連接
  • -w:raw socket相關的連接
  • -l:監聽狀態的連接
  • -a:所有狀態的連接
  • -n:數字格式
  • -p:相關的程序及其PID
  • -e:擴展格式信息
  • -m:內存用量
  • -o:計時器信息
  • FILTER := [ state TCP-STATE ] [ EXPRESSION ]

常見用法:

ss -tan 數字格式顯示tcp所有狀態的連接

ss -uan 數字格式顯示udp所有狀態的連接

ss -tnl 數字格式顯示tcp 監聽狀態的連接

ss -unl, 數字格式顯示udp連接中監聽狀態的連接

ss -tunlp 數字格式顯示udp與tcp狀態的連接以及相關程序

ss -tan ‘( dport = :22 or sport = :22 )’ 數字格式顯示源端口或目的端口為22的所有tcp連接

ss -tan state ESTABLISHED 數字格式顯示tcp狀態為established的連接

3、詳細說明進行管理工具htop、vmstat等相關命令,并舉例

htop

簡介:交互式查看進程,被認為top的升級版,可以支持鼠標點擊操作,這個命令要自己安裝官方鏡像源沒有這個源碼包

源碼包安裝:

  1. 下載相關的依賴
     yum install ncurses-devel gcc gcc-devel -y
  2. 解壓tar包,下載地址http://hisham.hm/htop/releases/2.0.0/
     cd /usr/local/src
     wget http://hisham.hm/htop/releases/2.0.0/htop-2.0.0.tar.gz
     tar -zxf htop-2.0.0.tar.gz
     cd htop-2.0.0
  3. 下載安裝htop
     ./configure  --prefix=/usr/local/htop
      make&& make install 
  4. 設置環境變量
     echo 'PATH=/usr/local/htop/bin:$PATH' > /etc/profile.d/htop.sh
     . /etc/profile
  5. 測試,命令行輸入htop命令

表示成功

常用選項:

  • -d #:指定延遲時間間隔;
  • -u UserName:僅顯示指定用戶的進程;
  • -s COLUME:以指定字段進行排序;

交互命令:

clipboard

  • F1:查看幫助
  • F2:自定義htop頁面
  • F3或/:搜索
  • F4或\:過濾
  • F5或t:以層級關系顯示各進程狀態;
  • F6:排序的方式
  • F7:nice值-1
  • F8:nice值+1
  • F9:發送信號(1-15)
  • F10:退出
  • u:顯示指定用戶進程
  • P、M、T:按照cpu,mem,Time排序
  • l:顯示選定的進程打開的文件列表;
  • s:跟蹤選定的進程的系統調用;
  • a:將選定的進程綁定至某指定的CPU核心;
  • I(大寫i):反向排序
  • e:顯示環境變量

htop面板解釋:

clipboard

系統概況:

  • CPU:cpu信息
  • Mem:內存信息
  • Swp:交換分區信息
  • Load average:1分鐘,5分鐘,10分鐘內的平均負載
  • Uptime:開機了多久
  • Time:當前時間

進程詳細信息

  • PID:進程PID
  • USER:進程所屬的用戶
  • PRI:優先級
  • NI:nice值
  • VIRT:虛擬內存集,申請的內存總量,假設申請了100m,但是實際只用了10m則這里還是顯示100m ,當10m不夠需要更多內存的時候,內核才會真正再繼續分配內存給他。
  • RES:常駐內存集,使用的物理內存的總和
  • SHR:與其他進程共享的內存
  • S:程序狀態一般有如下幾種
    • R:running 運行狀態
    • S:interruptable sleeping 可中斷睡眠
    • D:uninterruptable sleeping 不可中斷睡眠
    • T:Stopped 停止狀態
    • Z:zombie 僵尸進程
  • CPU%:cpu占比
  • MEM%:內存占比
  • TIME+:累計運行時間
  • Command:命令

vmstat命令

簡介:報告虛擬內存統計信息

格式:vmstat [options] [delay [count]]

輸出的信息:

clipboard

  • procs:
    • r:等待運行的進程的個數;CPU上等待運行的任務的隊列長度;
    • b:處于不可中斷睡眠態的進程個數;被阻塞的任務隊列的長度;
  • memory:
    • swpd:交換內存使用總量;
    • free:空閑的物理內存總量;
    • buffer:用于buffer的內存總量;
    • cache:用于cache的內存總量;
  • swap
    • si:數據進入swap中的數據速率(kb/s)
    • so:數據離開swap的速率(kb/s)
  • io
    • bi:從塊設備讀入數據到系統的速度(kb/s)
    • bo:保存數據至塊設備的速率(kb/s)
  • system
    • in:interrupts,中斷速率;
    • cs:context switch, 上下文 切換的速率;
  • cpu
    • us: user space 用戶占CPU占比
    • sy:system 系統占比
    • id:idle 空閑占比
    • wa:wait 等待io時間
    • st: stolen 被偷走的時間,虛擬化之類的

常用選項:

  • -s:顯示內存統計數據;
  • DELAY [COUNT]:延遲多久刷新一次,刷新多少次退出

舉例:

1.顯示內存統計數

vmstat -s

clipboard

2.動態顯示統計數據,2s刷新一次

vmstat 2

clipboard

3.動態顯示統計數據,3s刷新一次,一共輸出4次

clipboard

dstat命令:

簡介:用于生成系統資源統計數據的通用工具

格式:dstat [-afv] [options..] [delay [count]]

常用選項:默認 -cdngy

  • -c, –cpu:顯示cpu相關信息;
  • -C #,#,…,total:查看某個cpu
  • -d, –disk:顯示磁盤的相關信息
  • -D sda,sdb,…,tobal:查看某個磁盤
  • -g:顯示內存頁page相關的速率數據;
  • -m:Memory的相關統計數據
  • -n:Interface的相關統計數據;
  • -N:指定網絡接口
  • -p:顯示process的相關統計數據;
  • -r:顯示io請求的相關的統計數據;
  • -s:顯示swapped的相關統計數據;
  • -l(小寫L): 查看1m,5m,10m負載
  • -t:顯示當前時間
  • -y:系統信息
  • –tcp :tcp套接字狀態
  • –udp:udp套接字狀態
  • –raw :裸套接字狀態
  • –socket :套接字狀態 (total, tcp, udp, raw, ip-fragments)
  • –ipc:ipc狀態(message queue, semaphores, shared memory)
  • –top-cpu:顯示最占用CPU的進程;
  • –top-io:最占用io的進程;
  • –top-mem:最占用內存的進程;
  • –top-lantency:延遲最大的進程;

例子:

1.顯示ens33網卡接口信息

dstat -Nens33 -n

clipboard

2.顯示tcp套接字狀態信息

dstat –tcp

clipboard

3.顯示cpu,磁盤,網絡,內存頁,系統信息(默認)

dstat -cdngy

clipboard

4.查看內存狀態信息

clipboard

4、使用until和while分別實現192.168.0.0/24 網段內,地址是否能夠ping通,若ping通則輸出”success!”,若ping不通則輸出”fail!”

while方法
[root@localhost ~]# cat shell/ping_while.sh 
#!/bin/bash
#
i=0
while [[ $i -le 255  ]]
do
    ping -c 2 192.168.150.${i} &> /dev/null
    if [[ $? -eq 0 ]]
    then
        echo -e  "192.168.150.${i}\t success!\n" 
    else
        echo -e  "192.168.150.${i}\t fail!\n" 
    fi 
    i=$((i+1)) 
done

until方法
[root@localhost ~]# cat shell/ping_until.sh 
#!/bin/bash
#
i=0
until [[ $i -gt 255  ]]
do
   ping -c 3 192.168.150.${i} &> /dev/null
   if [[ $? -eq 0 ]]
   then
        echo -e  "192.168.150.${i}\t success!\n" 
    else
        echo -e  "192.168.150.${i}\t fail!\n" 
    fi 
    i=$((i+1)) 
done

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/103880

(0)
halhal
上一篇 2018-07-24 00:54
下一篇 2018-07-24 20:47

相關推薦

  • win10家庭版連接samba服務器無響應并且windows資源管理器被自動刷新問題解決

    wind10家庭版連接linux的samba,訪問有權限的samba文件夾直接被關閉文件夾資源,任務欄也刷新一次,訪問文件夾失敗。

    Linux筆記 2018-07-28
  • MySQL數據庫簡介及安裝實驗

    本節索引: 一、MySQL數據庫簡介 二、實驗:使用yum源安裝MariaDB 10.2.15 三、實驗:通用二進制格式安裝MariaDB 10.2.15 四、實驗:編譯安裝MariaDB 10.2.15 五、實驗:進行mysql(MariaDB)多實例安裝 一、MySQL數據庫簡介 MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目…

    2018-06-05
  • centOS6.9 防火墻的關閉以及開啟

    有的時候,我們需要對系統的防火墻進行操作,今天小編就給大家講解一下如何開啟以及關閉CentOS6.9系統下的防火墻。 輸入:cat /etc/issue 查看版本 (一)通過service命令 service命令開啟以及關閉防火墻為即時生效,下次重啟機器的時候會自動復原。 查看防火墻狀態:service iptables status ,記得在CentOS6…

    Linux筆記 2018-04-20
  • linux發行版之間的愛恨情仇

    千絲萬縷,森羅萬象

    Linux筆記 2018-05-13
  • 請使用命令行展開功能來完成以下練習

    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
    (2)、創建/tmp/mylinux目錄下的:

    Linux筆記 2018-05-18
  • iproute家族命令

    1 ifconfig up 啟動指定網絡設備/網卡down 關閉指定網絡設備/網卡-a 顯示全部接口信息-s 顯示摘要信息add 設置指定網卡配置IPv6地址del 刪除指定網卡配置IPv6地址mtu<字節數> 設置網卡的最大傳輸單元(bytes)netmask<子網掩碼>設置網卡的子網掩碼multicast 為網卡設置組播標志 例子…

    Linux筆記 2018-04-15
欧美性久久久久