N22第八周作业

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

网桥从一个局域网接收MAC帧,拆封、校对、校验之后,按另一个局域网的格式重新组装,发往它的物理层。由于网桥是链路层设备,因此不处理数据链路层以上层次协议所加的报头。
  集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层。
 二层交换机指的就是传统的工作在OSI参考模型的第二层–数据链路层上交换机,主要应用于小型的局域网中,主要功能包括物理编址、错误校验、帧序列以及流控。
 三层交换机主是二层交换机与路由器的合体,支持物理层,数据链路层及网络层协议。三层交换机支持路由功能、支持网络层的很多协议等,支持多VLAN的设置与IP地址配置!支持安全功能等
 路由器是连接因特网中各局域网、广域网的设备,路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。

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

A 类地址:(0-127)一个A 类IP地址仅使用第一个8位位组表示网络地址且第一组8位数中第1位必须为0,即0.0.0.0到127.0.0.0,也即是
00000000.00000000.00000000.00000000到01111111.00000000.00000000.00000000

B 类地址::(128-191)一个B 类IP地址仅使用前两个8位位组表示网络地址且第一组8位数中前两位必须为10,即128.1.0.0到191.254.0.0,也即是
10000000.00000001.00000000.00000000到10111111.11111110.00000000.00000000

C 类地址::(192-223)一个C 类IP地址仅使用前三个8位位组表示网络地址且第一组8位数中前三位必须为110,即192.0.1.0 至223.255.254.0,也即是
11000000.00000000.00000000.00000000到11011111.00000000.11111110.00000000

D 类地址::(224-239)D 类地址用于在IP网络中的组播( multicasting ,又称为多目广播)。D类地址第一组8位数中前四位必须为1110,即224.0.0.0到239. 255. 255.254,也即是
11100000.00000000.00000000.00000000到11101111.11111111.11111111.11111110

E 类地址:(240-255)保留作研究之用。因此Internet上没有可用的E类地址。E类地址第一组8位数中前四位必须为1111,因此有效的地址范围从240.0.0.0 至255.255.255.255
11110000.00000000.00000000.00000000到11111111.11111111.11111111.11111110

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

OSI七层模型:

应用层:提供应用程序之间通信,

表示层:处理数据格式、数据加密

会话层:建立,维护,管理会话连接涉及操作系统和网络接口和各种数据

传输层:建立主机端到端连接,涉及物理设备:四层交换机

网络层:寻址和路由选择涉及物理设备:路由器

数据链路层:提供介质访问,链路管理,将数据分帧并处理流控制。网卡,网桥,交换机

物理层:比特流传输,将数据转换为可通过物理介质传送的电子信号物理设备双绞线、同轴电缆,集线器

TCP/IP4层模型:

网络访问层:功能包括IP地址与物理硬件地址的映射,以及将IP分组封装成帧。基于不同硬件类型的网络接口,定义了和物理介质的连接。相当于OSI参考模型的物理层和数据链路层。

网际层:处理来自传输层的分组发送请求;处理输入数据报;处理ICMP报文,即处理网络的路由选择、流量控制和拥塞控制等问题。在功能上类似于ISO/OSI参考模型中的网络层。

传输层:主要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息流,提供端到端的控制,通过滑动窗口机制提供流控制,通过序列号和确认机制来保证可靠性。

应用层:包括所有的高层协议,与OSI的应用层协议相差不大,包括HTTP、Telnet、FTP、SMTP、POP3、DNS等。

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

A、使用ifconfig -a命令查看是否有发现网卡,如果未发现网卡,检查网卡驱动是否正常

B、编辑/etc/sysconfig/network-script/目录下网卡对应的配置文件,如ifcfg-eno16777736,配置启动必要的参数,如:
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.150 
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=192.168.1.1
其他参数根据需要修改,然后保存。

C、/etc/init.d/network restart重启网络,检查网络是否连通。

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

A、ifconfig eno-16777736 IP/mask
B、ip addr add ip dev eno-16777736
C、使用net-tools工具中nmtui图形化工具

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.详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;

网络接口配置文件:/etc/sysconfig/network-scripts/ifcfg-eno16777736
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地址

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

A、ip addr add IP/MASK dev eno16777736:1
B、cd /etc/sysconfig/network-scripts/
cp ifcfg-eno16777736{,:1}
vim ifcfg-eno16777736:1

DEVICE=eno16777736:1
IPADDR=IP
PREFIX=24

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

ifconfig:
ifconfig -a     查看所有网络接口信息
ifconfig interface     查看指定网络接口信息
ifconfig interface up|download     启用或停用指定网络接口
ifconfig interface ip/mask [up]     设定指定网络接口IP地址和掩码

route:
route -n    查看所有路由信息
route add    添加路由
    route add [-net|-host] target [netmask Nm] [gw Gw][[dev] If]
    route add -net 目标网段IP/MASK gw 网关IP dev 网卡
    route add -host 目的IP gw 网关IP dev 网卡
route del删除路由
    route del [-net|-host] target [netmask ] [gw Gw][dev] 
    route del -net 目标网段IP MASK
    route del -host 目的IP
    
netstat:
-t    tcp协议相关的连接
-u    udp协议相碰的连接
-w    raw socker相关的连接
-l    处于监听状态的连接
-a    所有的连接
-n    以数字显示ip和端口
-e    扩展格式
-p    显示相关进程及PID

ip:
ip link
    ip link set DEVICE IFACE up/down     激活或禁用指定接口
    ip link show up/dev     显示所有激活状态/指定接口信息
ip addr
    ip addr { add | del } IFADDR dev STRING     增加或删除IP地址
    ip addr show     显示网络接口信息
ip route
    ip route { add | del | show}     添加、删除或显示路由
    
ss:
-t    tcp协议相关的连接
-u    udp协议相碰的连接
-w    raw socker相关的连接
-l    处于监听状态的连接
-a    所有的连接
-n    以数字显示ip和端口
-e    扩展格式
-p    显示相关进程及PID
-x    unix sock相关
-m    内存用量
-o    计时器信息

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

用rpm命令管理程序包

安装    rpm -ivh     PACKAGE_FILE    安装包
升级    rpm -Uvh    PACKAGE_FILE    升级包,无则安装此包
          rpm -Fvh    PACKAGE_FILE    升级包,无则无变化
查询    rpm -qa | grep FileName    查询已安装的某个软件
          rpm -qf     FILE    查询文件出处
          rpm -qc    PACKAGE_FILE    查询包的配置文件
          rpm -ql    PACKAGE_FILE    查询包的所有文件
          rpm -qd    PACKAGE_FILE    查询包的信息
          rpm -qpi   PACKAGE_FILE    安装之前查询包信息
          rpm -qpl    PACKAGE_FILE    安装之前查询包的所有文件
卸载    rpm -e    PACKAGE_FILE    卸载包
验证    rpm -V    PACKAGE_FIL    E验证包
          rpm --import     PUBKEY    导入公钥
维护    rpm initdb新建数据库
           rpm rebuilddb重建数据库
           
           
yum:
查看
    yum info PACKAGE_FILE            查看包信息
    yum historylist                        查看yum事务历史
    yum deplistpackage1                查看包依赖
显示
    yum repolist all    显示yum仓库列表
    yum list installed    显示已安装列表
    yum list available    显示可用包
    yum list updates    显示可升级的包
    yum list anaconda    显示系统安装的包
安装 
    yum install PACKAGE_FILE    安装包
    yum localinstall rpmfile1    安装本地包
升级
    yum update PACKAGE_FILE    升级包
    yum downgrade PACKAGE_FILE    降级包
    yum check-update    检查更新
卸载
     yum remove PACKAGE_FILE    卸载包
    yum providesfeature1    查看指定的特性
    yum clean    清理本地缓存
    yum search string1    搜索字符串
    yum info PACKAGE_FILE    查看包信息
包组管理
    yum groupinstall group1 [group2] [...]    安装包组
    yum groupupdate group1 [group2] [...]    升级包组
    yum grouplist [hidden] [groupwildcard][...]    显示包组
    yum groupremove group1 [group2] [...]    卸载包组
    yum groupinfo group1 [...]     查看包组信息

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

挂载光盘至某目录:
mount -r /dev/cdrom /mnt/

创建配置文件:
vim /etc/yum.repos.d/CentOS-DVD.repo
[CentOS6.6]
name=CentOS cdrom    #仓库的名字
baseurl=file:///mnt    #repodata目录的仓库访问路径
gpgchecked=0    #使用前是否检验包
enabled=1    #是否启用此仓库

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

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

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

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

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

#!/bin/bash
declare -i k=0,s=0
for i in $(ls /etc/rc.d/rc3.d/K* | grep -o "[^/]*$");do
    echo "$i stop"
    let k++
done
for j in $(ls /etc/rc.d/rc3.d/S* | grep -o "[^/]*$");do
    echo "$j start"
    let s++
done
echo "S开头的文件有$s个,K开头的文件有$k个!"

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

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

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

#!/bin/bash
declare -i sum
if [ $# -lt 1 ];then
    echo "At least one username"
    exit 1
else
    for name in $*;do
        if id $name &> /dev/null;then
            let sum+=$(grep "^\<$name\>" /etc/passwd | cut -d: -f3)
        fi
    done
    echo "id sum is $sum"
fi

14.写一个脚本 

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

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

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

#!/bin/bash
if [ $# -lt 1 ];then
    echo "At  least a Directory"
    exit 1
fi
ls -l "$@" | grep ^d | awk '{print $NF}' > directory
ls -l "$@" | grep ^- | awk '{print $NF}' > files
ls -l "$@"
echo "Total $(wc -l directory) "
echo "Total $(wc -l files) "

15.写一个脚本    

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

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

#!/bin/bash
if [ $# -lt 1 ];then
    echo "At least one username"
    exit 1
fi
if id $1 &> /dev/null;then
    uid=$(grep "^\<$1\>" /etc/passwd | cut -d: -f3)
    if [ $uid -ge 500 ];then
        echo "$1 is regular user"
else
    echo "$1 is system user"
fi
else
    echo "$1 is not exists"
fi

16.写一个脚本     

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

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

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

#!/bin/bash
declare -i num
for((i=1;i<11;i++)){
    if ! id user$i &> /dev/null;then
        useradd user$i
        echo user$i:user$i | chpasswd
        let num++
    fi
}
echo "Add $num users!"

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

#!/bin/bash
net="172.16.250."
for((i=20;i<=100;i++)){
    ping -c 1 $net$i &> /dev/null
    if [ $? -eq 0 ];then
    echo $net$i
    fi
}

18.打印九九乘法表;

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

原创文章,作者:N22-无锡-沉默,如若转载,请注明出处:http://www.178linux.com/52395

(0)
N22-无锡-沉默N22-无锡-沉默
上一篇 2016-12-26
下一篇 2016-12-26

相关推荐

  • NFS

    NFS初探 NFS概述 NFS工作流程 NFS Server端设置 NFS工具与命令 NFS配置实例 NFS概述 NFS是什么? NFS,network file system(网络文件系统)的缩写,是一种实现文件共享的实现方式。 NFS的功能是什么 NFS基于RPC协议,实现远程系统调用,共享文件资源。 NFS工作流程 RPC,Remote Pr…

    Linux干货 2016-04-28
  • 实现CA和证书申请,

    接下来讲的是在centos7.3和centos6.8中实现CA和证书申请,centos7.3作为主机,centos6.8作为客户端 首先你授权客户端CA证书,必须本身主机也具有CA,自己证明自己,先CA自签证书,然后在7.3创建私钥 为了方便以后的操作CD进入 cd /etc/pki/CA   生成自签名证书 -new:  生成…

    2017-04-11
  • Linux第八周小结

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态 在线的主机使用绿色显示 不在线的主使用红色显示 #!/bin/bash # for i in {1..254};do if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then echo -e…

    Linux干货 2017-08-20
  • VIM编辑器用法及练习

    VIM编辑器用法及练习 什么是vim? vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。 Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi IMproved。现…

    Linux干货 2016-10-30
  • 配置Nginx作为反向代理服务器

    配置Nginx作为反向代理服务器      一、nginx作为反向代理的工作模型: 1、nginx作为反向代理的工作模型       nginx工作在应用层,其能理解并可以提取出http请求报文中的首部信息中的请求方法、url、http协议版本等信息。   &…

    Linux干货 2016-10-29
  • parted使用说明

    一.为什么使用parted命令     传统的MBR(Master Boot Record)分区方式,有一个局限:无法支持超过2TB的硬盘分区(单个分区超过2TB)。     GPT(GUID Partition Table)的分区表很好的解决了这个问题,但在Linux系统中,传…

    Linux干货 2015-04-13