马哥教育网络班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.178linux.com/49613

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

相关推荐

  • 第六周课程作业

    1、复制/etc/rc.d/init.d/functions文件至/tmp目录,将/tmp/functions文件中 的以至少一个空白字符开头的行的行首加# ~]# cp /etc/rc.d/init.d/functions /tmp~]# vim /tmp/functions %s@^[[:space:]]\+@#@g 2、复制/boot/gru…

    Linux干货 2016-12-12
  • 文件权限

    文件属主、文件属组、
    文件权限、目录权限、特殊权限

    2018-03-13
  • 0809vim编辑器作业

    1、如何设置tab缩进为4个字符? :set tabstop=4 首先在命令扩展模式下列出所以set设置的相关选项set all  找到一个跟tab相关的选项,上网查了下意思,tabstop表示的意思就是制表为,他的默认值设置的为8,我们目的是4,那么在命令扩展模式下设置:set tabstop=4就OK了 2、复制/etc/rc.d/init.d…

    Linux干货 2016-08-09
  • Linux文件与目录管理之权限与命令之间的关系

    Linux文件与目录管理之权限与命令之间的关系 我们知道权限对于用户账户来说是非常重要的,因为它可以限制用户能不能读取/新建/删除/修改文件或目录。在这我们就来说明下什么命令在什么样的权限下才能够运行。         让用户能进入某目录成为“可工作目录”的基本权限是什么     &nbs…

    Linux干货 2017-04-24
  • sed命令的用法和vim编辑器的使用

    一、文本处理工具sed sed [option]….'script] [input-file]… 简介: sed是一种流编辑器,他一次处理一行的内容,处理时把当前处理的行存储在临时缓冲区中,这个缓冲区被称为模式空间,接着用sed命令处理,处理完成后把模式空间的内容送往屏幕,接着处理下一行,知道文件末尾,而文件的内容…

    Linux干货 2016-08-15

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-11 23:20

    这是我检查作业中写的最详细的一篇,无论是只是的全面性还是知识的认真态度否非常赞,好榜样,加油。