马哥教育网络班20期+第8周博客作业

1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
  网桥:链接层设备,基于MAC地址过滤。

  集线器:物理层设备,基本都属于半双工模式。集线器与网桥在现在的局域网中基本都不用了。

  二层交换机:基本MAC转发数据,功能齐全的可支持VLAN等功能。常见的有100/1000M、16口/24口/48口。

  三层交换机:功能齐全的交换机,具备都静态路由、动态路由、VLAN、policy、DHCP等功能。可用于网络的汇聚与核心设备。

  路由器:一般用于局域网的出口、不同网络之间的连接的位置,常用的功能主要有各种路由协议、VPN、NAT等功能
2、IP地址的分类有哪些?子网掩码的表示形式及其作用

   IP地址的分类:
   A类:1-127
   B类:128-191
   C类:192-223 
   D类:组播 224-239
   E类:240-255

   子网掩码的表现形式:
   十进制:172.16.100.100/255.255.0.0
   简写:172.16.100.100/16

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

  应用层 (Application):
  网络服务与最终用户的一个接口。
  协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET
  设备:

  表示层(Presentation Layer):
  数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
  格式有,JPEG、ASCll、DECOIC、加密格式等
  设备:

  会话层(Session Layer):
  建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
  对应主机进程,指本地主机与远程主机正在进行的会话
  设备:

  传输层 (Transport):
  定义传输数据的协议端口号,以及流控和差错校验。
  协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
  设备:

  网络层 (Network):
  进行逻辑地址寻址,实现不同网络之间的路径选择。
  协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
  设备:路由器、防火墙

  数据链路层 (Link):
  建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
  将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
  设备:交换机

  物理层(Physical Layer):
  建立、维护、断开物理连接。(由底层网络定义协议)
  设备:集线器、网络


  对应tcp、ip的4层:
  应用层
  tcp udp
  ipv4  ipv6
  设备驱动程序和硬件
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
  要配置这些:
    IP/mask
    路由
    DNS服务器
    
   IP: 
   vim /etc/sysconfig/network-scripts/ifcfg-eth0

   改2项:   
      BOOTPROTO=dhcp 
      ONBOOT=yes

   如果改成static,则需要添加网关;否则没网

   保存退出
   

  DNS:
   vim /etc/resolv.conf

   把nameserver=192.168.1.1 改成=8.8.8.8 
   
   保存退出

   ping  www.baidu.com

   service network restart  (centos7:systemctl restart network )
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
    静态指定: 有3种
      ifconfig
      ip;
      配置文件

    例如:
    ifconfig eth0 172.16.100.12 netmask 255.255.0.0
    ip addr add 172.16.100.13/16 dev eth0

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;

    DEVICE:此配置文件应用到的设备;

    HWADDR:对应的设备的MAC地址;

    BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;

    NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;

    ONBOOT:在系统引导时是否激活此设备;

    TYPE:接口类型;常见有的Ethernet, Bridge;

    UUID:设备的惟一标识;

    PADDR:指明IP地址;

    NETMASK:子网掩码;

    GATEWAY: 默认网关;

    DNS1:第一个DNS服务器指向;此处的DNS配置优先于/etc/resolv.conf文件中的DNS配置

    DNS2:第二个DNS服务器指向;

    USERCTL:普通用户是否可控制此设备;

    PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;
8、如何给网络接口配置多个地址,有哪些方式?
      ifconfig
      ip;
      配置文件
      都可以实现。
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
    ifconfig/route/netstat
    ifup/ifdown
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
    rpm命令
    yum命令

例如:
rpm命令:
    安装
    rpm {-i|--install} [install-options] PACKAGE_FILE(包文件) ...
        -v: verbose
        -vv: more verbose
        -h: 以#显示程序包进度;每个#表示2%的进度


    升级
        rpm -Uvh PACKAGE_FILE ...
        rpm -Fvh PACKAGE_FILE ...

    卸载
    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] 
         rpm -e zsh  
         rpm -q zsh 


yum命令:
    安装程序包:
        install package1 [package2] [...]
        reinstall package1 [package2] [...]  (重新安装)

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

    卸载程序包:
        remove | erase package1 [package2] [...]  依赖的程序包也会被卸载
11、如何使用发行版光盘作为yum repository,请描述该过程。

    cd /etc/yum.repos.d/    
    ls  
    vim centos-local.repo

    [epel]
    name=EPEL for EL6 x86_64
    baseurl=http://mirrors.aliyun.com/epel/6/x86_64/   
    gpgcheck=1
    enabled=1  

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

      #!/bin/bash
      k=0
      s=0
      for i in $(ls /etc/rc.d/rc3.d/K* | grep -o "[^/]*$"); do
          echo "$i stop"
          let k=$k+1
      done
      for i in $(ls /etc/rc.d/rc3.d/S* | grep -o "[^/]*$");do
          echo "$i start"
          let s=$s+1
      done
      echo "K file: $k; S file: $s" 


      第二种实现:

      #!/bin/bash

      declare -i k=0
      declare -i s=0

      for i in $(ls /etc/rc.d/rc3.d/); do
         file1=(grep "^K*$" /etc/rc.d/rc3.d/$i)
         if [ -n "$file1" ]; then
            echo "$i stop"
          let k++
         file2=(grep "^S*$" /etc/rc.d/rc3.d/$i)
         if [ -n "$file2" ]; then
            echo "$i start"
          let s++
           fi
         fi
      done

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

    declare -i sum=0

    for i in $*;do
       if id $i &>/dev/null;then
         sum+=$(id -u $i)
       fi
    done  
    echo "sum uid:$sum"
14、写一个脚本
   (1) 传递一些目录给此脚本;
   (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
   (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
    
    #!/bin/bash
    declare -i dsum=0,fsum=0

    if [ $# -eq 0 ]; then
            echo "input at least a filepath!"
        fi

    for i in $*;do
        if [ -d $i -a -x $i ]; then
           ls -l $i  |grep ^d |awk '{print $NF}'
           let dsum+=$(ls -l /tmp/ |grep ^d |wc -l)
           let fsum+=$(ls -l /tmp/ |grep -v ^d |wc -l)
        else
            echo "The $i is not exist or Permission denied,please check it!"
            exit 2
        fi
    done
           
    echo "the directories sum:$dsum"
    echo "the file sum:$fsum"
15、写一个脚本
  通过命令行传递一个参数给脚本,参数为用户名
  如果用户的id号大于等于500,则显示此用户为普通用户;
      #!/bin/bash

      for i in $*; do
        if id $user &> /dev/null; then
            userid=`id -u $i`
            if [ $userid -ge 500 ]; then
            echo "common user"
        fi
      done
16、写一个脚本
   (1) 添加10用户user1-user10;密码同用户名;
   (2) 用户不存在时才添加;存在时则跳过;
   (3) 最后显示本次共添加了多少用户;

      #!/bin/bash
      #
      declare -i i=1
      declare -i users=0  

      while [ $i -le 10 ]; do  
          if ! id user$i &> /dev/null; then  
        useradd user$i  
          echo "Add user: user$i."  
              let users++ 
          fi
          let i++  
      done

      echo "Add $users users."
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
    #!/bin/bash
    #
    declare -i i=1
    declare -i uphosts=0
    declare -i downhosts=0
    net='172.16.250'

    while [ $i -le 20 ]; do
        if ping -c 1 -w 1 $net.$i &> /dev/null; then
        echo "$net.$i is up."
        let uphosts++
        else
        echo "$net.$i is down."
        let downhosts++
        fi
        let i++
    done

    echo "Up hosts: $uphosts."
    echo "Down hosts: $downhosts."
18、打印九九乘法表;
    #!/bin/bash
    #
    declare -i i=1 
    declare -i j=1 

    while [ $j -le 9 ]; do
        while [ $i -le $j ]; do
        echo -e -n "${i}X${j}=$[$i*$j]\t"
        let i++  
        done

        echo   
        let i=1  
                                 
        let j++
    done

原创文章,作者:mississippi,如若转载,请注明出处:/45085

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达娱乐开户  万达娱乐主管QQ  万达主管QQ  万达娱乐注册  万达娱乐主管  万达娱乐平台  guoqibee.com  万达娱乐直属  万达娱乐招商QQ  万达登录