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

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

网桥:桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器
集线器:集线器的英文称为“Hub”.集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力,大多数的时候它用在星型与树型网络拓扑结构中
二层交换机:二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。主要应用于底层子网络中,即接入层中
三层交换机:三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。在企业网中,一般会将三层交换机用在网络的核心层,用三层交换机上的千兆端口或百兆端口连接不同的子网或VLAN。
路由器:路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。

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

IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址
子网掩码的表示形式
1. 通常的表示方式,如:255.255.255.0
2. 192.168.100.0/24
* 表示子网掩码是24位,子网掩码为:255.255.255.0
子网掩码的作用
它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络

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

OSI七层参考模型:物理层,链路层,网络层,传输层,回话层,表示层,应用层
应用层 提供为应用软件而设的界面,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
表示层 把数据转换为能与接收者的系统格式兼容并适合传输的格式。
会话层 负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
传输层 把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议义(TCP) 等。
网络层   决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。例如:互联网协议(IP) 等
数据链接路层 负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成了帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。
物理层 在局部局域网上传送帧,它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。

TCP/IP4层参考模型:网络接口层,互联层,传输层,应用层
应用层 提供为应用软件而设的界面,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。表示层 把数据转换为能与接收者的系统格式兼容并适合传输的格式。会话层 负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
传输层 把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议义(TCP) 等

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

1)编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0-->添加IP,网关,掩码,DNS1,设置地址分配为静态
2)编辑文件/etc/hosts-->修改hostname
3)编辑文件/etc/resolv.conf-->修改nameserver,如果在ifcfg-eth0中设置就可以不用设置了
4)重新启动网络服务--->service network restart 或systemctl restart network
5)测试网络是否可以正常通讯

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

ifconfig命令:
	ifconfig [interface]
		#ifconfig -a
		#ifconfig IFACE [up|down]

    ifconfig interface [aftype] options | address ..
    	#ifconfig IFACE IP/mask [up]
    	#ifconfig IFACE IP netmask MASK

    	注意:立即生效:(无法永久有效)
		启用混杂模式:[-]promisc
ip命令:		
	ip link -network device configure
		set 
		show
			[dev IFACE]:指定接口
			[up]:仅显示处于激活状态的接口

	ip address - protocol address management.
		ip addr { add | del } IFADDR dev STRING
			[ label LABEL ] :添加地址时指明网卡别名
			[scope{global|link|host}]:指明作用域
			global:全局可用
			link:仅链接可用
			host:仅本机可用
	 		[broadcast ADDRESS]:指明广播地址

	ip address show - look at protocol addresses
		[dev DEVICE]
		[label PATTERN]
		[primary adn secondary]
	ip address flush - flush protocol addresses 清空地址
		使用格式同show
				
	ip route - routing table management
		ip route add - add new route
		添加路由:ip route add TARGET via GW dev IFACE src SOURE_IP
		TARGET:
		主机路由:IP
		网络路由:NETWORK/MASK
		添加网关:ip route add default via GW dev DEVICE
	ip route delete - delete route
		删除路由:ip route del TARGET
	ip route show - list routes	
	ip route flush - flush routing tables
		[dev IFACE]:
		[via PREFIX]

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

 在线的主机使用绿色显示;
 不在线的主使用红色显示;
#!/bin/bash
#
ip='172.16.250'

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

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

路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
配置当前主机的主机名:/etc/sysconfig/networkHOSTNAME=
网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules

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

1) ifconfigetho IP/mask
2)  ipaddr add ip/mask device etho
3)  Linux网络属性配置的tui(text user interface):system-config-network-tui
4)  使用setup找到;
ip address - protocol address management.
		ip addr { add | del } IFADDR dev STRING
			[ label LABEL ] :添加地址时指明网卡别名
			[scope{global|link|host}]:指明作用域
			global:全局可用
			link:仅链接可用
			host:仅本机可用
	 		[broadcast ADDRESS]:指明广播地址

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

netstat: 
1、查看网络连接netstat –ltan 
2、查看路由netstat –r 
3、显示网络接口netstat–i
route:
查看路由route -n  
添加:routeadd:route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If]
ip linkset  dev IFACE up /down 激活或禁用指定接口
ipaddr { add | del } IFADDR dev IFACE
ip route add  添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
ss命令:(相当于netstat ,但在非常繁忙状态下,是netstat是几倍速度)
      格式:ss [options] [ FILTER ]
        选项:
          -t:tcp协议相关
          -u:udp协议相关
          -w:裸套接字相关
          -x:unix sock相关
          -l:listen状态的连接
          -a:所有
          -n:数字格式
          -p:相关的程序及PID
          -e扩展的信息
          -m:内存用量
          -o:计时器信息

          FILTER := [ state TCP-STATE ] [ EXPRESSION ]

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

rpm命令实现程序管理:
    安装: -ivh,--nodeps,--replacepkgs
    卸载:-e,--nodeps
    升级:-Uvh,-Fvh,--nodeps,--oldepackage
    查询: -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|enable|disabled]

  显示程序包:
    list
      # yum list [all | glob_exp] [glob_exp2][...]
      #yum list {available | installed | updates}[glob_exp][...]

  安装程序包
    yum install package1 [package2] [...]

      reinstall package1 [package2] [...](重新安装)

  升级程序包:
     update [package1] [package2] [...]
      升级软件包的同时也升级软件和系统内核 

     downgrade package1 [package2] [...](降级)
     upgrade [package1] [package2] [...]
      只升级软件包,不升级软件和系统内核
    

  检查可用升级:
    check-update

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

  查看程序包infomation:
    info[...]

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

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

  构建缓存: 
    makecache

  搜索
     search string1 [string2] [...]

     以指定的关键字搜索程序包名及summary 信息

  查看指定包所依赖的Capabilities:
     deplist package1 [package2] [...]

  查看yum事务历史:
     history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll-back|new|sync|stats]

  安装及升级本地程序包:

  *localinstall rpmfile1 [rpmfile2] [...]
       (maintained for legacy reasons only - use install)
    *localupdate rpmfile1 [rpmfile2] [...]
       (maintained for legacy reasons only - use update)

  包组管理的相关命令:
     * groupinstall group1 [group2] [...]
       * groupupdate group1 [group2] [...]
         * grouplist [hidden] [groupwildcard] [...]
         * groupremove group1 [group2] [...]          
         * groupinfo group1 [...]

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

(1)挂载光盘至某目录,例如/media/cdrom
      #mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 创建配置文件
      #vim /etc/yum.repos.d/CentOS-Media.repo
      [CentOS7]
      name=CentOS-$releasever - Media
      baseurl=file:///放Packages
      gpgcheck=0
      enabled=1

12、写一个脚本,完成以下功能

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

#!/bin/bash
#
declare -i stotal=0
declare -i ktotal=0
for i in `ls /etc/rc.d/rc3.d | grep "^S"`;do
  echo "$i start"
  let stotal++
done
for i in `ls /etc/rc.d/rc3.d | grep "^K"`;do
  echo "$i stop"
  let ktotal++
done
echo "K file is $ktotal"
echo "S file is $stotal"

13、写一个脚本,完成以下功能

(1) 脚本能接受用户名作为参数;
  (2) 计算此些用户的ID之和;

#!/bin/bash
#
declare -i idsum=0
if [ $# -le 0 ];then
  echo "Userage:bash.sh user1 user2 ..."
  exit 1
fi
for i in $*;do
  if id $i &> /dev/null;then
    idnum=`grep "$i" /etc/passwd | cut -d: -f3`
    idsum+=$idnum
  else
    echo "No exist $i "
  fi
done
echo "IDtotal is $idsum"

14、写一个脚本

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

#!/bin/bash
#
declare -i foder=0
declare -i file=0
declare -i cfile=0
declare -i lfile=0
declare -i bfile=0

if [ $# -lt 1 ];then
  echo "Useage:bash.sh file1 file2 ..."
  exit 1 
else
for j in $*;do
  if [ -f $j ];then
    echo "This file is file"
    exit 1
  else
    for i in `ls $j`;do
        cd $j
        if [ -f $i ];then
          echo -e "\033[31m"$i is file.
          let file++
        elif [ -d $i ];then
          echo -e "\033[32m"$i is foder.
          let foder++
        elif [ -c $i ];then
          echo "$i is string file."
          let cfile++
        elif [ -L $i ];then
          echo "$i is link file."
          let lfile++
        elif [ -b $i ];then
          echo "$i is block file."
          let bfile++
        else
          echo "Unknow file."
          exit 2
        fi
    done
    
  fi
done
fi
echo "file total:$file"
echo "link file total:$lfile"
echo "String file total:$cfile"
echo "block file total:$bfile"
echo "foder file total:$foder"

15、写一个脚本

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

#!/bin/bash
#
if [ $# -lt 1 ];then
  echo "Userage:bash.sh user1 user2 ..."
  exit 1
fi
for i in $*;do
  if id $i &> /dev/null;then
    idnum=`grep "$i" /etc/passwd | cut -d: -f3`
    if [ $idnum -gt 500 ];then
       echo "$i user is ordinary user."
    else
         echo "$i is system user."
    fi
  else
    echo "No exist $i "
  fi
done

16、写一个脚本

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

#!/bin/bash
#
declare -i total=0
for i in {1..10};do
	if id user$i &> /dev/null;then
		echo "user$i has exist."
	else
		useradd user$i
		[ $? -eq 0 ] && echo "user$i" | passwd --stdin user$i &> /dev/null
	echo "Add user$i finish."
	total+=1	
	fi
done
echo "Add $total uesrs success!"

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

ip='172.16.250'
uphost=0
for i in {1..254};do
  ping -c 5 -w 5 $ip.$i &> /dev/null
  result=$?
  if [ $result -eq 0 ];then	
	echo -e "\033[32m"$ip.$i is up.
	let uphost++
 fi
done	
echo "uphost is $uphost"

18、打印九九乘法表;

#!/bin/bash
      #
      for ((j=1;j<=9;j++));do
        for((i=1;i<=j;i++));do
          echo -e -n "${j}x${i}=$[$j*$i]\t"
        done
        echo
      done

   

原创文章,作者:Net21_Lion,如若转载,请注明出处:http://www.178linux.com/41034

(0)
Net21_LionNet21_Lion
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • 逻辑卷

    LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性。       LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载…

    Linux干货 2016-09-01
  • 分布式系统的事务处理

    当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题: 1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。 2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。 于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务: 1)数…

    Linux干货 2016-08-15
  • 马哥教育的第一天

    春天的北京,比想象中的更加温暖,跨越一千三百公里的距离,我来到马哥教育位于北京昌平区的校区,传说中的春寒料峭似乎遗忘了北京,自湖北出门的时候,车外还是淅淅沥沥的小雨,到达北京,迎接我的却是春风拂面熏人醉。 安顿了两天之后,我们三十期的开班典礼在三月二十六号早上的九点钟准时开始,由云珍老师主持,传说中的马哥、王老师、张sir、宗华老师纷纷登台致辞,分别从运维工…

    2018-03-26
  • shell脚本基础练习2

    1.编写一个脚本/root/bin/createuser.sh,脚本的执行语法必须是:createuser.sh -username -m password,选项与参数间可支持多空格,但不能顺序颠倒。当未指定正确的选项或参数时,以错误输出方式提示“createuser.sh -u username -m password ”后退出脚本。用…

    2017-08-12
  • 如何自建系统内部 yum 仓库

       准备:     a.素材:一套centos6.9和一套centos7.3的ISO镜像光盘     环境:1.centos6.9和centos7.3,安装好的系统各一套(土豪随意 )     b.建立前请关闭防火墙,防止防火墙的干扰     &n…

    2017-08-05
  • 马哥教育千万级PV实战大揭秘

    又到了激动人心的架构实战项目实践时间,马哥教育面授班的学员都很期待这一刻的到来,因为经过此次洗礼,能让自己成长更多! 上周二,马哥教育张Sir带领18期面授班的学员们做千万PV级别的电商架构实战项目!新增的多台R710企业级服务器设备,轻松搭建大数据、云计算等高端实验环境,让实战,更加真实!相信经过这场实战的洗礼,小伙伴们架构技能会有更大提升! 【张Sir生…

    2016-06-30

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-30 13:24

    如果有一两个输出结果的示例,可能更吸引人哦