马哥教育网络班22期+第8周课程练习

1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。

	网桥:是连接两个局域网的基于MAC地址数据存储转发设备,工作于数据链路层
	集线器:所有端口处于同一个广播域和冲突域中,带宽共享,工作于物理层
	二层交换机:多端口网桥,一个端口一个冲突域,默认所有端口位于同一个广播域中,可以划分vlan,隔离广播域,带宽独享
	三层交换机:具有路由功能的二层交换机
	路由器:连接不同网段的设备,负责不同网段之间数据通信

	二层交换机一般用于接终端设备,三层交换机用于汇聚层,核心层,路由器用于不同网段之间数据通信

2、IP地址的分类有哪些?子网掩码的表示形式及其作用

	IP地址分类:
		A类:
			第一段为网络号,后三段为主机号
			网络号:
				0 000 0000 - 0 111 1111:1-127
			网络数量:126,127
			每个网络中的主机数量:2^24-2
			默认子网掩码:255.0.0.0,/8
				用于与IP地址按位进行“与”运算,从而取出其网络地址;
					1.3.2.1/255.0.0.0 = 1.0.0.0
					1.3.2.1/255.255.0.0= 1.3.0.0	
			私网地址:10.0.0.0/255.0.0.0
		B类:
			前两段为网络号,后两段为主机号
			网络号:
				10 00 0000 - 10 11 1111:128-191
				网络数:2^14
				每个网络中的主机数量:2^16-2
				默认子网掩码:255.255.0.0,/16
				私网地址:172.16.0.0-172.31.0.0								
		C类:
			前三段为网络号,最后一段为主机号
			网络号:
				110 0 0000 - 110 1 1111:192-223
			网络数:2^21
			每个网络中的主机数量:2^8-2
			默认子网掩码:255.255.255.0,  /24
		D类:组播
			1110 0000 - 1110 1111:224-239
		E类:科研
			240-255

	子网掩码的表示形式:
		1.通过与IP地址格式相同的点分十进制表示,如255.255.255.0
		2.在IP地址后“/”加1-32的数字,1-32的数字表示子网掩码中网络标识位的长度,如192.168.0.0/24

	子网掩码的作用:
		1.用于标识IP的网络位和主机位
		2.用于划分子网

3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。

	OSI七层模型:
		物理层:为数据端设备提供原始比特流的传输的通路(如:集线器、网线等)
		数据链路层:在通信的实体间建立数据链路连接(如:网桥、二层交换机等)
		网络层:为数据在结点之间传输创建逻辑链路,并分组转发数据(如:路由器,三层交换机,防火墙)
		传输层:提供应用进程之间的逻辑通信(如:TCP,UDP,进程,PORT,Socket)
		会话层:建立端连接并提供访问验证和会话管理(如:服务器验证用户登录,断点续传)
		表示层:提供数据格式转换服务(如:URL加密、口令加密、图片编解码)
		应用层:为操作系统或网络应用程序提供访问网络服务的接口(如:telnet,ftp,http,snmp)

	TCP/IP模型:
		应用层:对应于OSI模型的应用层,会话层,表示层
		传输层:对应于OSI模型的传输层
		网络互联层:对应于OSI模型的网络层
		网络接口层:对应于OSI模型的数据链路层和物理层

4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)

	[root@test ~]# ifconfig
	eth0      Link encap:Ethernet  HWaddr 00:0C:29:A2:C0:D7  
	[root@test ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
	TYPE=Ethernet
	DEVICE=eth0
	NAME="eth0"
	BOOTPROTO=none
	ONBOOT=yes
	IPADDR=X.X.X.X
	NETMASK=X.X.X.X
	GATEWAY=X.X.X.X
	DNS1=X.X.X.X
	[root@test ~]# service network restart 

5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。

	1.[root@test ~]# ifconfig eth0:0 192.168.3.4/24

	2.[root@test ~]# ip addr add 192.168.3.5/24 broadcast 192.168.3.1 dev eth0:0

	3.[root@test ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

	4.setup - Network configration - Device configration

6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
     在线的主机使用绿色显示;
     不在线的主使用红色显示;

	[root@test tmp]# vim ping.sh
	#!/bin/bash

	ip='192.168.2'
	for i in {1..250};do
	        ping -c 3 -w 3 $ip.$i &>/dev/null
	        result=$?
	        if [ $result -eq 0 ];then
	                echo -e "\033[32m $ip.$i is up \033[0m"
	        else
	                echo -e "\033[31m $ip.$i is down \033[0m"
	        fi
	done

	[root@test tmp]# bash ping.sh  

7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;

	/etc/sysconfig/network-scripts/ifcfg-IFACE:
	DEVICE:此配置文件应用到的设备
	HWADDR:对应的设备的MAC地址
	BOOTPROTO:激活此设备时使用的地址配置协议,常用的有dhcp,static,none
	NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”
	ONBOOT:在系统引导时是否激活此设备
	TYPE:接口类型;常见的有Ethernet,Bridge
	UUID:设备的惟一标识
	IPADDR:指明IP地址
	NETMASK:子网掩码
	GATEWAY:默认网关
	DNS1:第一个DNS服务器指向
	DNS2:第二个DNS服务器指向
	USERCTL:普通用户是否可控制此设备
	PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中

8、如何给网络接口配置多个地址,有哪些方式?

	[root@test tmp]# ifconfig eth0:2 192.168.4.4
	[root@test tmp]# ip addr add 192.168.5.5/24 dev eth0 label eth0:3

9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。

	ifcfg命令家族: ifconfig, route, netstat
			
	ifconfig命令:接口及地址查看和管理
		ifconfig  [INTERFACE]
			# ifconfig -a:显示所有接口,包括inactive状态的接口;
		
		ifconfig interface [aftype] options | address ...
			# ifconfig  IFACE  IP/MASK  [up|down]
			# ifconfig  IFACE  IP  netmask  NETMASK  
			
			options:
				[-]promisc
			
			注意:立即送往内核中的TCP/IP协议栈,并生效;
				
	route命令:路由查看及管理
	
		路由条目类型:
			主机路由:目标地址为单个IP;
			网络路由:目标地址为IP网络;
			默认路由:目标为任意网络,0.0.0.0/0.0.0.0
			
		查看:
			# route  -n
		添加:
			route  add  [-net|-host]  target  [netmask  Nm]  [gw GW]  [[dev] If]
			
				示例:route add -net  10.0.0.0/8  gw  192.168.10.1  dev  eth1
				            route add  -net  0.0.0.0/0.0.0.0  gw 192.168.10.1  
				            route add  default  gw 192.168.10.1  
				            
		删除:
			route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]
				
				示例: route  del  -net  10.0.0.0/8  gw 192.168.10.1
					     route  del  default
					     
	netstat命令:
		Print network connections, routing tables, interface statistics, masquerade connections, and multicast  memberships
		
		显示路由表:netstat  -rn
			-r:显示内核路由表
			-n:数字格式
			
		显示网络连接:
			netstat  [--tcp|-t]  [--udp|-u]  [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]   [--extend|-e[--extend|-e]]  [--program|-p]
				-t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);
				-u:UDP相关的连接
				-w:raw socket相关的连接
				-l:处于监听状态的连接
				-a:所有状态
				-n:以数字格式显示IP和Port;
				-e:扩展格式
				-p:显示相关的进程及PID; 
				
			常用组合:
				-tan,  -uan,  -tnl,  -unl,  -tunlp
							
			传输层协议:
				tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接;
				udp:无连接的协议;直接发送数据报文;
				
		显示接口的统计数据:
			netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]
				
			所有接口:
				netstat  -i
			指定接口:
				netstat  -I<IFace>
				
	ifup/ifdown命令:
		注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;

10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。

	rpm命令实现程序管理:
		安装:-ivh, –nodeps, –replacepkgs
		卸载:-e, –nodeps
		升级:-Uvh, -Fvh, –nodeps, –oldpackage
		查询:-q, -qa, -qf, -qi, -qd, -qc, -q –scripts, -q –changlog, -q –provides, -q –requires
		校验:-V
		导入GPG密钥:–import, -K, –nodigest, –nosignature
		数据库重建:–initdb, –rebuilddb

	Yum 命令实施软件包管理
	 	repolist [all|enabled|disabled]

	显示程序包:list
		yum list [all | glob_exp1] [glob_exp2] […]
		yum list {available|installed|updates} [glob_exp1] […]

	安装程序包: 
		install package1 [package2] […]
		reinstall package1 [package2] […] (重新安装)

	升级程序包:
		update [package1] [package2] […]
		downgrade package1 [package2] […] (降级)

	检查可用升级:
		check-update

	卸载程序包:
		remove | erase package1 [package2] […]

	查看程序包information:
		info […]

	查看指定的特性(可以是某文件)是由哪个程序包所提供:
		provides | whatprovides feature1 [feature2] […]

	清理本地缓存:
		clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

	构建缓存:
		makecache

11、如何使用发行版光盘作为yum repository,请描述该过程。

	[root@centos7 /]# mount /dev/cdrom /mnt/cdrom
	[root@centos7 /]# vim /etc/yum.repos.d/cdrom.repo
	[cdrom]
	name=centos7cdrom
	baseurl=file:///mnt/cdrom
	gpgcheck=0
	enabled=1
	[root@centos7 /]# yum clean all
	[root@centos7 /]# yum makecache

12、写一个脚本,完成以下功能
   (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
   (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
   (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
   (4) 分别统计S开头和K开头的文件各有多少;

	[root@localhost tmp]# vim rcd.sh
	#!/bin/bash

	declare -i i=0
	declare -i j=0

	for src1 in /etc/rc.d/rc3.d/K*;do
	        echo $src1
	        $src1 stop
	        let i++
	        echo $i
	done

	/etc/init.d/network restart

	for src2 in /etc/rc.d/rc3.d/S*;do
	        echo $src2
	        $src2 start
	        let j++
	        echo $j
	done

	echo "K start file total:$i"
	echo "S start file total:$j"

	[root@localhost tmp]# bash rcd.sh

13、写一个脚本,完成以下功能
   (1) 脚本能接受用户名作为参数;
   (2) 计算此些用户的ID之和;

	[root@test tmp]# vim idsum.sh

	#!/bin/bash

	for i in $*;do
	        id $i &> /dev/null
	        if [ $? -ne 0 ];then
	                echo "$i not exists"
	                exit 32
	        else
	                let idsum+=`id -u $i`
	        fi
	done
	echo "idsum:$idsum"

	[root@test tmp]# bash idsum.sh test4 test2 test3


14、写一个脚本
   (1) 传递一些目录给此脚本;
   (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
   (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

    [root@test tmp]# vim filetype.sh 
	#!/bin/bash
	declare -i dfile=0
	declare -i cmnfile=0
	declare -i lfile=0
	declare -i bfile=0
	declare -i cfile=0
	declare -i sfile=0
	declare -i ufile=0

	if [ $# -lt 1 ];then
			echo "At least input a directory"
	exit 1
	fi
	
	dfile=$(ls -l "$@" |grep ^d |awk '{print $NF}'|wc -l)
	cmnfile=$(ls -l "$@" |grep ^- |awk '{print $NF}' |wc -l)
	lfile=$(ls -l "$@" |grep ^l |awk '{print $NF}' |wc -l)
	bfile=$(ls -l "$@" |grep ^b |awk '{print $NF}'|wc -l)
	cfile=$(ls -l "$@" |grep ^c |awk '{print $NF}' |wc -l)
	sfile=$(ls -l "$@" |grep ^s |awk '{print $NF}' |wc -l)
	ufile=$(ls -l "$@" |grep -v ^[-dlbcst/]|grep ^[^[:space:]] |awk '{print $NF}' |wc -l)
	
	ls -l "$@"
	echo "The directory file total: $dfile"
	echo "The common file total:$cmnfile"
	echo "The symbolic link file total:$lfile"
	echo "The block special file total:$bfile"
	echo "The character special file total:$cfile"
	echo "The socket file total:$sfile"
	echo "The unkown file total:$ufile"
	[root@test tmp]# bash filetype.sh  /dev /tmp

15、写一个脚本
  通过命令行传递一个参数给脚本,参数为用户名
  如果用户的id号大于等于500,则显示此用户为普通用户;

	[root@test tmp]# vim usertype.sh

	#!/bin/bash
	id $1 &> /dev/null
	if [ $? -eq 0 ];then
	        if [ `id -u $1` -ge 500 ];then
	                echo "user is regular user"
	        else
	                echo "user is a system user"
	        fi
	else
	        echo "user is not exsits"
	fi
	[root@test tmp]# bash usertype.sh test3



16、写一个脚本
   (1) 添加10用户user1-user10;密码同用户名;
   (2) 用户不存在时才添加;存在时则跳过;
   (3) 最后显示本次共添加了多少用户;

	[root@test tmp]# vim adduser.sh
	#!/bin/bash
	declare -i j=0
	for i in {1..10};do
	        id user$i &> /dev/null
	        if [ $? -ne 0 ];then
	                useradd  user$i
	                let j++
	                echo "add user$i success"
	        else
	                echo "user$i exist"
	        fi
	done
	echo "add user total:$j"

	[root@test tmp]# bash adduser.sh

17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

	[root@test tmp]# vim ping2.sh
	#!/bin/bash
	ip='172.168.250'
	for i in {20..100};do
	        ping -c 3 -w 3 $ip.$i &>/dev/null
	        result=$?
	        if [ $result -eq 0 ];then
	                echo -e "\033[32m $ip.$i is up \033[0m".
	      
	        fi
	done
	[root@test tmp]# bash -x ping2.sh

18、打印九九乘法表;

	[root@test tmp]# vim math99.sh

	#!/bin/bash
	for i in {1..9};do
	        for j in $(seq 1 $i);do
	                let sum=($i * $j)
	                echo -n -e "${j}x${i}=$sum\t"
	        done
	        echo
	done
	[root@test tmp]# bash  math99.sh

原创文章,作者:N22_上海_长清,如若转载,请注明出处:http://www.178linux.com/50521

(0)
N22_上海_长清N22_上海_长清
上一篇 2016-10-17
下一篇 2016-10-17

相关推荐

  • sed文本编辑工具

    用法:sed[option]… ‘script’ inputfile…常用选项:-n:不输出模式空间内容到屏幕,即不自动打印-e: 多点编辑-f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本-r: 支持使用扩展正则表达式-i.bak: 备份文件并原处编辑script:‘地址命令…

    Linux干货 2017-05-02
  • 建立dns服务

    一 、环境 两台机器,一台LINUX,机器名为LINUX,域名为tongqiang.cnIP地址为192.168.0.5,另一台机器为WIN98,机器名为tongqiang,IP地址从LINUX上DHCP服务器上获得。 二 、建立DNS服务器(假设你的DNS软件包已经安装好了,而且是在安装LINUX是选择安装DNS服务器的) 建立DNS服务器只需要修改以下几…

    2017-10-09
  • Linux发展史

    前言     Linux属于类Unix中的一个当下比较流行的操作系统,占领了服务器大部分江山。作为一个专业复杂的操作系统,了解其发展过程是很有必要的。如果要讲linux的历史,肯定是从三个团体开发Multics系统说起,贝尔实验室离开Multics项目后,Tompson和他的同事一起创造了unix,而在unix的各种分支中BSD则是迅速发…

    Linux干货 2016-10-14
  • FHS文件系统结构

    FHS文件系统结构 FHS(Filesystem Hierarchy Standard)文件系统层次结构标准是根据无数开发者的经验总结而来的,多数Linux版本采用这种文件组织形式,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理,并且会维持更新。

    Linux干货 2016-10-29
  • 基于keepalived的VRRP协议实现DR模型下的高可用集群

    基于keepalived的VRRP协议实现DR模型下的高可用集群 环境及配置前提说明 4台虚拟服务器都为centos6.8. 主机1,ip:192.168.25.140 做后端RS1,80端口向外部提供web服务 主机2,ip:192.168.25.141 做后端RS2,80端口向外部提供web服务 ip:192.168.25.142为lo:0接口的VIP地…

    Linux干货 2016-11-07
  • Linux系统启动基本流程

    Linux开机流程 如下图 00×01、BISO自检     硬件检查,检查硬件完整性,之后从开机BIOS开机硬件列表选择BOOT设备     2. 00×02、MBR引导     从bootloader446…

    2017-07-09

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-25 13:26

    作业很工整,细节描述的很好