马哥教育网络班19期第八周课程练习

马哥教育网络班19期第八周课程练习

1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、命名用场景

   网桥:为最早的网络连接设备,它主要用来延长扩展网络的物理长度

   集线器:对网桥的功能作了扩充,它的功能是将两个不同网段(广播域)网络进行连接,作为网络物理边界的扩展,一般用在连接两个网段不同的网络

   二层交换机:工作在网络链路层,可实现点对点传输,全双工工作。一般用在内部网络中,作为接入层设备。

   三层交换机:工作在IP层,在二层交换的基础上,增加了路由功能,能实现简单的路由寻址。一般用在内部网络内为作网关或汇聚层设备。

   路由器:工作在IP层,主要负责将接收到的报文进行路由寻址转发。一般用于外网不同网段间的网关设备或是内网核心网络的网关设备。

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

   IP地址分为A类1.0.0.0-126.0.0.0,B类128-191.0.0.0,C类192-223.0.0.0,D类224-239.0.0.0,E类240-255.0.0.0;

   子网掩码形式分为两段,前半段全1表示网络地址,后半段全0表示主机地址,得出子网掩码。子网掩码与IP地址相或,

   计算出的值,能就算出IP所在网络的网络地址。通常两台计算机通讯前都需计算出对方的网络地址,然后与自己的网络

   地址相比较,如果是在同一网段,那就通过第二层arp广播通信,如果是不同网段,那就封包成第三层的IP协议,通过路由发送数据。

        

      

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

   计算机网络的分层模型主要有ISO的OSI七层模型及互联网TCT/IP的四层模型。

   OSI七层模型:

       物理层:对应物理设备为网卡,该层负责物理设备的连接及通信,如电压信号、光信号的传输等。

       数据链路层:将底层的物理通信,抽象成链路格式,在本地网络内以广播,mac地址寻址等方式通信

       网络层:将数据链路层的数据进一步编码,加入网络寻址的方式,对数据进行路由寻址通信

  传输层:在网络层的基础上,加入对传输数据的控制,比如TCP的纠错重传机制,或UDP的直接传输机制,

          以便于更为精准的控制数据在IP网络上的传输行为。

       会话层:提供会话建立、保持等一系列功能

  表示层:提供各个应用程序之间的数据展现方式。

       应用层:各应用程序特有的数据通信格式。   

TCP/IP四层模型

       物理层,对应物理设备为网卡,该层负责物理设备的连接及通信,如电压信号、光信号的传输等。

       数据链路层,将底层的物理通信,抽象成链路格式,在本地网络内以广播,mac地址寻址等方式通信

       网络层,将数据链路层的数据进一步编码,加入网络寻址的方式,对数据进行路由寻址通信

       应用层,接收或发送到网络层的信息,转换成应用程序能理解的数据,比如会话保持,展示格式,

          软件应用的专有数据等。

     

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

    将Linux主机接入到网络中,有如下步骤:

 a.指定IP地址及子网掩码

 b.设定路由,即默认网关地址

 c.指定DNS服务器地址,该项可填写3个,以防单个DNS失效后可找到其它DNS替代发挥作用

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

   1.在GUI界面手工指定

    a.指定IP地址及子网掩码

b.设定路由,即默认网关地址

c.指定DNS服务器地址,该项可填写3个,以防单个DNS失效后可找到其它DNS替代发挥作用

   

   2.在命令行直接修改

     通过 ifconfig interface ip/mask up 命令行指定IP地址

通过 route add -net ip/mask if 命令设定路由

 

   3.直接修改配置文件

     网卡配置修改 /etc/sysconfig/network-scripts 下的网卡配置文件,类似 ifcfg-eth0 之类

路由修改地址 /etc/rc.d/rc.local

DNS地址修改  /etc/resolv.conf 

 

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

  #!/bin/bash

  #

  #ping hosts

   hosts=172.16.200

   for i in {1..254} ; do

     if  ping -c 1 -w 1 $hosts.$i &> /dev/null  ; then

       echo "$hosts.$i is up"

     else

       echo "$hosts.$i is down"

     fi

   done

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

TYPE=Ethernet                  网卡类型

BOOTPROTO=none                 

IPADDR=172.16.200.201          IP地址

PREFIX=16                      子网掩码  

DNS1=172.16.0.2                DNS服务器地址1

DEFROUTE=yes                   路由选项

IPV4_FAILURE_FATAL=yes         

IPV6INIT=no

NAME=eth2                      网卡名称

UUID=6ad68c63-e7b1-4200-915a-c72a0caf44c7    UUID值

ONBOOT=yes                     电脑启动时是否自动启动

HWADDR=00:0C:29:D9:58:B4       网卡MAC地址

GATEWAY=172.16.0.2             默认网关

LAST_CONNECT=1465863967

DEVICE=lo                      回环网卡

IPADDR=127.0.0.1               IP地址

NETMASK=255.0.0.0              子网掩码

NETWORK=127.0.0.0              网络地址

BROADCAST=127.255.255.255      广播地址

ONBOOT=yes                     电脑启动时是否自动启动

NAME=loopback                  网卡名称

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

   可使用辅助网卡的形式,直接添加,比如:

      ifconfig eth0:0 ip/mask    

 比如:ifconfig eno16777736:0 172.16.128.100 255.255.0.0 

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

    常用网络管理类工具有:

ifconfig 列出当前网卡IP地址信息

[root@localhost ~]# ifconfig

eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.16.128.3  netmask 255.255.0.0  broadcast 172.16.255.255

        inet6 fe80::20c:29ff:fee4:b5eb  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:e4:b5:eb  txqueuelen 1000  (Ethernet)

        RX packets 755924  bytes 939077981 (895.5 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 174367  bytes 11214179 (10.6 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno16777736:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.16.128.100  netmask 255.255.0.0  broadcast 172.16.255.255

        ether 00:0c:29:e4:b5:eb  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 20  bytes 1904 (1.8 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 20  bytes 1904 (1.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ip 命令:

[root@localhost ~]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:e4:b5:eb brd ff:ff:ff:ff:ff:ff

    inet 172.16.128.3/16 brd 172.16.255.255 scope global dynamic eno16777736

       valid_lft 1370sec preferred_lft 1370sec

    inet 172.16.128.100/16 brd 172.16.255.255 scope global secondary eno16777736:0

       valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:fee4:b5eb/64 scope link 

       valid_lft forever preferred_lft forever

netstat 列出当前服务器所有的TCP/IP网络连接

[root@localhost ~]# netstat -ntlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1751/master         

tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1610/rpcbind        

tcp        0      0 0.0.0.0:36692           0.0.0.0:*               LISTEN      1618/rpc.statd      

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1612/sshd           

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2380/cupsd          

tcp6       0      0 ::1:25                  :::*                    LISTEN      1751/master         

tcp6       0      0 :::58625                :::*                    LISTEN      1618/rpc.statd      

tcp6       0      0 :::111                  :::*                    LISTEN      1610/rpcbind        

tcp6       0      0 :::22                   :::*                    LISTEN      1612/sshd           

tcp6       0      0 ::1:631                 :::*                    LISTEN      2380/cupsd 

ss 功能同netstat类似,但速度比netstat快

[root@localhost ~]# ss -ntal

State      Recv-Q Send-Q                    Local Address:Port                      Peer Address:Port 

LISTEN     0      100                           127.0.0.1:25                                   *:*     

LISTEN     0      128                                   *:111                                  *:*     

LISTEN     0      128                                   *:36692                                *:*     

LISTEN     0      128                                   *:22                                   *:*     

LISTEN     0      128                           127.0.0.1:631                                  *:*     

LISTEN     0      100                                 ::1:25                                  :::*     

LISTEN     0      128                                  :::58625                               :::*     

LISTEN     0      128                                  :::111                                 :::*     

LISTEN     0      128                                  :::22                                  :::*     

LISTEN     0      128                                 ::1:631                                 :::*     

[root@localhost ~]# 

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

  Linux系统软件包管理方法,主要有两种,一是直接使用RPM进行软件包管理,另一种是借助yum工具。

  RPM:

    安装:  rpm -ivh packagename 

升级:  rpm -U packagename 

卸载:  rpm -e packagename 

查看当前所有rpm包: rpm -qa 

查看某个rpm包的信息: rpm -qi packagename 

  YUM:

安装:  yum install packagename

升级:  yum update packagename 

卸载:  yum remove packagename 

查看当前所有rpm包: yum list  

查看某个rpm包的信息: yum info packagename 

 

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

首先挂载光盘

    mount /dev/cdrom /mnt/cdrom -t 9665

然后,增加一个repository配置文件 在 /etc/yum.repos.d 添加后缀为 repo的文件。

例如:local.repo 

  [repositoryID] 

name=Some name for this repository   //仓库名称

baseurl=url://path/to/repository/      //仓库路径,路径的形式有多种,可以是:

            ftp://

   http://

nfs://

file:///

也可以多条,每个地址路径写一行即可

这里指定光盘作为仓库,则baseurl写成:

        baseurl=file:///mnt/cdrom 

            

enabled={1|0}   //是否启用此仓库,1为启用,0为停用

gpgcheck={1|0}  //是否进行gpg(GNU Private Guard)检验,以确定rpm包来源是有效和安全的

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority} //默认为:roundrobin,意为随机挑选;

cost=                         //仓库权值,默认为1000

通过这样设置,就可为系统将光盘配置为本地源仓库。

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

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

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

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

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

   

#!/bin/bash

#

#list /etc/rc.d/rc3.d/

declare -i m=0

declare -i n=0

dir=/etc/rc.d/rc3.d/

Sfiles=`ls $dir | grep ^S`

for i in $Sfiles ; do

  echo "${i}Start"

  m=$m+1

done

Kfiles=`ls $dir | grep ^K`

for j in $Kfiles ; do

  echo "${j}Kstart"

  n=$n+1

done

echo "Total Kfile is : $n"

echo "Total Sfile is : $m"

      

   

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

   (1)脚本能接受用户名作为参数

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

   

#!/bin/bash

#

#sum userid

declare -i uids=0

declare -i totals=0

if [ $# -lt 1 ]; then

  echo "Please input atlest 1st args!"

  exit 2

fi

#echo "\$\*:$*"

for i in $* ; do

   if id $i ; then

      let uids=0

      uids=`id -u $i`

      echo "uids: $uids"

      echo "totals: $totals"

      let $totals=$totals+$uids

echo "totals: $totals"

   fi

done

echo "Total UID's is: $totals."

   

 

14、写一个脚本

   (1)传递一些目录给此脚本

   (2)个显示每个目录的所有一级文件或子目录的内容类型

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

   #!/bin/bash

#

#show dir

declare -i totalfiles=0

if [ $# -lt 1 ]; then

  echo "Please input the DIR path"

  exit 2

fi

for i in $*; do

  if [ -d $i ]; then

    for j in `ls $i`; do

       if [ -d $j ]; then

         echo "$j is a dir"

       elif [ -f $j ]; then

         echo "$j is a file"

       else

         echo "Unknow $j"

       fi

       totalfiles=$totalfiles+1

    done

  fi

done

echo "Total Files is: $totalfiles."

   

      

15、写一个脚本

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

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

   

#!/bin/bash

#

#show uid > 500

declare -i uids=0

if [ $# -lt 1 ]; then

  echo "Please input a username as arg"

  exit 2

fi

if ! id $1 &> /dev/null ; then

  echo "$1: not such user."

fi

uids=`id -u $1`

if [ $uids -gt 500 ]; then

  echo "User $1 is a comm user."

fi

 

   

   

16、写一个脚本

  (1)添加10用户user1-user10,密码同用户名

  (2)用户不存在时才添加,存在时则跳过

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

#!/bin/bash

#

#add user

declare -i totals=0

for i in {1..10}; do

  if ! id user$i &> /dev/null  ; then

    useradd user$i &> /dev/null

    echo $i | passwd user$i &> /dev/null

    totals=$totals+1

  fi

done

echo "Total add user: $totals"

  

  

  

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

 #!/bin/bash

  #

  #ping hosts

   hosts=172.16.250

   for i in {20..100} ; do

     if  ping -c 1 -w 1 $hosts.$i &> /dev/null  ; then

       echo "$hosts.$i is up"

     fi

   done

  

18、打印九九乘法表

[root@localhost tmp]# vim 9X9.sh 

#!/bin/bash

#

#print 9X9

declare -i m=1

declare -i n=1

while [ $n -le 9 ]; do

  while [ $m -le $n ]; do

    echo -e -n  "${m}X${n}=$[$m*$n]\t"

    m=$m+1

  done

  echo

  m=1

  n=$n+1

done

原创文章,作者:马哥Net19_小斌斌,如若转载,请注明出处:http://www.178linux.com/20773

(0)
马哥Net19_小斌斌马哥Net19_小斌斌
上一篇 2016-06-29
下一篇 2016-06-29

相关推荐

  • 计算机的组成部分

    运算器:负责数据的运算和逻辑运算。 存储器:实现记忆功能的部件用来存放计算程序及参与运算的各种数据。 控制器:负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问。 输入设备:实现计算程序和原始数据的输入。 输出设备:实现计算结果输出。

    Linux干货 2017-08-19
  • echo address

    echo address

    Linux干货 2016-08-08
  • 定时任务的完成contab

    采用crontab来完成 利用crontab来定时执行任务大致有如下三步: 1、编写shell脚本 2、利用crontab加入到定时任务队列 3、查看作业完成情况 一、如何建立shell脚本 Linux下有很多不同的shell,但我们通常使用bash(bourne again shell)进行编程,因为bash是免费的并且很容易使用 程序必须以下面的行开始(…

    Linux干货 2016-08-11
  • bash基础特性(一)之命令历史,命令补存,路劲补存,命令行展开,命令执行状态结果和引用

    bash是Unix shell的一种,在1987年由布莱恩·福克斯为了GNU计划而编写。1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上,包括Linux与Mac OS X v10.4都将它作为默认shell。 Bourne shell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同…

    2017-09-20
  • vim编辑器

    vim编辑器    模式化编辑器                        &nbsp…

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

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录管理类的命令: mkdir, rmdir mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自动按需创建父目录; -v: verbose,显示详细过程; -m MODE:直接给定权限; 注意:路径…

    Linux干货 2018-01-17

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-29 14:54

    写的很好,有的脚本可以在优化一下,多注意排版