冥界之王-第8周作业

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

  网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,
          不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。
          后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。
    集线器:线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,
            以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。
    二层交换机:二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。
                二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,
                根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
    三层交换机:三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,
                所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。
    路由器:路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,
            以最佳路径,按前后顺序发送信号。

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

  1. A类IP地址 
    一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,
    每个网络能容纳1亿多个主机。 
    2. B类IP地址 
    一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。
    可用的B类网络有16382个,每个网络能容纳6万多个主机 。 
    3. C类IP地址 
    一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。
    C类网络可达209万余个,每个网络能容纳254个主机。 
    4. D类地址用于多点广播(Multicast)。 
    D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。
    多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 
    
    5. E类IP地址 
    以“llll0”开始,为将来使用保留。 
    子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,
    以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,
    就是将某个IP地址划分成网络地址和主机地址两部分。

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

 OSI参考模型是计算机网路体系结构发展的产物。它的基本内容是开放系统通信功能的分层结构。这个模型把开放系统的通信功能划分为七个层次,
 从邻接物理媒体的层次开始,分别赋于1,2,……7层的顺序编号,相应地称之为物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。
 每一层的功能是独立的。它利用其下一层提供的服务并为其上一层提供服务,而与其他层的具体实现无关。这里所谓的“服务”就是下一层向上一层提
 供的通信功能和层之间的会话规定,一般用通信原语实现。两个开放系统中的同等层之间的通信规则和约定称之为协议。通常把1~4层协议称为下层协议,
 5~7层协议称为上层协议。
    国际标准化组织ISO在1979年建立了一个分委员会来专门研究一种用于开放系统的体系结构,提出了开放系统互连OSI模型,这是一个定义连接异种计算机
    的标准主体结构。
  OSI简介:OSI采用了分层的结构化技术,共分七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
  OSI参考模型的特性:是一种异构系统互连的分层结构;提供了控制互连系统交互规则的标准骨架;定义一种抽象结构,而并非具体实现的描述;
  不同系统中相同层的实体为同等层实体;同等层实体之间通信由该层的协议管理;相信层间的接口定义了原语操作和低层向上层提供的服务;
  所提供的公共服务是面向连接的或无连接的数据服务;直接的数据传送仅在最低层实现;每层完成所定义的功能,修改本层的功能并不影响其他层。
  1、物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;
               有关的物理链路上传输非结构的位流以及故障检测指示。(网卡)
  2、数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。(IEEE802.3,IEEE802.11)
  3、网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。(路由器,交换机)
  4、传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和
  流量控制。(TCPIP)
  5、会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时
  会话模式 。
  6、表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。
  7、应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。

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

1.用ifconfig -a查看机器上有几块网卡
   2.编辑/etc/sysconfig/network-scripts/ifcfg-eth0
   3.DEVICE=eth0
     TYPE=Ethernet
     UUID=048d9dc0-2dfc-4535-bfd9-8ee8f6a357fa
     ONBOOT=yes
     NM_CONTROLLED=yes
     BOOTPROTO=none
     DEFROUTE=yes
     IPV4_FAILURE_FATAL=yes
     IPV6INIT=no
     NAME="System eth0"
     HWADDR=08:00:27:A3:E1:99
     IPADDR=192.168.56.252
     PREFIX=24
     GATEWAY=192.168.56.1
     LAST_CONNECT=1476760809
     根据实际需要设置,主要是ONBOOT=yes,IPADDR
 4.service network restart重启网卡设置

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

 1. ifconfig eth0:0 192.168.56.104/24
    2.ip addr add 192.168.56.105/24 broadcast 192.168.56.1 dev eth0:0
    3.vi /etc/sysconfig/network-scripts/ifcfg-eth0
    4.利用图形界面

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

   

  #!/bin/bash
     ip="172.16.250"
     for((i=1;i<=254;i++));do
        ping -c 3 -w 3 $ip.$i > /dev/null
        result=$?
        if [ $result -eq 0 ];then
           echo -e "\033[32m $ip.$i is online \033[0m"
          else
           echo -e "\033[31m $ip.$i is offline \033[0m"
        fi
     done

 

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、如何给网络接口配置多个地址,有哪些方式?
   
  

ifconfig eth0:0 192.168.56.204
   ip addr add 192.168.56.205/24 dev eth0 label eth0:1

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

1. ifconfig
       ifconfig主要是能手动启动、观察和修改网络接口的相关参数,能修改的参数非常多,包括IP参数及MTU等都能修改,他的语法如下: 
       [root@linux ~]# ifconfig {interface} {up|down}  
       一 般来说,直接输入ifconfig就会列出目前已被启动的卡,不论这个卡是否有设置IP,都会被显示出来。而如果是输入ifconfig eth0,
       则会显示出这个接口的相关数据,而不管该接口是否启动。所以,如果你想要知道某个网卡的Hardware Address,直接输入“ifconfig"网络接口代
       号"”即可。至于上述代码中出现的各项数据是这样的(数据排列由上而下、由左而右)。
       eth0:网卡的代号,也有lo这个loopback。 
       HWaddr:网卡的硬件地址,习惯称为MAC。 
       inet addr:IPv4的IP地址,后续的Bcase、Mask分别代表的是Broadcast和Netmask。 
       inet6 addr:是IPv6的版本的IP,我们没有使用,所以略过。
       RX:那一行代表的是网络由启动到目前为止的数据包接收情况,packets代表数据包数、errors代表数据包发生错误的数量、dropped代表数据包
       由于有问题而遭丢弃的数量等。
       TX:和RX相反,为网络由启动到目前为止的传送情况。 
       collisions:代表数据包碰撞的情况,如果发生太多次,表示你的网络状况不太好。 
       txqueuelen:代表用来传输数据的缓冲区的储存长度。 
       RX Bytes、TX Bytes:总传送、接收的字节总量。 
       Interrupt、Memory:网卡硬件的数据,IRQ岔断和内存地址。
       通过观察上述的资料,大致上能了解到你的网络情况,尤其是RX、TX内的error数量,及是否发生严重的collision情况,都是需要注意的。 
     ifconfig eth0 192.168.100.100
      # 如果不加所有其他参数,则系统会依照该 IP 所在的 class 范围,
      # 自动地计算出 netmask 及 network, broadcast 等 IP 参数
     ifconfig eth0 192.168.100.100 netmask 255.255.255.128 MTU 8000
   2. ifup、ifdown
      实时地手动修改一些网络接口参数,能利用ifconfig来实现,如果是要直接以设置文件,亦即是在 /etc/sysconfig/network-scripts里面的
      ifcfg-ethx等文件的设置参数来启动的话,那就得要通过ifdown或ifup来实现了。 
      [root@linux ~]# ifup   {interface}
      [root@linux ~]# ifdown {interface}
      [root@linux ~]# ifup eth0
      ifup 和ifdown真是太简单了。这两个程式其实是script而已,他会直接到 /etc/ sysconfig/network-scripts目录下搜索对应的设置文件,
      例如ifup eth0,他会找出ifcfg-eth0这个文件的内容,然后加以设置。关于ifcfg-eth0的设置请参考前一章连上Internet的说明。
      不 过,由于这两个程式主要是搜索设置文件(ifcfg-ethx)来进行启动和关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确的目录内,
      否则会启动失败。另外,如果以ifconfig eth0来设置或是修改了网络接口后,就无法再以ifdown eth0的方式来关闭了。因为ifdown会分析比较
      目前的网络参数和ifcfg-eth0是否相符,不符的话,就会放弃这次操作。因此,使用 ifconfig修改完毕后,应该要以ifconfig eth0 down才能
      够关闭该接口。
  
   3.route
      route命令用于查询和设置路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
      在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需
      要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器
      重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
      格式 :route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
     [root@CentOS6 tmp]# route -n
     Kernel IP routing table
     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
     169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
     0.0.0.0         192.168.56.1    0.0.0.0         UG    0      0        0 eth0

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,请描述该过程。
   

1.[root@CentOS6 tmp]# vim /etc/yum.repos.d/CentOS-install.repo 
    2.[rhel-oracle]
      name=Red Hat Enterprise Linux $releasever - $basearch - Source
      baseurl=file:///media/
      enabled=1
      gpgcheck=0
    3.wq保存退出
    4.把光盘放到光驱里
    5.mount /dev/cdrom /media
    6.yum clean
    7.yum 安装

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

  

#!/bin/bash
     declare -i i=0
     declare -j j=0
     for str in /etc/rc.d/rc3.d/K*;do
        echo   $str "stop"
        i=$[$i+1]
     done
     echo $i
    for str in /etc/rc.d/rc3.d/S*;do
       echo $str "start"
       j=$[$j+1]
    done
     echo $j

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

declare -i sum=0
for user in $*;do
  id $user > /dev/null
  result=$?
  if [ $result -eq 0 ];then
     sum=$[$sum+$(id -u $user)]
   else
     echo "$user is not exists."
  fi
done

echo "userid sum is $sum."

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

 #!/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 one 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"

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

id $1 &> /dev/null
result=$?
if [ $result -eq 0 ];then
  if [ $(id -u $1) -lt 500 ];then
      echo "system user."
    else
      echo "common user."
  fi
 else
   echo "user not fonud!"
fi

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

declare -i sum=0
for((i=1;i<=10;i++));do
   id user$i > /dev/null
   result=$?
   if  [ $result -eq 0 ];then
      echo "user$i is extits!"
    else
      useradd user$i;
      echo "user$i" | passwd --stdin user$i
      sum=$[$sum+1]
   fi
done
echo "total add $sum users."

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

  #!/bin/bash
    ip="172.168.250"
    for((i=20;i<=100;i++));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

18、打印九九乘法表;
   

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

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

(0)
lihuisjsqlihuisjsq
上一篇 2016-10-23
下一篇 2016-10-23

相关推荐

  • Linux中正则表达式和grep的使用

    正则表达式在Linux经常配合grep,sed和awk等用于搜寻关键字。正则表达式分为正则表达式和扩展正则表达式: 一、正则表达式 1.1 元字符: .:匹配任意字符    []:匹配[]中的任意一个字符 [^]:匹配[]以外的任意字符 [:alpha:]大小写英文字母 [:digit:]:十进制数字 [:xdigit…

    Linux干货 2017-04-08
  • linux流程控制if,for,case,while

     Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:break和continue控制流程转向。 选择执行:           …

    Linux干货 2017-03-25
  • 马哥教育网络班19期+第九周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;#!/bin/bash#declare -i noNum=0declare -i lNum=0for bashName in `cat /etc/passwd | cut -d: -f7` …

    Linux干货 2016-06-29
  • 如何加密/混乱C源代码

    之前发表了《6个变态的C语言Hello World程序》[酷壳链接] [CSDN链接],主要是是像大家展示了一些C语言的变态玩法。也向大家展示了一下程序是可以写得让人看不懂的,在那篇文章中,可以看到很多人的留言,很多人都觉得很好玩,是的,那本来是用来供朋友们“消遣作乐”,供娱乐娱东而已,不必太过认真。 不过,通过这种极端的写法,大家可以看到源代码都可以写得那…

    Linux干货 2016-05-08
  • N26_第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理命令:cp,mv,rm 1、cp命令 功能说明:复制copy语法格式:        单源复制:  cp [OPTION]… [-T] SOURCE DEST  …

    Linux干货 2017-02-21
  • LAMP

    1、请描述一次完整的http请求处理过程; 一次完整的http请求处理过程: (1) 建立或处理连接:接收请求或拒绝请求; (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源; (5) 构建响应报文: (…

    Linux干货 2016-12-14

评论列表(1条)

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

    作业完成的很好