馬哥教育網絡班19期+第八周課程練習

1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
    主要功能:
    網橋是一個局域網與另一個局域網之間建立連接的橋梁,屬于數據鏈路層的一種設備。
    集線器是可以將一些機器連接起來組成一個局域網的設備。
    二層交換機是工作于OSI模型的第2層(數據鏈路層)的設備,作用于集線器類似。
    三層交換機就是具有部分路由器功能的二層交換機。
    路由器是互聯網的主要結點設備,路由器可以通過路由決定數據的轉發。
    區別之處:
    網橋與二層交換機的不同:
    網橋就是個硬件網絡協議翻譯器,也可以說相當一個端口少的二層交換機,網橋主要由軟件實現,交換機主要由硬件實現。
    二層交換機與集線器不同:
    1) 在OSI/RM(OSI參考模型)中的工作層次不同。集線器工作與一層,交換機在二層工作
    2) 交換機的數據傳輸方式不同。集線器的數據傳輸方式是廣播,交換機的數據傳輸是有目的的,數據只對目的節點發送。
    3) 帶寬占用方式不同。集線器所有端口是共享集線器的總帶寬,而交換機的每個端口都具有自己的帶寬。
    4) 傳輸模式不同。集線器只能采用半雙工方式進行傳輸的。
    路由與二層交換機的不同:
    1) 工作層次不同。交換機工作在OSI的第二層。路由器工作在OSI的第三層(網絡層)
    2) 數據轉發所依據的對象不同。交換機是利用物理地址或者說MAC地址來確定轉發數據的目的地址。而路由器則是利用不同網絡的ID號(即IP地址)來確定數據轉發的地址。
    3) 傳統的交換機只能分割沖突域,不能分割廣播域;而路由器可以分割廣播域
    4) 路由器提供了防火墻的服務。
    路由與三層交換機的不同:
    1) 主要功能不同。三層交換機主要功能還是數據交換;而路由器僅具有路由轉發這一種主要功能。
    2) 主要適用的環境不一樣。三層交換機的路由功能主要是簡單的局域網連接,路由器更多的體現在不同類型網絡之間的互聯上。
    3) 性能體現不一樣。三層交換機的性能要遠優于路由器,非常適用于數據交換頻繁的局域網中;而路由器雖然路由功能非常強大,但它的數據包轉發效率遠低于三層交換機,更適合于數據交換不是很頻繁的不同類型網絡的互聯
 
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
    IP地址中的前五位用于標識IP地址的類別,IP地址共分五類。
    A類地址的特點是:以( 0 )開頭,網絡地址共( 7 )位,主機地址共( 24 )位;
    B類地址的特點是:以( 10 )開頭,網絡地址共( 14 )位,主機地址共( 16 )位;
    C類地址的特點是:以( 110 )開頭,網絡地址共( 21 )位,主機地址共( 8 )位;
    D類地址的特點是:以( 1110 )開頭,不標識網絡,用于特殊用途;
    E類地址的特點是:以( 11110 )開頭,地址暫時保留,用于某些實驗和將來使用。
    子網掩碼的表示形式:
    1)通過與IP地址格式相同的點分十進制表示 如:255.255.255.0
    2)在IP地址后加上"/"符號以及1-32的數字,其中1-32的數字表示子網掩碼中網絡標識位的長度 如192.168.100.0/24
    子網掩碼的作用:
    1)是用于屏蔽IP地址的一部分以區別網絡標識和主機標識,并說明該IP地址是在局域網上,還是在遠程網上。
    2)是用于將一個大的IP網絡劃分為若干小的子網絡。
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
    OSI7層模型
    1)物理層:利用傳輸介質為數據鏈路層提供物理連接,實現比特流的透明傳輸。
    2)數據鏈路層:通過各種控制協議,將有差錯的物理信道變為無差錯的、能可靠傳輸數據幀的數據鏈路。
    3)網絡層:該層控制數據鏈路層與傳輸層之間的信息轉發,建立、維持和終止網絡的連接。
    4)傳輸層:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。
    5)會話層:向兩個實體的表示層提供建立和使用連接的方法。
    6)表示層:處理用戶信息的表示問題,如編碼、數據格式轉換和加密解密等。
    7)應用層:應用層是用戶與網絡,以及應用程序與網絡間的直接接口,使得用戶能夠與網絡進行交互式聯系,并實現各種服務
    TCP/IP4層模型
    1)網絡接口層:用于協作IP數據在已有網絡介質上傳輸的協議。對應于OSI七層模型的物理層和數據鏈路層。
    2)網際層:負責數據的包裝、尋址和路由,還包含網間控制報文協議。對應于OSI七層模型的網絡層。
    3)傳輸層:提供兩種端到端的通信服務,TCP協議和UDP協議。對應于OSI七層模型的傳輸層。
    4)應用層:包括Finger、Whois、FTP、Gopher、HTTP、Telent、SMTP、IRC、NNTP等協議。對應于OSI七層模型的應用層,會話層和表示層。
    對應的物理設備:
    物理層:HUB集線器,網卡,網橋、中繼器、調制解調器
    鏈路層:2層交換機
    網絡層:3層交換機,路由器
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
    修改網卡IP屬性(需要root權限)
    vim /etc/sysconfig/network-scripts/ifcfg-eth0  <eth0是網卡號>
    DEVICE="eth0"               <網卡號,和ifcfg-eth0對應就可以>
    HWADDR="08:00:27:1C:81:0A"  <網卡的MAC地址>
    ONBOOT="yes"                <是否啟用連接>
    BOOTPROTO=none              <手動設置IP選擇none,自動獲取選dhcp>
    IPADDR=192.168.1.100        <設定本網卡IP地址>
    NETMASK=255.255.255.0       <子網掩碼>
    GATEWAY=192.168.1.254       <網關地址>
    DNS1=192.168.1.1            <首選DNS地址>
    DNS2=8.8.8.8                <次選DNS地址> 
    也可以在此處添加DNS
    vim /etc/resolv.conf
    在文件中填入以下內容
    nameserver 192.168.1.1      <‘192.168.1.1’改成你自己需要的DNS地址即可>
    可以設定多個DNS主機地址
    修改完成后重啟網絡服務
    /etc/init.d/network restart
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
    主機接入網絡需要設置IP地址,路由信息和DNS信息。
    IP地址設置
        主要有動態分配和靜態設置:
        靜態設置分為2種方法
        1)可以使用ifconfig,ip addr命令來設置網卡的ip地址及網關;設置后立即生效,重啟后失效。
        2)可以修改文件/etc/sysconfig/network-scripts/ifcfg-接口;設置后無效,需要重啟后才生效。
        動態分配:是使用主機dhcp服務自動設置
    路由信息設置
        1)用route,ip route命令來設置;設置后立即生效,重啟后失效。
        2)添加或修改文件/etc/sysconfig/network-scripts/route-接口;設置后無效,需要重啟后才生效。
            格式如: 192.168.0.0/24 via 172.16.0.1 或
                    ADDRESS0=192.168.1.3
                    NETMASK0=255.255.255.0
                    GATEWAY0=192.168.0.1
    DNS信息設置
        1)修改/etc/reso.conf文件來添加DNS。 nameserver 192.168.1.1
        2)網卡接口設置文件中設置 DNS1=192.168.1.1
    
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;在線的主機使用綠色顯示;不在線的主使用紅色顯示;
    #!/bin/bash
    #
    declare -i i=1
    net='172.16.250'
    while [ $i -le 254 ]; do
        if ping -c 1 -w 1 $net.$i &> /dev/null; then
            echo -e "\033[32m $net.$i\033[0m"
        else
            echo -e "\033[31m $net.$i\033[0m"
        fi
    let i++
    done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
    配置文件位于/etc/sysconfig/network-scripts/下 如ifcfg-eth0文件
    DEVICE="eth0"               <網卡號,和ifcfg-eth0對應就可以>
    HWADDR="08:00:27:1C:81:0A"  <網卡的MAC地址>
    ONBOOT="yes"                <在系統引導時是否激活此設備>
    BOOTPROTO=none              <手動設置IP選擇none,自動獲取選dhcp>
    USERCTL="yes"                <普通用戶是否可控制此設備>
    IPADDR=192.168.1.100        <設定本網卡IP地址>
    NETMASK=255.255.255.0       <子網掩碼>
    GATEWAY=192.168.1.254       <網關地址>
    DNS1=192.168.1.1            <首選DNS地址>
    DNS2=8.8.8.8                <次選DNS地址>
8、如何給網絡接口配置多個地址,有哪些方式?
    可以使用命令或配置文件。
    ifconfig:
        ifconfig 別名 IP地址/掩碼位數
        ifconfig eth0:0 192.168.0.22/24 up
    ip:
        ip addr add IP地址 dev 接口 label '別名'
        ip addr add 172.16.100.13/16 dev eth0 label 'eth:0'
    配置文件:
        創建/etc/sysconfig/network-scripts/ifcfg-別名 文件
        文件中DEVICE=別名 要和文件名中的相同。
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
    ifconfig命令-設置IP地址工具
        可以使用ifconfig命令配置網卡屬性,設置后立即生效,重啟后失效。
        #顯示活動接口信息    ifconfig eth0
        #顯示所有接口信息    ifconfig -a
        #啟用或禁用給定接口  ifconfig eth0 down
        #設置IP地址及掩碼    ifconfig eth0 172.168.1.100/24
    route命令-設置路由工具
        添加主機路由         route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
        添加網絡路由         route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
        添加默認路由         route add default gw 172.16.0.1                       
        刪除主機路由         route del -host 192.168.1.3
        刪除網絡路由         route del -net 192.168.0.0 netmask 255.255.255.0
    dig命令-解析DNS地址工具
        正解DNS 域名至IP地址 dig -t A server.magelinux.com
        反解DNS IP地址至域名 dig -x 127.0.0.1
    netstat命令-顯示網絡連接工具
        以數字形式顯示TCP協議相關所有狀態    netstat -tan
        以數字形式顯示UDP協議相關所有狀態    netstat -uan
        以數字形式顯示TCP協議相關的監聽狀態  netstat -tnl
        以數字形式顯示UDP協議相關的監聽狀態  netstat -unl
        顯示內核路由表                       netstat -r
        顯示所有接口統計數據                 netstat -i
        顯示指定接口信息                     netstat -Ieth0
    ip命令-設置IP地址工具
        禁用接口        ip link set dev eth0 down
        啟用接口        ip link set dev eth0 up
        顯示接口信息    ip link show dev eth0
        顯示主地址      ip addr show dev eth0 primary
        顯示次地址      ip addr show dev eth0 secondary
        添加IP地址      ip addr add 172.16.100.13/16 dev eth0
        添加網卡別名    ip addr add 172.16.100.13/16 dev eth0 label 'eth:0'
        刪除別名        ip addr flush dev eth0 label 'eth0:0'
        添加主路由      ip route add 192.168.1.3 via 172.16.0.1 dev eth0
        添加網絡路由    ip route add 192.168.0.0/16 via 172.16.0.1 dev eth0
        添加默認路由    ip route add default via 127.16.0.1
        刪除路由        ip route del 192.168.1.3
        查看路由        ip route show
        清空路由        ip route flush dev eth0       
    ss命令–顯示網絡連接工具
        參數用法同netstat
        指定顯示某種狀態ss -t state established '( dport = :ssh or sport = :ssh )'
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
    1)用rpm命令管理程序包
    安裝    rpm -ivh PACKAGE_FILE    安裝包
    升級    rpm -Uvh PACKAGE_FILE    升級包,無則安裝此包
            rpm -Fvh PACKAGE_FILE    升級包,無則無變化
    查詢    rpm -qa | grep FileName  查詢已安裝的某個軟件
            rpm -qf FILE             查詢文件出處
            rpm -qc PACKAGE_FILE     查詢包的配置文件
            rpm -ql PACKAGE_FILE     查詢包的所有文件
            rpm -qd PACKAGE_FILE     查詢包的信息
            rpm -qpi PACKAGE_FILE    不安裝就查詢包信息
            rpm -qpl PACKAGE_FILE    不安裝就查詢包所有文件
    卸載    rpm -e PACKAGE_FILE      卸載包
    驗證    rpm -V PACKAGE_FILE      驗證包
            rpm –import RPM-GPG-KEY-CentOS-7 導入公鑰
    維護    rpm initdb               新建數據庫
            rpm rebuilddb            重建數據庫      
    2)用yum倉庫來管理程序包
    查看    yum info PACKAGE_FILE       查看包信息
            yum history list            查看yum事務歷史
            yum deplist package1        查看包依賴
    顯示    yum repolist all            顯示yum倉庫列表
            yum list installed          顯示已安裝列表
            yum list available          顯示可用的包
            yum list updates            顯示可以升級的包
            yum list anaconda           顯示系統安裝的包
    安裝    yum install PACKAGE_FILE    安裝包
            yum localinstall rpmfile1   安裝本地包
    升級    yum update PACKAGE_FILE     升級包
            yum downgrade PACKAGE_FILE  降級包
            yum check-update            檢查更新
    卸載    yum remove PACKAGE_FILE     卸載包
            yum provides feature1       查看指定的特性
            yum clean                   清理本地緩存
            yum search string1          搜索字符串
            yum info PACKAGE_FILE       查看包信息
            yum history list            查看yum事務歷史
            yum deplist package1        查看包依賴    
    包組管理
        yum groupinstall group1 [group2] […]         安裝包組
        yum groupupdate group1 [group2] […]          升級包組
        yum grouplist [hidden] [groupwildcard] […]   顯示包組
        yum groupremove group1 [group2] […]          卸載包組
        yum groupinfo group1 […]                     查看包組信息  
11、如何使用發行版光盤作為yum repository,請描述該過程。       
        (1) 掛載光盤至某目錄,如:/media/cdrom
            # mount -r -t iso9660 /dev/cdrom /media/cdrom
        (2) 創建配置文件 如:/etc/yum.repos.d/CentOS-CD.repo
        [CentOS6]
        name=CentOS6 cdrom             <倉庫的名字>
        baseurl=file:///media/cdrom    <擁有repodata目錄的倉庫訪問路徑>
        gpgcheck=0                     <使用前是否校驗包>
        enabled=1                      <是否啟用此倉庫>
        cost=500                       <使用倉庫的優先級>
12、寫一個腳本,完成以下功能
   (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
   (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
   (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
   (4) 分別統計S開頭和K開頭的文件各有多少;

    #!/bin/bash
    #
    ls /etc/rc.d/rc3.d/ | awk '/^K/{print "stop "$1}'
    ls /etc/rc.d/rc3.d/ | awk '/^S/{print "start "$1}'
    ls /etc/rc.d/rc3.d/ | awk '{if (/^K/){n++}else{m++}}END{print "K file is: "n;print "S file is: "m}'
13、寫一個腳本,完成以下功能
   (1) 腳本能接受用戶名作為參數;
   (2) 計算此些用戶的ID之和;

    #!/bin/bash
    #
    declare -i idsum
    if [ $# -gt 0 ];then
        for name in $*;do
                if id $name >/dev/null ;then
                let idsum+=$(cat /etc/passwd | grep "\<$name\>" |cut -d: -f3)
                fi
        done
        echo "Id sum is $idsum"
    else
        echo "Try again"
    fi
14、寫一個腳本
   (1) 傳遞一些目錄給此腳本;
   (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
   (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;

    #!/bin/bash
    #
    declare -i fNum=0;bNum=0;cNum=0;dNum=0;lNum=0;pNum=0;sNum=0
    for dName in $*;do
        if ! [ -d $dName ];then
        echo -e "\n$dName is no such dir"
            else
            for fileName in $(ls $dName);do
                if [ -L "$dName/$fileName" ];then
                echo $fileName is l file;let lNum++
                elif [ -b "$dName/$fileName" ];then
                echo $fileName is b file;let bNum++
                elif [ -c "$dName/$fileName" ];then
                echo $fileName is c file;let cNum++
                elif [ -d "$dName/$fileName" ];then
                echo $fileName is dir;let dNum++
                elif [ -f "$dName/$fileName" ];then
                echo $fileName is f file;let fNum++
                elif [ -p "$dName/$fileName" ];then
                echo $fileName is p file;let pNum++
                elif [ -S "$dName/$fileName" ];then
                echo $fileName is s file;let sNum++
                fi
            done
        fi
    done
    echo -e "\ndir is $dNum\nf file is $fNum\nb file is $bNum\nc file is $cNum\nl file is $lNum\np file is $pNum\ns file is $sNum"
15、寫一個腳本
  通過命令行傳遞一個參數給腳本,參數為用戶名
  如果用戶的id號大于等于500,則顯示此用戶為普通用戶;

   #!/bin/bash
    #
    if [ $# -eq 1 ];then
            if id $1 &>/dev/null ;then
                    cat /etc/passwd | grep "^\<$1\>" |awk -F: '{if ($3>=500) {print $1 " is regular user"} else {print $1 " is system user"}}'
            else
                    echo "id:$1 no such user"
            fi
    else
            echo "try again"
    fi

16、寫一個腳本
   (1) 添加10用戶user1-user10;密碼同用戶名;
   (2) 用戶不存在時才添加;存在時則跳過;
   (3) 最后顯示本次共添加了多少用戶;

    #!/bin/bash
    #
    declare -i addNum=0
    for ((i=1;i<11;i++));do
        if id user$i &>/dev/null  ;then
            continue
        else
            useradd user$i &>/dev/null
            echo "user$i" | passwd –stdin user$i &>/dev/null    
            let addNum++
            echo "user$i add"    
        fi
    done
    echo "add $addNum users"
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
    #!/bin/bash
    #
    net="172.16.250"
    for ((i=20;i<=100;i++));do
        if ping -c 1 -w 1 $net.$i &> /dev/null;then
        echo "$net.$i is online"
        fi
    done
18、打印九九乘法表;"
    #!/bin/bash
    #
    for((i=1;i<=9;i++));do
        for((n=1;n<=i;n++));do
        echo -n -e $n"x"$i="$[$n*$i]\t"
        done
        echo ""
    done

原創文章,作者:N23_夕立時雨,如若轉載,請注明出處:http://www.www58058.com/19679

(0)
N23_夕立時雨N23_夕立時雨
上一篇 2016-06-26
下一篇 2016-06-26

相關推薦

  • 【26期】Linux第二周學習小總結

    關于用戶組的一些小小的整理     本周學習很多的知識,一些文件管理的技巧和命令,重定向和管道的實用技巧和拓展,最后則是到了我們的用戶組的權限和管理,既然說到了管理,我們都知道在Linux中,老師講的最多的一句話就是一切皆文件,既然是文件就會有用戶去用,在里面進行各種的操作,比如增刪改查啊,對文件的重新定義啊,那我們就…

    2017-07-21
  • shell編程作業

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 [root@localhost sh.log]# cat systeminfo.sh  #!/bin/bash #author:DYW #顯示當前主機系統…

    Linux干貨 2016-08-15
  • 建立dns服務

    一 、環境 兩臺機器,一臺LINUX,機器名為LINUX,域名為tongqiang.cnIP地址為192.168.0.5,另一臺機器為WIN98,機器名為tongqiang,IP地址從LINUX上DHCP服務器上獲得。 二 、建立DNS服務器(假設你的DNS軟件包已經安裝好了,而且是在安裝LINUX是選擇安裝DNS服務器的) 建立DNS服務器只需要修改以下幾…

    2017-10-09
  • N25_第十周作業

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot&#821…

    Linux干貨 2017-02-14
  • linux【管道命令 PIPE】選取命令、排序命令、雙向從定向、比較工具

    linux【管道命令 PIPE】選取命令、排序命令、雙向從定向、比較工具 選取命令【cut,grep】 cut:可將一段信息的某一段‘切’出來。處理信息時使用以‘行’為單位。 cut -d ‘分割字符’ -f fields 用于分割字符 cut -c 字符范圍 用于排列整齊的信息 參數: -d:后面接分隔字符,與-f一起使用 -f:以及-d的分割字符將一段信…

    Linux干貨 2017-04-04
  • 自制linux和內核編譯

    自制linux和內核編譯 1、分區并創建文件系統 fdisk /dev/sdb分兩個必要的分區/dev/sdb1對應/boot /dev/sdb2對應根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2、掛載boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3、安裝grub grub-i…

    Linux干貨 2016-09-16

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-29 15:18

    寫的很好,可以多注意一下排版問題,在看看腳本是不是可以優化一下,加油

欧美性久久久久