马哥教育21期网络班—第8周课程+练习—-成长进行时–不退步

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

网桥:一种网路装置,负责网路桥接,将网络的多个网段在数据链路层连接起来。
集线器:将多条以太网线或光纤集合连接在同一段物理介质下的装置。工作在物理层。
二层交换机:工作在数据链路层,交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。
三层交换机:三层交换机可以处理第三层网络层协议,用于连接不同网段,通过对缺省网关的查询学习来建立两个网段之间的直接连接。三层交换机具有一定的“路由”功能,但只能用于同一类型的局域网子网之间的互联。这样,三层交换机可以像二层交换机那样通过MAC地址标识数据包,也可以向传统路由器那样在两个局域网子网之间进行功能较弱的路由转发,它的路由转发不是通过软件来维护的路由表。而是通过专用的ASIC芯片处理这些转发。
路由器:提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径,这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端,这称为转送。

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

IP地址分为:
A类:1.0.0.1-126.255.255.254
网络数:126
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0
私网地址:10.0.0.0/8-10.255.255.255/8
B类:128.0.0.1-191.255.255.254
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16-172.31.255.255/16
C类:192.0.0.1-223.255.255.254
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0/24-192.168.255.255/24
D类:组播 224.0.0.1-239.255.255.254
E类:240.0.0.1-255.255.255.254
子网掩码:将IP地址划分为网络地址与主机地址,与IP地址相与可计算出相应主机的网络地址

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

OSI模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
①物理层(Physical layer):利用物理传输介质为数据链路层提供物理连接,
如:集线器、网线、光纤、同轴电缆等; 在这一层,数据的单位称为比特(bit)。物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等
数据链路层(Data link layer):将数据分帧,并处理流控制,屏蔽物理层,
为网络层提供一个数据链路的连接,进行几乎无差错的数据传输,如:网卡、网桥、二层交换机;
该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、
帧中继等。
网络层(Network layer):负责路由转发和控制网络拥塞,如:路由器、三层交换机等; 
在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。
传输层(Transport layer):负责将上层数据分段并提供端到端的、可靠(TCP)
或不可靠(UDP)的数据传输;在这一层,数据的单位称为数据段(segment)。
传输层协议的代表包括:TCP、UDP、SPX等。
会话层(Session layer):负责两个节点之间的连接和断开;管理主机之间的会话进程,
即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
表示层(Presentation layer):负责加密和解密;表示层的数据转换包括数据的加密、
压缩、格式转换等。
应用层(Application layer):用于进程间通信,常用的协议有HTTP、FTP、SMTP、TELNET等 
(2)TCP/IP模型:网络接入层 、网际互联层、传输层、应用层
网络接入层:与OSI参考模型中的物理层和数据链路层相对应,负责监视数据在主机和网络之
间的交换;
网际互连层:相当于OSI的网络层,主要处理主机到主机间的通信;该层定义了分组格式和协议,
即IP协议(Internet Protocol)。除了需要完成路由的功能外,也可以完成将不同类型的网络
(异构网)互连的任务,也需要完成拥塞控制的功能。
传输层:对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的
顺序传送及数据的完整性,该层定义了两种服务质量不同的协议:传输控制协议TCP(transmission
 control protocol)和用户数据报协议UDP(user datagram protocol)。
应用层:对应于OSI参考模型的会话层、表示层和应用层,面向不同的网络应用引入了不同的
应用层协议,如:FTP、HTTP等

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

设置IP/mask    vim /etc/sysconfig/network-scripts/ifcfg-eth0
设置路由:默认网关    vim /etc/sysconfig/network
设置DNS服务器:主,次5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
(1)编辑配置文件:
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    vim /etc/resolv.conf
        nameserver DNS_SERVER_IP1
        nameserver DNS_SERVER_IP2
(2)通过图形界面:cenos6:setup 
                   centos7:system-config-network-tui
(3)通过命令:
    通过ifconfig命令设置IP地址与子网掩码
    ifconfig eth0 [up|down]
    ifconfig eth0 192.168.99.95/24
    ifconfig eth0 192.168.99.95 netmask 255.255.255.0
    ②通过route命令添加路由条目
    route add -host 192.168.99.95 gw 192.168.89.1 dev eth0
    route add -net 192.168.99.0 netmask 255.255.255.0 gw 192.168.98.1 dev eth0
    route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.89.1
    route add default gw 192.168.89.1
    route del -host 192.168.99.95
    route del -net 192.168.0.0 netmask 255.255.255.0
    route del default gw 192.168.89.1
    通过ip命令设置IP地址,子网掩码与路由条目
    ip link set dev eth0 [up|down]
    ip link show [dev IFACE] [up]
    ip addr add 172.16.10.13/16 dev eth0
    ip addr del 172.16.10.13/16 dev eth0
    ip addr show [dev IFACE]
    ip addr flush [dev IFACE]
    ip route add 192.168.1.3 via 172.16.0.1 dev eth0
    ip route add 192.168.0.0/24 via 172.16.0.1 dev eth0
    ip route add default via 172.16.0.1
    ip route del 192.168.1.3
    ip route del 192.168.0.0/24
    ip route del default
    CentOS 7
 nmcli connection show
nmcli connection add type ethernet con-name NEW ifname eno16777736 ip4 192.168.1.141 gw4 192.168.1.1
  • 6、写一个脚本,使用ping命令探测172.16.250.1- 172.16.250.254之间的所有主机的在线状态;

  • 在线的主机使用绿色显示;

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

#!/bin/bash
      #
      net='172.16.250'
      uphosts=0
      downhosts=0
      for i in {1..254}; do
          ping -c 1 -w 1 ${net}.${i} &> /dev/null
          if [ $? -eq 0 ]; then
        echo -e "\033[31m"$net.$i is up."\033[0m"
              let uphosts++
          else
        echo -e "\033[31m "$net.$i is down." \033[0m"
              let downhosts++
          fi
      done
      echo -e "\033[31m"Up hosts: $uphosts."\033[0m"
      echo -e "\033[32m"Down hosts: $downhosts."\033[0m"

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

IP,MASK,GW,DNS配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
    DEVICE=此配置文件应用到的设置(eth0)
    HWADDR=对应设备的MAC地址
    BOOTPROTO=激活此设备时使用的地址配置协议,常用的dhcp,static,none,bootp
    NM_CONTROLLED=NM是NetworkManager的简写:此网卡是否接受NM控制(CentOS6建议为no)
    ONBOOT=在系统引导时是否激活此设备
    TYPE=接口类型,常见有Ethernet,Bridge
    UUID=设备的唯一标示
    IPADDR=指明IP地址
    NETMASK=子网掩码
    GATEWAY=默认网关
    DNS1=第1个DNS服务器指向
    DNS2:第2个DNS服务器指向

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

ifconfig
# ifconfig eth0:0 192.168.0.22/24
ip
# ip addr add 192.168.0.22/24 dev eth0
# ip addr add 192.168.0.22/24 dev eth0 label 'eth0:0'
配置文件
# ifcfg-IFACE_ALIAS
    # DEVICE=IFACE_ALIAS
    删除其中的HWADDR与UUID,如果没有其他网关作为出口,也可以将GATEWAY删除

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

ifconfig设置网卡,ifconfig eth0 192.168.0.2/24     
  route设置路由,rout add –host 192.168.0.2 gw 172.16.1.1 dev eth0
  ip设置地址,ip addr add 192.168.0.2/24 dev eth0
  netstat :netstat -ntplu 显示网络信息

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

rpm -i 安装指定rpm程序包
rpm -e 卸载指定程序
rpm –test 测试安装
rpm –nodeps 忽略依赖关系
rpm –replacepkgs 重新安装
rpm –nosignature:不检查来源的合法性
rpm –upgrage 安装有旧程序包,则升级,如果不存在旧版程序包,则安装
rpm –freshen:安装有旧程序包时,则升级,如果不存,则不执行升级操作
rpm -q{l | c } 显示指定程序是否安装\安装生成的文件\配置文件
yum install 安装指定程序
yum remove 卸载指定程序
yum update 升级指定程序 
yum groupinstall 安装组程序包
yum groupupdate 升级组程序 
yum groupremove 卸载组程序
yum info 查看指定程序的信息

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

创建挂载目录 mkdir /media/cdrom 
首先挂载到某一个目录,如mount /dev/cdrom /media/cdrom 
编辑或创建/etc/yum.repos.d/ 目录下以repo结尾的文件。
vim /etc/yum.repos.d/localadd.repos [cdrm]
name=cdrm 名称
baseurl=file:///media/cdrom 路径cost=1 成本 
gpgcheck=0 不检查
enabled=1 开启
  • 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"
  • 13、写一个脚本,完成以下功能

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

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

 #/bin/bash
    sum=0
    for i in $*;do
        if id $i &> /dev/null ;then
            userid=`id -u $i`
            let sum=$sum+$userid
        else
            echo "user $i not found"
        fi
    done   
    echo "User id sum is $sum"
  • 14、写一个脚本

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

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

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

 #/bin/bash
    for i in $*;do
        typed=0
        typef=0
        filenume=0
        for ii in `ls $i`;do
            let filenume=$filenume+1
            if [ -d $i/$ii ];then
                let typed=$typed+1
            elif [ -f $i/$ii ]; then
                let typef=$typef+1
            fi
        done
        echo "$i"
        echo "$i director $typed, file $typef"
    done
  • 15、写一个脚本

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

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

#!/bin/bash
for i in $*;do
    if ! id $i > /dev/null ; then
        echo "There is no for user $i"
    else 
        userid=`id -u $i` 
        if [ $userid -ge 500 ];then
            echo "user $i is average user "
        else 
            echo "user $i is system user"
        fi
    fi
done
  • 16、写一个脚本

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

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

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

#!/bin/bash 
count=0
for i in {1..10};do
if id user$i &>/dev/null;then
echo "user$i exists."
break
else
useradd user$i
fi
if [ $? -eq 0 ];then
echo "user$i" | passwd --stdin user$i &> /dev/null
echo "Add user$i finished."
let count+=1
fi
done
echo "add $count new user$i" 
echo "to users:`wc -l /etc/passwd | cut -d' ' -f1`"

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 100 ]; 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
      #
      for j in {1..9}; do
          for i in $(seq 1 $j); do
          echo -e -n "${i}X${j}=$[$i*$j]\t"
          done
          echo
      done

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

(0)
N21_ DominicN21_ Dominic
上一篇 2016-08-24 21:23
下一篇 2016-08-24 21:28

相关推荐

  • 更改CentOS7 默认网卡eno16777736为eth0

        安装完CentOS7,它的默认网卡名为eno16777736 看着不爽!习惯了eth0的命名方式。 编辑 /etc/sysconfig/grub 在“GRUB_CMDLINE_LINUX”里添加net.ifnames=0 biosdevname=0 保存退出 如图: 然后执行 grub2-mkconfig -o…

    系统运维 2015-12-19
  • 有趣的bash脚本

    1、编写脚本/root/bin/createuser.sh,实现如下功能:使 用一个用户名做为参数,如果指定参数的用户存在,就显示 其存在,否则添加之;显示添加的用户的id号等信息 #!/bin/bash read -p “Please input username: ” n if id $n &> /dev/null;then echo “T…

    Linux干货 2017-08-25
  • 基于Python和MoviePy库实现数据的动态展示

    基于Python和MoviePy库实现数据的动态展示 (翻译:以马内利)  原文链接:Data Animations With Python and MoviePy   Python拥有很多实现数据可视化的库,但是很少可以展示GIFs的动态视图。 这篇博客主要介绍怎样使用MoviePy库作为一个其他可视化库的通用插件。 Movi…

    2015-03-26
  • 铭记今天

        2016年10月19日,我做了一个很艰难的决定,选择了马哥24期网络全程班,就算是冲动也好,无论对错都要坚持下去。 从出来工作之后,一直做销售这块,虽然跟电脑有关,但是其中的艰苦只有自己明白。慢慢的年级上来了,手中没有什么技术,做人生活,总觉得少了什么,总觉得自己以后会被社会淘汰,心一天一天着急。在后选择了一个从来都没有涉及的运维…

    Linux干货 2016-10-19
  • linux查找命令locate、find

    本次博主来介绍下超实用的查找命令,没有查不到,只有做不到。 直接上干货:查找命令:locate和find,常用find,我们重点介绍find locate 通过查询系统上预建的文件索引数据库全盘查找所需文件,locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引的构建是在系统…

    2017-08-12
  • 马哥教育网络班20期+第五周博客作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ]# grep  "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; ]#…

    Linux干货 2016-07-12

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-07 18:36

    作业写得非常的好,6题的排版有一点小问题哈,16题脚本的缩进需要注意一下的,加油!