马哥教育网络班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

相关推荐

  • Bind配置和基本应用

    BIND的安装配置:    BIND: Berkeley Internet Name Domain,  ISC.org        dns: 协议      &nbsp…

    Linux干货 2017-05-30
  • LAMP基于编译安装方式实现(httpd与php以fastcgi方式结合)3

    概述     在某些现有rpm包不能满足需求的时候,可能需要编译安装LAMP环境,本篇就介绍下php与httpd结合方式为fastcgi方式结合时的编译安装,同时,由于httpd与php以module方式结合时,仅是编译选项有所差别,故也会简单说明下编译选项的差异 环境     CentOS7系统,…

    Linux干货 2016-10-17
  • 马哥教育网络班22期第一周课程练习2-未闻花名

    语法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。 参数: -f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p…

    Linux干货 2016-08-15
  • 高级文件系统管理之逻辑卷管理

    一,概述 逻辑卷管理器(LVM)     LVM: Logical Volume Manager, Version:2          dm:device mapper (设备映射),将一个或多个底层块设备组织成一个逻辑设备的模块 &nb…

    Linux干货 2016-09-10
  • 《 Git 权威指南 》学习笔记

    这个没办法直接发博客了,篇幅太长,无法直接在 Blog 上排版了,直接发上 pdf 文档了。 接 《LNAMP Shell 部署脚本》 博文的内容,线上测试系统的 Git 环境部署。 整个 Git 环境包括了:     Git / Gitweb     Gitolite / Gerrit &nbsp…

    Linux干货 2015-10-27
  • 为什么系统可执行文件多用相对路径创建链接

    为什么系统可执行文件多用相对路径创建链接 使用链接有什么好处 作为一个linux初学者,我们首先要知道,在linux中使用链接的好处是什么。总结下来一共有几个: 使用链接可以使我们在访问文件时省去一大笔敲文件路径的时间。对于我们运维工程师来说,我们经常要查看某个文件或者访问某个目录,再进行该项工作时,往往需要敲很多路径才能找到我们想访问的文件,创建链接可以让…

    Linux干货 2017-07-23

评论列表(1条)

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

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