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

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

网桥:是将广播域划分为多个小的冲突域,但广播域没有变。工作在OSI模型的数据链路层,端口很少;基于软件;可以处理上层事务。
集线器:对接收到的信号进行再生整形放大,扩大网络传输距离;属于纯硬件网络底层设备,工作在OSI模型的物理层,不具有交换机的”智能记忆”和”学习”的能力;
也不具备交换机所具有的MAC地址表,发送数据时没有针对性,采用广播方式发送。当它要向某节点发送数据时,是通过把数据包发送到与集线器相连的所有节点。

二层交换机:工作于OSI模型的第2层(数据链路层),可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
三层交换机:具有部分路由器功能的交换机,加快大型局域网内部的数据交换,能够做到一次路由,多次转发。由硬件高速实现数据包转发等规律性的功能,由软件实现路由信息更新、路由表维护、路由计算、路由确定等功能。
三层交换技术就是二层交换+三层转发。传统交换技术工作于OSI模型的数据链路层,而三层交换技术是在网络层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。

路由器:是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号;属网络层的一种互联设备。
又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。
具有判断网络地址和选择IP路径的功能,能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,只接受源站或其他路由器的信息。
路由器和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。
这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。

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

A 类:1-127    默认子网掩码:255.0.0.0    私网地址:10.0.0.0/8
B 类:128-191    默认子网掩码:255.255.0.0    私网地址:172.16.0.0/16-172.31.0.0/16
C 类:192-223    默认子网掩码:255.255.255.0    私网地址:192.168.0.0/24-192.168.255.0/24
D 类:223-254
子网掩码表现形式有两种:一种与IP地址表现方法一样,即点分四组表示法,如:255.255.0.0;
另一种叫无类别域间路由(CIDR)表示法,如192.168.0.0/24
子网掩码是用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码

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

OSI模型分层如下:
应用层;提供应用程序之间通信;
表示层:处理数据格式、数据加密;
会话层:建立,维护,管理会话连接涉及操作系统和网络接口和各种数据;
传输层:建立主机端到端连接。涉及物理设备:四层交换机
网络层:寻址和路由选择。涉及物理设备:路由器
数据链路层:提供介质访问,链路管理,将数据分帧并处理流控制。涉及物理设备:网卡,网桥,交换机
物理层:比特流传输,将数据转换为可通过物理介质传送的电子信号。涉及物理设备:双绞线、同轴电缆,集线器
TCP/IP模型包括:应用层(对应OSI模型的应用层,会话层,表示层)、传输层、网络互连层、网络接口层(对应OSI模型的数据链路层和物理层)

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

1) 编辑/etc/sysconfig/network-script/eth0,设置IP,MAC,网关,地址分配是静态或动态
2) 编辑 /etc/hosts,添加IP
3) 编辑/etc/resolv.conf
4) 启动网络服务,service network restart
5) 测试连接网络

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

1) ifconfig eth0 IP/mask
2) ip addr add ip device eth0
3) Linux网络属性配置的tui(text user interface):system-config-network-tui
4) 使用setup;

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

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

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

1)网络接口配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE                      #网卡名
BOOTPROTO            #ip地址分配方式, dhcp、static
HWADDR                  #MAC地址
NM_CONTROLLED="yes"            #network manager参数,
ONBOOT=                #网卡是否开机激活
TYPE=                       #网络类型
IPV6INIT=no             #禁止IPV6
USERCTL=no            #是否允许非root用户控制该设备,为no,只能root用户更改
IPADDR=                  #IP ADDR
GATEWAY=              #gateway地址
NETMASK=               #掩码
DNS2=                      #dns2地址
DNS1=                      #dns1地址

2)路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
3)配置当前主机的主机名:/etc/sysconfig/network HOSTNAME=
4)网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules

8、如何给网络接口配置多个地址,有哪些方式?
1) ifconfig eth0 IP/mask
2) ip addr add IP device eth0
3) Linux网络属性配置的tui(text user interface):system-config-network-tui
4) 使用setup;

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

netstat:

1)、查看网络连接 netstat –tan

2)、查看路由 netstat –r 

3)、 显示网络接口 netstat –i

route:

1)、查看:route -n 

2)、添加:route add default gw 192.168.126.2

3)、删除:route del -net 0.0.0.0/0 gw 192.168.126.2

ip:

1)、激活或禁用指定接口:ip link set dev IFACE up /down

2)、配置IP:ip addr { add | del } IFADDR dev IFACE
3)、添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
4)、配置路由:ip route del TARGET
ss:

1)、查看端口监听状态: ss -tnl

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)编辑/etc/yum.repos.d/centos_iso.repo
[Packages]
name=centos_iso
baseurl=file:///mnt #本地iso的挂载路径
enabled=1 #可以使用yum
gpgcheck=0 #设置不检查gpgkey
gpgkey=file:///mnt/RPM-GPG-KEY-centos
2)挂载光盘至某目录,例如/mnt
# mount -r -t iso9660 /dev/cdrom /mnt
3) yum clean ; yum repolist

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

#!/bin/bash
DIR=/etc/rc.d/rc3.d/
sumofk=0
sumofs=0
K="stop"
S="start"
cd $DIR
for i in `ls |grep ^K`
do
  echo ${i}$K
  let sumofk++
done
for i in `ls|grep ^S`
do
  echo ${i}$S
  let sumofs++
done
echo "the sum of K is:" $sumofk
echo "the sum of S is:" $sumofs

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

#!/bin/bash
sum=0
echo "please input the username:"
read p
for i in $p
do
  a=`grep ^"\b${i}\b" /etc/passwd|cut -d: -f3`
  let sum=${sum}+${a}
done
echo ${sum}

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

#!/bin/bash
declare -i D=0
declare -i F=0
for d in $@
do
  for i in `ls $d`
  do
    FT=`file $i|cut -d: -f2`
    echo "$i's type is:$FT"
    let F++
    if [ $FT == "directory" ];then
      let D++
    fi
  done
done
echo "Directory count is $D"
echo "File count is $F"

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

#!/bin/bash
while true ;do
  read -p  "please input a username:" username
  case $username in
  exit)
    exit 1
    ;;
  *)
    echo $username
    uid=` grep ^"\b${username}\b" /etc/passwd|cut -d: -f3 `
    echo $uid
    if [ $uid -gt 500 ];then
      echo "$username is a common user"
    fi
    ;;
  esac
done

16、写一个脚本

   (1) 添加10用户user1-user10;密码同用户名;
   (2) 用户不存在时才添加;存在时则跳过;
   (3) 最后显示本次共添加了多少用户;

#!/bin/bash
declare -i COUNT=0
for i in user{1..10}
do
  id $i &>/dev/null
  if [ $? -eq 0 ];then
    useradd $i &>/dev/null
    echo $i|passwd --stdin $i &>/dev/null
    let COUNT++
  fi
done
echo "The added is :$COUNT"

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

#!/bin/bash
for ip in 172.16.250.{20..100}
do
  ping $ip -c 2 &>/dev/null
  if [ $? -eq 0 ];then
    echo -e "\e[1;32m $ip is online \e[0m"
    sleep 1
  fi
done

18、打印九九乘法表

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

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

(0)
上一篇 2016-08-29 08:59
下一篇 2016-08-29 09:00

相关推荐

  • 面授20期2班-08月4号课堂与课后习题

    课堂习题 1、显示/etc/init.d/functions文件中所有的单词及出现的次数 cat /etc/init.d/functions | tr -sc "[:alpha:]" '\n' |sort | uniq -c 2、找出ifconfig命令结果中本机的所有IPv4地址 centos6:ifconfig | h…

    Linux干货 2016-08-08
  • Linux bash 特性、相关变量以及编程

    Linux bash 特性、相关变量以及编程 bash 特性之:命令hash 缓存此前执行过的命令(都是外部命令,不记录内嵌命令),加速命令的执行 hash    -d 清空指定命令记录   -r 直接清空hash表 bash 特性之一: 变量 程序=指令+数据 指令是有文件提供 数据是由…

    Linux干货 2016-12-29
  • Linux 用户, 组和权限

    用户, 组和权限 Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在 /etc/shadow 中核对该 UI…

    2017-07-22
  • 文本处理三剑客之Gawk ✧

        AWK可以说是一种语言,他有着自己的语法,可以实现函数定义,变量赋值,条件选择(循环,判断,选择)…总之是值得深入研究一下的。     AWK的起源:是个报告生成器,可以格式化文本输出内容,它的命名是由Aho,Weinberger,Kernighan三位作者首…

    Linux干货 2016-09-21
  • sed

    sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。 Sed主要用来自动…

    Linux干货 2017-04-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-30 13:27

    如果将上面的文字描述换成图文并茂就更好了,直观