码迷,mamicode.com
首页 > 其他好文 > 详细

第八周

时间:2016-10-09 14:40:52      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:第八周

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

    网桥:实现二层的转发,端口较少。替代品为交换机

    集线器:二层数据的转发但由于是广播发送故一台发送数据其他的不能发送可以接收没有安全性,已逐渐淘汰,替代品为交换机

    二层交换机-也称多端口网桥。二层的快速转发依据MAC地址转发数据。是网桥和集线器的升级产品。通常用于网络的接入层

    三层交换机:路由器和交换机的集合,即可用于二层的快速转发也可实现路由功能。通常布置在网络汇聚层和核心层

    路由器:专门用于路由实现跨网络的数据转发。通常用于网络出口即连接ISP的部分

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

    Ip地址按照使用的协议分为IPv6和IPv4

    IPv4可分为 :

    A类大型网络  地址范围为:0-127 掩码为255.0.0.0

    B类中型网络 地址范围为:128-191 掩码为255.255.0.0

    C类小型网络 地址范围为192-223 掩码为255.255.255.0

    D类组播网络 地址范围为224-239 

     E类 保留 地址范围为240-255

    掩码用来识别网络的地址范围,转换为二进制按位对应,网络地址对应为1,主机为0

    掩码主要是将大网络细分为多个小网络,

    掩码有两种表示方法:第一种使用十进制 即192.168.1.0 255.255.255.0 另一种为使用数值表示则为192.168.1.0/24

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

OSI为七层

        从低到高位:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

TCP/IP为四层

        从低到高为:网络接口层、网络层、传输层、应用层

物理层为具体的电子器件,如板卡,供电设备等

数据链路层的设备为集线器、交换机、网桥

网络层的设备为路由器和三层交换机

应用层为具体的应用如HTTP DNS E-MAIL

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

    第一步:申请一条线路或与别人共享同一网络

    第二步:编辑配置文件,指定ip地址,DNS等信息

            vim /etc/sysconfig/network-scripts/ifcfg-en0

    增加一下字段

    IPADDR=192.168.1.0

    NETMASK=255.255.255.0

    ONBOOT=yes

    第三步:配置DNS服务器

    vim /etc/resolve.conf

    nameserver 8.8.8.8

    第四步:重启网络服务

            service network restart

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

命令行工具 

        ifconfig 配置网络接口地址

        ip 配置和管理接口地址

        route 配置和管理路由

        hostname 配置主机名

        nmcli  centos 7下的配置网络地址

图形化工具nmtui  setup

        使用命令后将打开图形界面按照界面提示操作即可

配置文件 

    /etc/sysconfig/network-scripts/ifcfg-接口名  接口地址配置位置

    /etc/resolv.conf  域名解析的配置文件

    /etc/sysconfig/network  主机名信息

     /etc/udev/rules.d/70-persistent-net.rules  udev设备的配置信息

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

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

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

    #!/bin/bash

    #

    iphost=172.16.250

    for ((i=1;i<254;i++));do

    ping -c 2 -t 1  $iphost.$i &> /dev/null

     [ $? = 0 ] && echo  -e "the host \033[31m$iphost.$i \033[0m is online" || echo -e "the host \033[32m$iphost.$i \033[0m is offline"

    done    

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

           DEVICE= 此配置文件应用到的设备;

           HWADDR= 对应的设备的MAC地址;

           BOOTPROTO=[dhcp|static|none|bootp]   激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;

           NM_CONTROLLED=[yes|no]    NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;

           ONBOOT=[yes|no]在系统引导时是否激活此设备;

           TYPE=接口类型;常见有的Ethernet, Bridge;

           UUID=设备的惟一标识;

           IPADDR=指明IP地址;

           NETMASK=子网掩码;

           GATEWAY= 默认网关;

           DNS1=第一个DNS服务器指向;(优先级高)

           DNS2=第二个DNS服务器指向;

           USERCTL=[yes|no] 普通用户是否可控制此设备;

           PEERDNS=[yes|no]  如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;

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

1)、ifconfig eth0:0  192.168.0.1/24 up

2)、ip addr add  172.16.100.1/24 dev eth0 label eth0:0

3)、编辑配置文件vi /ec/sysconfig/network-scripts/ifcfg-eth0:0

                        DEVICE="eth0:0"  必须改名

                        BOOTPROTO="static"    //必须配置为

                        IPADDR=192.168.1.1

                        NETMASK=255.255.255.0

                        UUID一定要去掉

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

ifconfig  (配置网络接口地址,立即生效)

    ifconfig   (没有参数时为查看接口信息)

    ifconfig eth0 172.16.100.1/16

    ifconfig  eth0 172.16.100.1 netmask 255.255.0.0

            以上两条接口配置为等效命令,

    特殊用法:ifconfig eth0  - promisc  指定接口为混杂模式,则可用网络的监听。会收到该配置接口所在的或流经该网络的所有报文

ip(强大的网络管理命令)

    常用的子命令

    ip link  管理设备的

    ip link show  显示所有的设备

    ip link show dev eth0  显示指定的设备

    ip link show up  显示处于启用状态的接口

            ip link set  dev eth0 down 使(eth0)指定设备down  恢复则使用ip link set dev eth0 up

    ip addr  地址的管理

    ip addr add 添加地址 (如果已经有地址则会增加一个辅助地址)

    ip addr del 删除地址

    ip addr add 172.16.1.1/24 dev eth0

    ip addr del 172.16.1.1/24 dev eth0

    ip addr show 显示地址

    ip addr flush 清空地址

           ip addr flush dev eth1

    ip route 路由的管理

    ip route show 显示路由表

    ip route add 添加路由 (主机路由的添加不能加掩码)

    ip route del 删除路由

    ip route flush 清空路由

                             ip route add 10.100.0.0/16 via 10.100.1.0  dev eth0 

                             ip route del 10.100.0.0/16 via 10.100.1.0  dev eth0 

                                    添加默认网关  ip  route default via 172.16.0.1      

route  (配置路由)

    查看本机的路由 route -n

    route有两个子命令添加add、删除del;每个子命令有主机路由host、网络路由net两种

    命令格式 : route [add|del] [-host|-net]  想要到达的网络地址 掩码 (主机路由默认32可不写)  gw 经由的网关  dev 出去的接口

    route add -host 192.168.1.100 gw 192.168.1.254 dev etho   // 等效于下面的一条,就是掩码配置方式的不同

    route add -net 192.168.1.0/24 gw 192.168.1.254 dev etho

    route add -net 192.168.1.0/24 netmask 255.255.255.0 gw 192.168.1.254 dev etho

    扩展:默认路由的配置

     route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.254

     route add default gw 172.16.0.254

查看网络状态

    netstat(网络)

    netstat -tnl   显示TCP协议的处于监听状态的网络连接

    nestat -tan 显示所有TCP协议的网络连接

    netstat -uan  显示所有UDP协议的网络连接

    netstat -rn  等效于 route -n   显示路由表 

    netstat -i 显示接口的信息

    netstat -Ieth0 显示制定的接口的信息 这个为显示eth0 接口的信息

ss(网络繁忙时使用)
    ss -tnl   显示TCP协议的处于监听状态的网络连接
    ss -tan 显示所有TCP协议的网络连接
    ss -uan  显示所有UDP协议的网络连接

nmcli(centos7专门用来管理网络的命令,ifconfig 在centos 7中是默认不能使用的)

    nmcli device 显示和管理网络接口

    nmcli device status

    nmbli device show eth0

    nmcli connetction  启动、停止和管理网络设备

       nmcli connection down eth0

    nmcli connection up eth0

    nmcli connection add eth0 ipv4.address 172.16.100.1/24 配置地址

    nmcli connection add eth0 ipv4.gateway 172.16.100.254/24 配置地址

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

rpm 不能自动解决数据包之间的依赖关系需要手动解决

安装软件包

    rpm -i  选项  包名

    rpm -ivh openssh  安装软件包并显示安装进度

    rpm -ivh --oldpackage openssh  安装旧版本的包

    并显示安装进度 ,这通常是由于新的不兼容所以回退
rpm -ivh --nodeps openssh 由于依赖关系的存在,在没有将依赖关系的数据包安装上区不能安装所以加选项 不检查先安装

升级软件包

    rpm - U | -F同样都能升级包 但-F如果没有旧的就不升级,而 -U 有就升级没有就安装

    rpm -u bind

删除软件包

    rpm -e 包名

    rpm -e openssh

查询包

    rpm  -qf /usr/bin/ls  查看LS由那个数据包生成

    rpm -ql openssh 查询包生成的文件路径

    rpm -qc openssh 查询包生成的配置文件路径

    rpm -qi openssh 查询包的信息

数据库维护

       rpm {--initdb|--rebuilddb}

           initdb: 初始化

               如果事先不存在数据库,则新建之;否则,不执行任何操作;

           rebuilddb:重建

               无论当前存在与否,直接重新创建数据库;

yum(centos 系列的前端工具能自动解决数据包之间的依赖关系)


安装软件包   yum install openssh
升级软件包   yum update openssh
删除软件包   yum remove openssh
查询包  
yum lish ssh

        yum search ssh
数据库维护
    yum clean all
    yum makecache
组包的管理
    组包的安装
    yum groupinstall "Development Tools"
    组包的升级

    yum groupupdate "Development Tools"
    组包的查询

    yum grouplist "Development Tools"
    组包的移除

    yum groupremove "Development Tools"

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

    第一步:挂载光盘到系统目录下

            mount -r s /dev/cdrom /mydata/my_yum

    第二步创建yum源

    [MyYum]

    name=my_yum

    baseurl=file:///mydata/my_yum

    gpgcheck=0

    enable=1

    第三步重建YUM缓存记录

    yum clean all

    yum makecache

    第四布验证:

            yum repolist all

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

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

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

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

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

    
#!/bin/bash

    #

    for name in `ls /tmp/rc3` ; do

       if [ "${name:0:1}" == "S" ] ; then

                echo "$name start"

       elif [ "${name:0:1}" == "K" ] ; then

                  echo "$name stop "

          fi

    done

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

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

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

    #!/bin/bash

    #

    declare -i id_sum=0

    [ $# le 1 ] && echo "the argument must more than one " && exit 10

    for i in $@;do

     id $i &> /dev/null

    if [ $? = 0 ];then

     let id_sum += $(id $i -u)

    else

      echo "the user $i is not existed"

    fi

    done

    echo "the user id sum is $id_sum"

14、写一个脚本

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

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

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

#!/bin/bash

#


test_file () {

         if [ -L $dir ]; then

                            echo -e "$dir \t is Symbolic file"

           elif [ -f $dir ]; then

                            echo -e "$dir \t is regular file."

             elif [ -b $dir ]; then

        echo -e   "$dir \t is Block file"

             elif [ -p $dir ]; then

        echo -e "$dir \t is Pipe file"

            elif [ -S $dir ]; then

          echo -e "$dir \t is Socket file"

elif [ -d $dir ];then

echo -e "$dir \t is Dirctory file"

  else
                            echo -e "$dir \t is unknown."
                        fi
}


[ $# -lt 1  ]    &&  echo "The arguments must more than 1 " &&  exit 1


for dir  in $* ; do

             if [ ! -e $dir ]; then

                     echo "$dir is file not exist."

                       exit 8

             fi

echo "this is the $dir"


if [ -d $dir ];then

      for dir  in `ls $dir`  ;do

             test_file $dir

     done

else

       test_file

fi

done


15、写一个脚本

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

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

    #!/bin/bash

    #

    [ $# -ne 1 ]   && echo "the argument must only one "   && exit 10

      id $1  &> /dev/null

     [ $? -ne 0 ]  && echo "the user $1 is not existed"  && exit 10

    if [ `id $1 -u ` -ge 500 ];then

       echo -e "the user \t $1 \t is common user"

    else

      echo -e "the user \t $1 \t is system regist user"

    fi

   16、写一个脚本

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

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

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

    #!/bin/bash

    #

    declare -i user_num=0

    for ((i=1;i<10;i++));do

    id user$i &> /dev/null

    if [ $? = 0 ];then

      echo "the user user$i is existed"

    else

      useradd user$i & > /dev/null

     echo "user$i" | passwd --stdin user$i

     let user_num++

    fi

    done

    echo "the user add number is $user_num"

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

    #!/bin/bash

    #

    iphost=172.16.250

    for ((i=20;i<100;i++));do

    ping -c 2 -w 1 $iphost.$i &> /dev/null

    if [ $? = 0];then

    echo "the host $iphost is online"

    fi

    18、打印九九乘法表;

    [root@localhost tmp]# vi ss.sh

     #!/bin/bash

    #

    

    for ((i=1;i<10;i++));do

    for ((j=1;j<i+1;j++));do

      echo -e -n "${i}*${j}=$[ ${i}*${j} ]

            done

    echo

    done

第八周

标签:第八周

原文地址:http://8663794.blog.51cto.com/8653794/1859688

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!