N21_第8周_网络

N21_第8周_网络

作业题目:

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

    网桥:(Bridge)也称桥接器,是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系结构网络系统的连接。

        网桥和交换机一样都是工作在OSI模型的第二层(数据链路层),可以看成是一个二层路由器(真正的路由器是工作在网络层,根据IP地址进行信包转发)。

        网桥可有效的将两个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,使本地通信限制在本网段内,并转发相应的信号至另一网段,网桥通常用于连接数量不多的、同一类型的网段。

    集线器:也称HUB,工作在OSI七层结构的第一层物理层,属于共享型设备,接收数据广播发出,在局域网内一般都是星型连接拓扑结构,每台工作站都连接到集线器上。

        由于集线器的带宽共享特性导致网络利用效率极低,一般在大中型的网络中不会使用到集线器。

    二层交换机:二层交换机工作在OSI模型的第2层(数据链路层),故而称为二层交换机。

            二层交换机技术的发展已经比较成熟,二层交换机属于数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自已内部的一个地址表中。

    三层交换机:三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这一目的服务的,能够做到一次路由,多次转发。

        对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。

    路由器:路由器跟集线器和交换机不同,是工作在OSI的第三层(网络层),根据IP进行寻址转发数据包。

        路由器是一种可以连接多个网络或网段的网络设备,能将不同网络或网段之间的数据信息进行转换,并为信息包转输分配最合适的路径,使它们之间能够进行数据传输,从而构成一个更大的网络。

        路由器具有最主要的两个功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背叛转发以及输出链路调试等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。

    区别:网桥:工作在数据链路层;

          集线器:工作在物理层,所有端口共享一个MAC地址,共享带宽

          二层交换机:工作在数据链路层,每个端口有自已的MAC地址,独享带宽

          三层交换机:工作在数据链路层,网络层,拥有部分路由功能

          路由器:工作在网络层

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

IP地址分类

A类用于大型网络(能容纳网络126个,主机1677214台)

B类用于中型网络(能容纳网络16384个,主机65534台)

C类用于小型网络(能容纳网络2097152个,主机254台)

D类用于组播(多目的地址的发送)

E类用于实验


子网掩码的表示形式

1,点分十进制,如255.255.255.0

2,IP地址后加'/'以及[1-32]的数字,如192.168.1.1/24

子网掩码的作用

1,屏蔽IP地址的一部分以区别网络标识和主机标识

2,将一个大的IP网络划分为若干小的子网络

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

OSI模型

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

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

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

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

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

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

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

TCP/IP模型

    应用层:对应OSI模型的应用层,会话层,表示层;

    传输层:对应OSI模型的传输层;

    网络互连层:对应OSI模型的网络层;

    网络接口层:对应OSI模型的数据链路层和物理层;

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

    1,使用ifconfig查看网卡配置信息,看主要使用的网卡名称

    2,到/etc/sysconfig/network-scripts/目录下查找对应的网卡配置文件

    3,主要配置项

        DEVICE(设备名称)TYPE(设备类型。端口为Ethernet) ONBOOT(系统启动时读取) BOOTPROTO=static(ip配置协议。当前为静态ip,可设置DHCP,) 

IPADDR(ip地址) NETMASK(子网掩码) GATEWAY(网关地址) DNS1(DNS服务器地址)

    4,重启网络服务 service network restart

    5,在CLI中输入ping baidu.com测试网络连接

    1474855597760970.jpg    

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
ip='172.16.250'
for i in {1..254}; do
  ping -c 5 w 5 $ip.$i & > /dev/null
  result=$?
  if [ $result -eq 0 ]; then
    echo -e "\033[32m $ip.$i \033[0m"
  else
    echo -e "\033[31m $ip.$i \033[0m"
fi
done

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

网卡配置文件`/etc/sysconfig/network-scripts/ifcfg-网卡名`
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=                #掩码
DNS1=                   #dns1地址
DNS2=                   #dns2地址

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

netstat -tan   #查看当前系统网络连接情况
        -t tcp协议相关连接
        -u udp协议相关连接
        -l 监听状态的连接
        -a 所有连接
        -n 以数字显示ip和端口

1474856900345401.jpg

State状态含义:
    CLOSED:无连接;
    LISTEN:服务器在等待进入呼叫;
    SYN_RECV:一个连接请求已经到达,等待确认;
    SYS_SENT:应用已经开始,打开一个连接;
    ESTABLISHED:正常数据传输状态
    FIN_WAIT1:应用说它已经完成;
    FIN_WAIT2:另一边已同意释放;
    ITMED_WAIT:等待所有分组死掉;
    CLOSING:两边同时尝试关闭;
    TIME_WAIT: 另一边已初始化一个释放;
    LAST_ACK: 等待所有分组死掉;

route

route [-nee]
        -n  以数字显示ip和端口
        -ee 显示详细信息
        
route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
    [root@itop ~]# route add -host 192.168.100.20 netmask 255.255.255.0 dev eth0
        
route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]
    [root@itop ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0

ss

[root@localhost ~]# ss -tnl    #与netstat类似
State      Recv-Q Send-Q                              Local Address:Port                                Peer Address:Port 
LISTEN     0      128                                            :::22                                            :::*     
LISTEN     0      128                                             *:22                                             *:*     
LISTEN     0      100                                           ::1:25                                            :::*     
LISTEN     0      100                                     127.0.0.1:25

ifconfig

ifconfig 设备名称 up|down
        up 启动指定网络设备/网卡。
        down 关闭指定网络设备/网卡。
ifconfig 设备名称 ip地址  #配置设备ip地址
ifconfig 设备名称 mtu <字节数>
        设置网卡的最大传输单元 (bytes)

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,请描述该过程。

#mount /dev/cdrom /mnt
#vim /etc/yum.repos.d/local.repo
[local]
name=local_repo
baseurl=file:///mnt 
enabled=1 
gpgcheck=0 
#yum clean all
#yum makecache

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

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

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

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

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

[root@localhost ~]# vi 201609261052.sh
#!/bin/bash
declare -i s=0
declare -i k=0
for i in `ls /etc/rc.d/rc3.d | grep "^S"`; do
  echo "$i start"
  let s++
done 
for i in `ls /etc/rc.d/rc3.d | grep "^K"`; do
  echo "$i stop"
  let k++
done
echo "K开头的文件有$k个! "
echo "S开头的文件有$s个!"
[root@localhost ~]# sh 201609261052.sh 
S08ip6tables start
S08iptables start
S10network start
S11auditd start
S12rsyslog start
S22messagebus start
S25netfs start
S26udev-post start
S55sshd start
S80postfix start
S90crond start
S99local start
K10saslauthd stop
K50netconsole stop
K87restorecond stop
K89rdisc stop
K开头的文件有4个! 
S开头的文件有12个!

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

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

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

[root@localhost ~]# vi 201609261101.sh
#!/bin/bash
declare -i idsum=0
if [ $# -le 0 ]; then
  echo "Usage:bash .sh user1 user2 ..."
  exit 1
fi
for i in $*; do
  if id $i &> /dev/null; then
    idnum=`grep "$i" /etc/passwd | cut -d: -f3`
    idsum+=$idnum
  else
    echo "$i don't exist"
  fi
  done
echo "用户ID之和为$idsum"
[root@localhost ~]# sh 201609261101.sh user1
user1 don't exist
用户ID之和为0
[root@localhost ~]# sh 201609261101.sh visitor16
用户ID之和为518

14、写一个脚本

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

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

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

[root@localhost ~]# vi 201609261112.sh
#!/bin/bash
declare -i D=0
declare -i F=0
if [ $# -le 0 ];then
  echo "Usage:bash .sh directory|file  ..."
  exit 1
fi
for d in $@
do
  for i in `ls $d`
  do
    if [ ! -e $i ]; then
        echo "$i No such file!"
    continue
    elif [ -d $i ]; then
        echo "$i is type directory!"
        let D++
    elif [ -f $i ]; then
        echo "$i is type file!"
        let F++
    else
        echo "$i is Other type!"
    fi
  done
done
echo "Directory count is $D"
echo "File count is $F"
[root@localhost ~]# sh 201609261112.sh /home
abc No such file!
bcd No such file!
cde No such file!
test1.txt No such file!
test2.txt No such file!
visitor1 No such file!
visitor10 No such file!
visitor11 No such file!
visitor12 No such file!
visitor13 No such file!
visitor14 No such file!
visitor15 No such file!
visitor16 No such file!
visitor17 No such file!
visitor18 No such file!

15、写一个脚本

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

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

[root@localhost ~]# vi 201609261117.sh
#!/bin/bash
#
if [ $# -lt 1 ];then
  echo "Userage:bash.sh user1 user2 ..."
  exit 1
fi
for i in $*;do
  if id $i &> /dev/null;then
    idnum=`grep "$i" /etc/passwd | cut -d: -f3`
    if [ $idnum -gt 500 ];then
       echo "$i user is ordinary user."
    else
         echo "$i is system user."
    fi
  else
    echo "$i don't exist"
  fi
done
[root@localhost ~]# sh 201609261117.sh visitor16
visitor16 user is ordinary user.
[root@localhost ~]# sh 201609261117.sh root
root is system user.

16、写一个脚本

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

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

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

[root@localhost ~]# vi 201609261121addusers.sh
#!/bin/bash
for i in {1..10}; do
    if id user$i &> /dev/null ;then
        echo "user$i exists."
        continue 3
    else
        useradd user$i
        if [ $? -eq 0 ]; then
            echo "user$i" | passwd --stdin user$i &> /dev/null
            echo "Add user$i finished."
        let num++
        fi
    fi
done
echo "Add $num users."
[root@localhost ~]# sh 201609261121addusers.sh 
Add user1 finished.
Add user2 finished.
Add user3 finished.
Add user4 finished.
Add user5 finished.
Add user6 finished.
Add user7 finished.
Add user8 finished.
Add user9 finished.
Add user10 finished.
Add 10 users.

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

[root@localhost ~]# vi 201609261124ping.sh
#!/bin/bash
#
ip='172.16.250'
for i in {1..254};do
  ping -c 5 -w 5 $ip.$i &> /dev/null
  result=$?
  if [ $result -eq 0 ];then
    echo "$ip.$i"
  fi
done

18、打印九九乘法表;

[root@localhost ~]# vi 201609261125_9x9.sh
#!/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
}
[root@localhost ~]# sh 201609261125_9x9.sh 
1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=12  4*4=16
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

原创文章,作者:365,如若转载,请注明出处:/48878

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-24 22:40

    在网络部分再深入点,比如怎么进行合理的子网划分相关的知识就更好了

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:guoqibee.com  万达娱乐招商QQ  万达注册  万达主管QQ  万达招商QQ  guoqibee.com  万达注册  万达主管QQ  万达娱乐主管  万达娱乐开户