馬哥教育網絡班22期+第8周課程練習

week8:
1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
	網橋也叫橋接器,是連接兩個局域網的一種存儲/轉發設備,它能將一個大的LAN分割為多個網段,
	或將兩個以上的LAN互聯為一個邏輯LAN,使LAN上的所有用戶都可訪問服務器。
	它工作于OSI(開放系統互聯參考模型)參考模型第二層,即“數據鏈路層”。
	
	集線器的英文稱為“Hub”。“Hub”是“中心”的意思,集線器的主要功能是對接收到的信號進行再生整形放大,
	以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。
	它工作于OSI(開放系統互聯參考模型)參考模型第一層,即“物理層”。
	
	二層交換機工作于OSI模型的第2層(數據鏈路層),故而稱為二層交換機。可理解為多端口集線器。
	
	三層交換機就是具有部分路由器功能的交換機,三層交換機的最重要目的是加快大型局域網內部的數據交換,
	所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。
	路由器(Router),是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,
	以最佳路徑,按前后順序發送信號。


2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
	A類:1.0.0.0~127.255.255.255
		默認掩碼是255.0.0.0(/8);其中10段屬于私有地址段;127段屬于保留地址段;
	B類:128.0.0.0~191.255.255.255
		默認掩碼是255.255.0.0(/16);其中172.16~172.31屬于私有地址段;
	C類:192.0.0.0~223.255.255.255
		默認掩碼是255.255.255.0(/24);其中192.168段屬于私有地址段;
	D類:224.0.0.0~239.255.255.255
		組播地址段;
	E類:240.0.0.0~255.255.255.255


3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
	OSI模型:Open System Interconnect,開放系統互聯參考模型;規定了7層類型,從低到高:
		1.物理層
			物理層提供用于建立、保持和斷開物理連接的機械的、電氣的、功能的和過程的條件。
			物理層為設備之間的數據通信提供傳輸媒體及互連設備,為數據傳輸提供可靠的環境。
			物理層的媒體包括網卡,網線,集線器,中繼器,調制解調器。

		2.數據鏈路層
			數據鏈路層(Data Link Layer)是OSI模型的第二層,負責建立和管理節點間的鏈路。
			該層的主要功能是:通過各種控制協議,將有差錯的物理信道變為無差錯的、
			能可靠傳輸數據幀的數據鏈路。
			數據鏈路層設備包括網橋,二層交換機。

		3.網絡層
			網絡層(Network Layer)是OSI模型的第三層,它是OSI參考模型中最復雜的一層,
			也是通信子網的最高一層。它在下兩層的基礎上向資源子網提供服務。
			其主要任務是:通過路由選擇算法,為報文或分組通過通信子網選擇最適當的路徑。
			該層控制數據鏈路層與傳輸層之間的信息轉發,建立、維持和終止網絡的連接。
			具體地說,數據鏈路層的數據在這一層被轉換為數據包,
			然后通過路徑選擇、分段組合、順序、進/出路由等控制,將信息從一個網絡設備傳送到另一個網絡設備。
			網絡層設備:三層交換機,路由器;

		4.傳輸層
			OSI下3層的主要任務是數據通信,上3層的任務是數據處理。
			傳輸層(Transport Layer)是OSI模型的第4層。因此該層是通信子網和資源子網的接口和橋梁,
			起到承上啟下的作用。
			該層的主要任務是:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。
			傳輸層的作用是向高層屏蔽下層數據通信的細節,即向用戶透明地傳送報文。
			該層常見的協議:TCP/IP中的TCP協議、Novell網絡中的SPX協議和微軟的NetBIOS/NetBEUI協議。
			傳輸層提供會話層和網絡層之間的傳輸服務,這種服務從會話層獲得數據,并在必要時,對數據進行分割。
			然后,傳輸層將數據傳遞到網絡層,并確保數據能正確無誤地傳送到網絡層。

		5.會話層
			會話層(Session Layer)是OSI模型的第5層,是用戶應用程序和網絡之間的接口。
			主要任務是:向兩個實體的表示層提供建立和使用連接的方法。
			將不同實體之間的表示層的連接稱為會話。因此會話層的任務就是組織和協調兩個會話進程之間的通信,
			并對數據交換進行管理。用戶可以按照半雙工、單工和全雙工的方式建立會話。
			當建立會話時,用戶必須提供他們想要連接的遠程地址。
			而這些地址與MAC(介質訪問控制子層)地址或網絡層的邏輯地址不同,
			它們是為用戶專門設計的,更便于用戶記憶。

		6.表示層
			表示層(Presentation Layer)是OSI模型的第六層,它對來自應用層的命令和數據進行解釋,
			對各種語法賦予相應的含義,并按照一定的格式傳送給會話層。
			其主要功能是“處理用戶信息的表示問題,如編碼、數據格式轉換和加密解密”等。

		7.應用層
			應用層(Application Layer)是OSI參考模型的最高層,它是計算機用戶,
			以及各種應用程序和網絡之間的接口。
			其功能是直接向用戶提供服務,完成用戶希望在網絡上完成的各種工作。
			它在其他6層工作的基礎上,負責完成網絡中應用程序與網絡操作系統之間的聯系,
			建立與結束使用者之間的聯系,并完成網絡用戶提出的各種網絡服務及應用所需的監督、管理和服務等各種協議。
			此外,該層還負責協調各個應用程序間的工作。

	TCP/IP模型:
		1.網絡接入層
			網絡接入層與OSI參考模型中的物理層和數據鏈路層相對應。它負責監視數據在主機和網絡之間的交換。
			事實上,TCP/IP本身并未定義該層的協議,而由參與互連的各網絡使用自己的物理層和數據鏈路層協議,
			然后與TCP/IP的網絡接入層進行連接。
			地址解析協議(ARP)工作在此層,即OSI參考模型的數據鏈路層。

		2.網際互聯層
			網際互聯層對應于OSI參考模型的網絡層,主要解決主機到主機的通信問題。
			它所包含的協議設計數據包在整個網絡上的邏輯傳輸。
			注重重新賦予主機一個IP地址來完成對主機的尋址,它還負責數據包在多種網絡中的路由。
			該層有三個主要協議:網際協議(IP)、互聯網組管理協議(IGMP)和互聯網控制報文協議(ICMP)。

		3.傳輸層
			傳輸層對應于OSI參考模型的傳輸層,為應用層實體提供端到端的通信功能,
			保證了數據包的順序傳送及數據的完整性。
			該層定義了兩個主要的協議:傳輸控制協議(TCP)和用戶數據報協議(UDP).

		4.應用層
			應用層對應于OSI參考模型的高層,為用戶提供所需要的各種服務,例如:FTP、Telnet、DNS、SMTP等.

4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
	找一根網線,一端接到服務器的網卡接口,另一端接到交換機的端口;對應的交換機端口指示燈變黃,說明網線ok;
	如果該網絡中有DHCP功能,在linux系統網卡上將網卡配置成dhcp,即可自動獲取到可用的IP地址;
	大多數情況下需要手動配置IP,獲得可用的IP地址,掩碼及網關(DNS可選);在網卡配置文件中配置后,重啟網絡服務;
	ping網關地址、ping外網地址,ok則說明接入網絡成功;

5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
	(1)命令行方式
		(a) #ifconfig eth0 10.0.0.11 netmask 255.255.255.0
			#route add default gw 10.0.0.1

		(b) #ip address add 10.0.0.11/24 dev eth0

	(2)圖形化方式:
		setup(centos6)
		nmtui(centos7)
		備注:系統已安裝圖形化界面;

	(3)修改網卡配置文件:
		[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
		DEVICE=eth0
		TYPE=Ethernet
		ONBOOT=yes
		NM_CONTROLLED=no
		BOOTPROTO=dhcp 		###dhcp方式

		BOOTPROTO=[static|none] ###靜態配置方式
		IPADDR= 
		NETMASK=
		GATEWAY=

6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
     在線的主機使用綠色顯示;
     不在線的主使用紅色顯示;
		#!/bin/bash
		#

		IP=172.16.250
		RED_COLOR='\E[1;31m'
		GREEN_COLOR='\E[1;32m'
		RES='\E[0m'

		for i in `seq 1 254`;do
		    if [ ping -c 3 $IP.$i &> /dev/null ];then
		        echo -e "${GREEN_COLOR} $IP.$i ${RES}"
		    else
		        echo -e "${RED_COLOR} $IP.$i ${RES}"
		    fi
		done


7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
	DEVICE=eth0
		網卡名稱
	HWADDR=00:0C:29:D2:65:20
		MAC地址
	TYPE=Ethernet
		網絡類型
	UUID=6966fe47-1484-44fc-a3bb-0ba42fe956f6
		UUID
	ONBOOT=yes
		開機啟動
	NM_CONTROLLED=no
		是否有NetworkManager服務控制
	BOOTPROTO=dhcp
		使用的網絡協議:dhcp或static|none

8、如何給網絡接口配置多個地址,有哪些方式?
	(1)配置子網卡
		ifconfig eth0:1 10.0.0.12/24 up
	(2)同一網卡配置多個地址
		ip addr add 10.0.0.12/24 dev eth0

9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
	ifconfig [NIC]
		查看[指定]網卡信息
	ip 
		ip addr [show NIC]
			查看[指定]網卡信息
		ip link [show NIC]
			查看[指定]網卡狀態及MAC地址
		ip route 
			查看路由條目
		ip route add TARGET via GW dev NIC src SOURCE_IP
			添加路由條目
		對應的delete,刪除路由條目;

	route
		route [ -n ]:查看路由條目
		route add default gw GW: 添加默認路由
		route add [-net|-host] TARGET [netmask Nm] [gw GW] [[dev] NIC]:添加路由條目;
			route add -net 192.16.0.0 netmask 255.255.255.0 dev eth0

	netstat:
		查看當前系統網絡連接,路由表信息,網卡統計等信息;
		常用:
			netstat -r
			netstat -s -t
			netstat -ntlp
			netstat -nulp
			netstat -na
	ss:
		查看當前系統套接字連接情況;
		常用:
			ss -ntlp
			ss -nulp
			ss -na


10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
	(1)RPM:
		rpm {-q|--query} [select-options] [query-options]
			[select-options]
				PACKAGE:查詢指定的程序包是否已安裝,及其版本;
				-a,--all:查詢所有已安裝的包;
				-f,--file:查詢指定的文件是由哪個程序包安裝生成的;	
				-p,--package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;
				--whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供的;
				--whatrequires CAPABILITY: 查詢指定的CAPABILITY被哪個程序包所依賴;

			[query-options]
				--changelog:查詢rpm包的changelog;
				-l,--list:程序安裝生成的所有文件列表;
				-c,--configfiles:查詢指定的程序包提供的配置文件;
				-i,--info:程序包相關的信息,版本號、大小、所屬的包組等;
				-d,--docfiles:查詢指定的程序包提供的文檔;
				--provides:列出指定的程序包提供的所有的CAPABILITY;
				-R,--requires:查詢指定的程序包的依賴關系;
				--scripts:查看程序包自帶的腳本片段;
				
			用法:
				-ql PACKAGE,-qf FILE,-qd PACKAGE
				-qpl PACKAGE_FILE, -qpc PACKAGE_FILE		

			安裝:rpm -ivh PACKAGE
			升級:rpm -Uvh PACKAGE
			卸載:rpm -evh PACKAGE

	(2)YUM:
		查看:yum list all
		安裝:
			yum -y install PACKAGE_NAME
			yum -y groupinstall GROUP_NAME
		升級:yum -y upgrade [PACKAGE_NAME|all]
		卸載:
			yum -y remove PACKAGE_NAME
			yum -y groupremove GROUP_NAME


11、如何使用發行版光盤作為yum repository,請描述該過程。
	(1)掛載
		#mount -r -t iso9660 /dev/cdrom /mnt
	(2)添加本地yum源配置文件
		#vim /etc/yum.repos.d/local.repo
		內容如下:
		[local-repo]
		name=local repo
		baseurl=file:///mnt
		gpgcheck=0
		enabled=1

12、寫一個腳本,完成以下功能
   (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
   (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
   (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
   (4) 分別統計S開頭和K開頭的文件各有多少;
    #!/bin/bash
    #
    for filename in `ls /etc/rc.d/rc3.d|grep ^K`;do
   		NUM1=`wc -l`
   		mv /etc/rc.d/rc3.d/${filename}{,stop}
   	done

    for filename in `ls /etc/rc.d/rc3.d|grep ^S`;do
   		NUM2=`wc -l`
   		mv /etc/rc.d/rc3.d/${filename}{,start}
   	done   	

   	echo -e "Total number of files start with K: $NUM1 \nTotal number of files start with S: $NUM2"

13、寫一個腳本,完成以下功能
   (1) 腳本能接受用戶名作為參數;
   (2) 計算此些用戶的ID之和;
	#!/bin/bash
	#

	SUM=0
	read -p "Please inpute users name:" USERS

	for user in $USERS;do
	    if id $user &> /dev/null;then
	        let SUM+=$(id -u $user)
	    else
	        echo "no $user in system" 
	        exit 1
	    fi
	done

	echo "The sum of users's uid is: $SUM"

14、寫一個腳本
   (1) 傳遞一些目錄給此腳本;
   (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
   (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
	#!/bin/bash

	F_SUM=0
	D_SUM=0
	read -p "please input some directory absolute path:" DIR_PATH

	for dir in $DIR_PATH;do
	    if ![ -d $dir ];then
	        echo "$dir is not a directory" && exit 1
	    else
	        tree -L 1 $dir 
	        for file in `ls $dir`;do
	            file $dir/$file
	            if [ -d $dir/$file ];then
	                let D_SUM++
	            else
	                let F_SUM++
	            fi
	        done
	    fi
	done

	echo -e "Total number of sub directorys: $D_SUM \nTotal number of sub files: $F_SUM"


15、寫一個腳本
  通過命令行傳遞一個參數給腳本,參數為用戶名
  如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
	#!/bin/bash
	#
	read -p "Please inpute users name:" USERS

	for user in $USERS;do
	    if id $user &> /dev/null ;then
	        if [ `id -u $user` -ge 500 ];then
	            echo "Normal User: $user"
	        fi
	    else
	        echo "no $user in system" 
	    fi
	done

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

	for i in `seq 1 10`;do
	    if id user$i &>/dev/null;then
	        let COUNT--
	    else
	        useradd user$i
	        echo user$i|passwd --stdin user$i &> /dev/null
	    fi
	done

	echo "Total number of created users: $COUNT"

17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
	同第6題

18、打印九九乘法表;
	#!/bin/bash
	#

	PROG="/root/chengfabiao.sh"

	. /etc/init.d/functions

	USAGE(){
	        echo $"USAGE:$PROG parm1 parm2"

	}

	[ $# -ne 2 ]&& {
	        action "$PROG Syntax error" /bin/false
	        USAGE
	        exit 6
	}

	if [ $1 -ge $2 ];then
	        for i in `seq $1`;do
	                for j in `seq $2`;do
	                        [ $i -ge $j ] && echo -en " $j X $i = $( expr $i \* $j ) \t "
	                done
	        echo  "  "
	        done
	else
	        for i in `seq $1`;do
	                for j in `seq $2`;do
	                       [ $i -lt $j ]&&echo -en " $i X $j = $( expr $i \* $j ) \v "
	                done
	        echo  ""
	        done
	fi
	echo "================================================================="
	action "$i x $j chengfabiao" /bin/true
		
示例:

[root@centos6 ~]# ./chengfabiao.sh 9 9
 1 X 1 = 1 	   
 1 X 2 = 2 	  2 X 2 = 4 	   
 1 X 3 = 3 	  2 X 3 = 6 	  3 X 3 = 9 	   
 1 X 4 = 4 	  2 X 4 = 8 	  3 X 4 = 12 	  4 X 4 = 16 	   
 1 X 5 = 5 	  2 X 5 = 10 	  3 X 5 = 15 	  4 X 5 = 20 	  5 X 5 = 25 	   
 1 X 6 = 6 	  2 X 6 = 12 	  3 X 6 = 18 	  4 X 6 = 24 	  5 X 6 = 30 	  6 X 6 = 36 	   
 1 X 7 = 7 	  2 X 7 = 14 	  3 X 7 = 21 	  4 X 7 = 28 	  5 X 7 = 35 	  6 X 7 = 42 	  7 X 7 = 49 	   
 1 X 8 = 8 	  2 X 8 = 16 	  3 X 8 = 24 	  4 X 8 = 32 	  5 X 8 = 40 	  6 X 8 = 48 	  7 X 8 = 56 	  8 X 8 = 64 	   
 1 X 9 = 9 	  2 X 9 = 18 	  3 X 9 = 27 	  4 X 9 = 36 	  5 X 9 = 45 	  6 X 9 = 54 	  7 X 9 = 63 	  8 X 9 = 72 	  9 X 9 = 81 	   
=================================================================
9 x 9 chengfabiao                                          [  OK  ]

原創文章,作者:devon,如若轉載,請注明出處:http://www.www58058.com/49613

(0)
devondevon
上一篇 2016-10-09 09:06
下一篇 2016-10-09 09:06

相關推薦

  • bond的常見使用方式和問題

    bond的簡單建立于事項

    2017-09-09
  • 第六周總結VIM編輯器的使用并完成練習題

    第六周 總結VIM編輯器的使用并完成練習題 1. VIM是什么? VIM(Vi IMproved)是從vi發展出來的一個文本編輯器。 2.為什么要使用VIM? VIM有代碼補完,編譯以及錯誤跳轉等方便編程的功能,在程序員中廣泛使用。對于大多數的用戶來說,VIM有著比較陡峭的學習曲線,但是一旦掌握一些基本操作之后,能大幅度提高編輯效率。VIM是類Unix系統用…

    Linux干貨 2017-09-02
  • corosync+pacemaker對mariadb實現高可用

    corosync+pacemaker對mariadb實現高可用 利用nfs共享存儲,導出一個目錄作為mariadb的數據目錄,然后利用corosync+pacemaker對mariadb進行高可用 1、實驗環境 2、實驗前的分析 利用nfs導出目錄作為mariadb的共享目錄,要確保各個mariadb節點對該目錄具有寫權限,也就是要確保nfs服務器上有一個U…

    Linux干貨 2016-11-24
  • linux用戶,組及權限管理

      寫在前面: 本博客詳解命令如下: useradd, userdel,usermod, passwd,  chage, groupadd,  groupdel, groupmod, gpasswd ,newgrp, chsh, id, su,  chmod,  chowm,  chgrp, &nb…

    Linux干貨 2015-12-19
  • bash變量和邏輯運行

    bash 特性及bash腳本編程初步       終端,附著在終端的接口程序:      GUI:KDE,GNome,Xfce      CLI: /etc/shells              b…

    Linux干貨 2016-12-23
  • 使用tar打包并使用gzip壓縮的shell腳本應用實驗

    博客目的: 練習find,gzip,tar,grep,vim等命令的使用以及shell腳本的初步使用 命令行模式下: 1、find出/目錄下100M以上的文件并且查看 [root@rookie ~]# find / -size +100M | xargs ls -lh -r——–. 1 root root 128T 4月 8 16:02 /proc…

    Linux干貨 2017-04-09

評論列表(1條)

  • luoweiro
    luoweiro 2016-10-11 23:20

    這是我檢查作業中寫的最詳細的一篇,無論是只是的全面性還是知識的認真態度否非常贊,好榜樣,加油。

欧美性久久久久