; 22期第8周课堂练习 | Linux运维部落

22期第8周课堂练习

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

blob.png

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

  A类:第一段为网络号,后三段为主机号   

        网络号0 000 0000 – 0 111 1111:1-127                  

        网络数量:126,127                  

        每个网络中的主机数量:2^24-2                  

        默认子网掩码:255.0.0.0,/8                           

        私网地址: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      

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

  blob.png

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

1.修改/etc/sysconfig/network-scripts/ifcfg-eth0 
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth0
HWADDR=00:0C:29:9C:52:A6
TYPE=Ethernet
UUID=2d7a302b-7ce9-4b03-b021-7d7bd22c4c4f
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.2.1
NETMASK=255.255.255.0
GATEWAY=192.168.2.254
DNS1=192.168.2.10
2.重启网络服务
[root@localhost ~]# service network restart
Shutting down interface eth0:  Device state: 3 (disconnected)
                                                           [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: activated
Connection activated

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

1./etc/sysconfig/network-scripts/配置文件
DEVICE=eth0
HWADDR=00:0C:29:9C:52:A6
TYPE=Ethernet
UUID=2d7a302b-7ce9-4b03-b021-7d7bd22c4c4f
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.2.1
NETMASK=255.255.255.0
GATEWAY=192.168.2.254
DNS1=192.168.2.10

2.setup

3.路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE      

 2.2 ss命令

ss  [options]  [ FILTER ]

选项:

    -t:TCP协议的相关连接

    -u:UDP相关的连接

    -w:raw socket相关的连接

    -l:监听状态的连接

    -a:所有状态的连接

    -n:数字格式

    -p:相关的程序及其PID

    -e:扩展格式信息

    -m:内存用量

    -o:计时器信息

 2.3nmcli命令

nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

device – show and manage network           

#nmcli device show           

#nmcli device status`interfaces

COMMAND := { status | show | connect | disconnect | delete | wifi | wimax } connection – start, stop, and manage network connections

COMMAND := { show | up | down | add | edit | modify | delete | reload | load } modify [ id | uuid | path ] <ID> [+|-]

<setting>.<property> <value>

    

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

         不在线的主使用红色显示;

#!/bin/bash
for i in 172.16.250.{1..254};do
    ping -c 2 -w 2 $i &> /dev/null
    if [ $? -eq 0 ];then
       echo  -e "\e[32m $i is up \e[0m"
    else
       echo  -e "\e[31m $i is down \e[0m"
    fi
done

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

DEVICE:此配置文件对应的设备的名称;				
ONBOOT:在系统引导过程中,是否激活此接口;				
UUID:此设备的惟一标识;				
IPV6INIT:是否初始化IPv6;				
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;				
TYPE:接口类型,常见的有Ethernet, Bridge;				
DNS1:第一DNS服务器指向;				
DNS2:备用DNS服务器指向;				
DOMAIN:DNS搜索域;				
IPADDR: IP地址;				N
ETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;				
GATEWAY:默认网关;				
USERCTL:是否允许普通用户控制此设备;				
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许;				
HWADDR:设备的MAC地址;				NM_CONTROLLED:是否使用NetworkManager服务来控制接口;

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

第一种:[root@localhost ~]# ifconfig  eth0:1 192.168.1.20
第二种:[root@localhost ~]# ip address  add  192.16.2.1/24 dev eth0
第三种:setup
第四种:修改/etc/sysconfig/network-scripts/ifcfg-eth0:1
第五种:Linux网络属性配置的tui(text user interface):system-config-network-tui

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


      1.1ifcfg命令家族

     1.1 ifconfig命令
   ifconfig  [INTERFACE]  ifconfig -a:显示所有接口,包括inactive状态的接口;				
   ifconfig interface [aftype] options | address ...				
   # ifconfig  IFACE  IP/MASK  [up|down]				
   # ifconfig  IFACE  IP  netmask

       1.2 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  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]

       1.3 netstat命令

显示路由表: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命令:

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

rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE]			
安装:-i, --install			
升级:-U, --update, -F, --freshen			
卸载:-e, --erase			
查询:-q, --query			
校验:-V, --verify			
数据库维护:--builddb, --initdb

 (1)安装			
 rpm {-i|--install} [install-options] PACKAGE_FILE ...
 rpm  -ivh  PACKAGE_FILE ...								
 GENERAL OPTIONS:					
 -v:verbose,详细信息					
 -vv:更详细的输出
 (2)升级
  rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...			
  rpm {-F|--freshen} [install-options] PACKAGE_FILE ...							
  -U:升级或安装;				
  -F:升级								
  rpm  -Uvh PACKAGE_FILE ...				
  rpm  -Fvh PACKAGE_FILE ...									
  --oldpackage:降级;					
  --force:强制升级;	
  (3)卸载	
  rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...								
  --allmatches:卸载所有匹配指定名称的程序包的各版本;				
  --nodeps:忽略依赖关系				
  --test:测试卸载,dry run模式	
  (4)查询
   rpm {-q|--query} [select-options] [query-options]
   [select-options] PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;				
   -a, --all:查询所有已经安装过的包;				
   -f  FILE:查询指定的文件由哪个程序包安装生成;								
   -p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;								
   --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;				
   --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;
   [query-options]				
   --changelog:查询rpm包的changlog;				
   -l, --list:程序安装生成的所有文件列表;				
   -i, --info:程序包相关的信息,版本号、大小、所属的包组,等;				
   -c, --configfiles:查询指定的程序包提供的配置文件;				
   -d, --docfiles:查询指定的程序包提供的文档;				
   --provides:列出指定的程序包提供的所有的CAPABILITY;				
   -R, --requires:查询指定的程序包的依赖关系;				
   --scripts:查看程序包自带的脚本片断;							
   用法:-qi  PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE				
         -qpi  PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ...						
         校验:			
         rpm {-V|--verify} [select-options] [verify-options]												
         S file Size differs			
         M Mode differs (includes permissions and file type)			
         5 digest (formerly MD5 sum) differs			
         D Device major/minor number mismatch			
         L readLink(2) path mismatch			
         U User ownership differs			
         G Group ownership differs			
         T mTime differs			
         P caPabilities differ				
         包来源合法性验正和完整性验正:		
         来源合法性验正:		
         完整性验正:				
         获取并导入信任的包制作者的密钥:			
         对于CentOS发行版来说:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7					
         验正:			
         (1) 安装此组织签名的程序时,会自动执行验正;			
         (2) 手动验正:rpm -K PACKAGE_FILE				
             数据库重建:rpm管理器数据库路径:/var/lib/rpm/			
                         查询操作:通过此处的数据库进行;					
                         获取帮助:			
                         CentOS 6:man rpm			
                         CentOS 7:man rpmdb						
                         rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]				
                         --initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;				
                         --rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;	

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

    1.将光盘进行挂载:mount -r -t iso9660 /dev/cdrom /media/cdrom
    2.创建yum源中的配置文件;
    [root@localhost network-scripts]# cat /etc/yum.repos.d/test.repo 
        [test]
        name=aa#新建yum名称
        baseurl=file:///media/cdrom#指定yum源的地址
        enabled=1#是否启用
        gpcheck=0#是否需要验证

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

       (1)   假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;

       (2)   显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

       (3)   显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

       (4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash

for i in $(find /etc/rc.d/rc3.d/K*);do
 echo -e "${i}.stop \n"
done
for j in $(find /etc/rc.d/rc3.d/S*);do
  echo -e "${j}.start \n"
done
echo "$(find /etc/rc.d/rc3.d/K*|wc -l)"
echo "$(find /etc/rc.d/rc3.d/S*|wc -l)"

    13、写一个脚本,完成以下功能
       (1) 脚本能接受用户名作为参数;

       (2) 计算此些用户的ID之和;

#!\bin\bash
id1=$(head /etc/passwd |tail -1|cut -d: -f3)
id2=$(head -20 /etc/passwd |tail -1 |cut -d: -f3)
sum=$[id1 + id2]
echo $sum

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

       (3)   统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bash
if [ $# -lt 1 ];then
echo "At  least a Directory"
exit 1
fi
ls -l "$@" | grep ^d | awk '{print $NF}' > directory
ls -l "$@" | grep ^- | awk '{print $NF}' > files
ls -l "$@"
echo "Total $(wc -l directory)"
echo "Total $(wc -l files)

    15、写一个脚本
      通过命令行传递一个参数给脚本,参数为用户名

      如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
a=`id -u $1`
if ! grep "^$1\>" /etc/passwd &> /dev/null; then
echo "no such user"
elif [ $a -ge 500 ];then
echo "this regular user"
else
  echo "this no regular user"
fi
~

    16、写一个脚本
       (1)   添加10用户user1-user10;密码同用户名;
       (2) 用户不存在时才添加;存在时则跳过;

       (3) 最后显示本次共添加了多少用户;

#!/bin/bash
declare -i j=0
for i in user{1..10};do
   if grep "^$i\>" /etc/passwd &> /dev/null; then
      echo "User $i exists."
   else
      useradd $i
      echo $i | passwd --stdin $i &> /dev/null
      echo "Add user $i finished."
      let j++
   fi
done
      echo $j

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

#!/bin/bash
for i in 172.16.250.{20..100};do
    ping -c 2 -w 2 $i &> /dev/null
    if [ $? -eq 0 ];then
       echo   "$i is up"
    fi
done

18、打印九九乘法表;

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

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

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-11 23:27

    作业总结详细认真,尤其是网络基础知识的总结,这些虽是基础的知识,但是还是很有必要认真对待,加油。

联系我们

400-080-6560

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

邮件:1660809109@qq.com

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

友情链接:万达登录  万达直属QQ  万达娱乐主管QQ  万达娱乐招商  万达招商QQ  万达娱乐主管  万达主管QQ  guoqibee.com  guoqibee.com  万达招商QQ