马哥教育网络班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发展及简单命令

    一 计算机的组成及其功能 冯·诺依曼提出的计算机体系结构:计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成。 二 Linux的发行版 Linux发行版主要有三个分支:Debian、Slackware、Redhat。 (1)Debian:(以社区的方式运作) Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器; Lin…

    2018-03-02
  • MAN手册各章节功能介绍及快捷键键位整理

       初学linux ,请教别人的时候,遇到人不耐烦回答我等菜菜的问题,都会说一句,“自己去man”,“翻过man了吗,再来问吧”,哦,my gd,这个man到底是何方超人啊,其实man就是linux自带的文档,假如你不知道ls这个命令的用法,你可以试着敲入 man  ls  ,然后来看看,会有啥结果。效果不错吧,一般…

    Linux干货 2016-10-18
  • 交互式与非交互式的区别

    交互式与非交互式shell /登录shell于非登录shell 外网连不上,教室装修太吵,相关资料找不到,云云不知所云,托托症又犯了 登录shell_非登录shell // .bash_profile .bashrc profile 文件的作用的执行顺序 http://blog.csdn.net/robertaqi/archive/2010/04/04/54…

    Linux干货 2017-06-11
  • Linux文件夹作用

    适用对象:本文适用于初学Linux以及有志于学习Linux的朋友们。   Linux文件系统形状类似于倒置的树状结构,所有的文件或文件夹都可以被认为是根目录/的子目录。 在Linux系统安装完成之后,系统会自动在/目录下创建一些文件,而这些文件都有自己特殊的作用。本文就/下的目录做个简单的介绍。 /bin:存放所有用户使用的二进制可执行命令 /bo…

    Linux干货 2016-10-19
  • rsync+inotify实时同步备份数据

    rsync同步 rsync+inotify实时同步备份数据 软件简介: rsync命令简介: rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大…

    Linux干货 2016-10-28
  • 15磁盘管理

    在系统中,常见的硬盘接口有分两类:并行的和串行的 并行: IDE: 133MB/s SCSI: 640MB/s 串行: SATA: 6Gbps SAS: 6Gbps USB: 480MB/s 存储设备的设备文件命名方式大致为:/dev/DEV_FILE IDE: /dev/hd#  #–>0,1,2,3 SCSI,SATA,SAS…

    Linux干货 2016-12-02

评论列表(1条)

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

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