人志建,则无敌—网络基本知识加简单脚本练习

马哥21期网络班-8周博客作业

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

网桥:网桥就是把2个不同的网段桥接起来;可隔离冲突域。

集线器:集线器就是把多根以太网线或光纤集合连接在同一段物理介质下的装置;工作在物理层;不能隔离冲突域。

二层交换机:工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。

三层交换机:三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。三层交换技术就是二层交换技术+三层转发技术。传统交换技术是在OSI网络标准模型第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。

路由器:路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。

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

A类: 1.0.0.1-126.255.255.254 (10.X.X.X/8是私网地址;127.0.0.1是本地回环地址)
网络数:126
主机数:2^24-2
掩码:255.0.0.0

B类: 128.0.0.1-191.255.255.254(172.16.X.X/16--172.31.X.X/16是私网地址;)
网络数:2^14
主机数:2^16-2
掩码:255.255.0.0

C类:192.168.0.1-223.255.255.254(192.168.X.X/24是私网地址;)
网络数:2^21
主机数:2^8-2
掩码:255.255.255.0

D类:224.0.0.1-239.255.255.254(一般用于做组播)

E类:240-255 (科学研究)

子网掩码:子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地 址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分

    表示形式:
    	    1、
               32位二进制数字,每8位二进制数字换算成十进制,以"."分隔,形如:255.255.255.0
            2、
               IP地址后加上掩码位数,形如:192.168.0.104/24
     
    作用:划分子网
              将某个IP地址划分成网络地址和主机地址两部分,与IP地址相与可计算出的相应IP的网络位

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

网络分层模型有:
    (1)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网络,请描述详细的步骤。(手动指定的方式)

(1)通过“有线”或“无线”接入互联网络;
    (2)配置网卡信息(具体配置信息查看第5题);
    (3)重新启动网络服务;

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

一、编辑网卡配置文档设置:
(1)编辑 /etc/sysconfig/network-network-scripts/ifcfg-eXXX;可设置DHCP或静态,也可在此文档设置DNS
        如:DEVICE=eth0
            HWADDR=00:0C:29:D2:C3:D4
            TYPE=Ethernet
            UUID=0a105f68-0664-4150-8130-bdc046c7f04e
            ONBOOT=yes
            NM_CONTROLLED=yes
            BOOTPROTO=static
            IPADDR=192.168.183.128
            NETMASK=255.255.255.0
            GATEWAY=192.168.183.2
            DNS1=114.114.114.114
            DNS2=8.8.8.8

    (2)重启网络服务
        service network restart (centos7使用:systemctl restart network.service)
        
二、通过图形界面:
                   cenos6:setup 
                   centos7:system-config-network-tui
                   
三、通过ifconfig命令:
            ifconfig eth0 [up|down]      #开启网卡
            ifconfig eth0 192.168.182.130/24        #配置ip地址和掩码
            ifconfig eth0 192.168.183.130 netmask 255.255.255.0     #配置ip地址和掩码(同上条一样)

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

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

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

#!/bin/bash
net='172.16.250.'
for i in `seq 1 254`; do
        ping -c 1 -w 1 ${net}$i &> /dev/null        
        if [ $? -eq 0 ]; then
                echo -e "\033[32m"${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[32m"Up hosts: $uphosts."\033[0m"
 echo -e "\033[31m"Down hosts: $downhosts."\033[0m"

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

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 interface{0..+} ip netmask , ip addr add ip/mask dev interface{0..+}
    如:ifconfig命令:
        # ifconfig eth0:0 192.168.0.11/24
        ip命令:
        # ip addr add 192.168.0.11/24 dev eth0
        # ip addr add 192.168.0.11/24 dev eth0 label 'eth0:0'

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
  
  SS命令查看:
  [root@caicai ~]# ss -tunl
Netid  State      Recv-Q Send-Q                 Local Address:Port                   Peer Address:Port 
udp    UNCONN     0      0                                  *:68                                *:*     
udp    UNCONN     0      0                          127.0.0.1:717                               *:*     
udp    UNCONN     0      0                                  *:47958                             *:*     
udp    UNCONN     0      0                                  *:111                               *:* 

netstat命令:
[root@caicai ~]# netstat -tunl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:41945               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 :::35732                    :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN

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 查看指定程序的信息

注意:  1.不要对内核做升级操作:linux支持多内核版本并存,因此,直接安装新版本内核    
        2.如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一配置文件不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

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

# mount -r -t iso9660 /dev/cdrom /media/cdrom    挂载光盘

# vim /etc/yum.repos.d/CentOS-Cdrom.repo     创建编辑yum仓库
    [cdrom]             
    name=CentOS-Cdrom
    baseurl=file:///media/cdrom 
    enabled=1
    gpgcheck=0

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

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

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

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

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

#!/bin/bash
k=`ls /etc/rc.d/rc3.d/ | grep -i "^k"`
s=`ls /etc/rc.d/rc3.d/ | grep -i "^s"`
for i in `echo $k`; do
        echo "$i stop"
        let kfile++
done
for i in `echo $s`; do
        echo "$i start"
        let sfile++
done
echo "K file:$kfile"
echo "S file:$sfile"

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

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

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

#!/bin/bash
for i in $@; do
        id=`cat /etc/passwd | grep "^$i" | cut -d: -f3`        
        let idadd+=$id
done
echo "Enter username ID add:$idadd"

14、写一个脚本

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

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

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

#!/bin/bash
for i in $*; do
        for e in `ls $i`; do
                if [ -d $i/$e ];then
                        let dir+=1
                elif [ -f $i/$e ]; then
                        let file+=1
                fi  
        done
  done
  echo "dir have:$dir"
  echo "textfile have:$file"

15、写一个脚本

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

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

#!/bin/bash
declare -i usersid=`grep --color=auto "^$1" /etc/passwd |cut -d: -f3`
if [ ${usersid} -gt 500 ];then
    echo "the user $1 is common user!"
fi

16、写一个脚本

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

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

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

#!/bin/bashfor i in {1..10}; do
        if id user$i &> /dev/null; then
                echo "have this only user."
        else
                useradd user$i &> /dev/null        
                echo "user$i" | passwd --stdin &> /dev/null        
                let user+=1
        fi  doneecho "add user:$user"

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

#!/bin/bash
      #
      declare -i i=20
      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、打印九九乘法表;

for ((i=1;i<=9;i++)); do
        for ((j=1;j<=$i;j++)); do
                echo -n -e "${i}x${j}=$[ $i*$j ]\t"
        done
        echo

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

(0)
N21_志建N21_志建
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • Linux基础之RAID

    一.RAID介绍 RAID刚开始出现的时候叫做廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),但在当时磁盘并非像现在这么便宜,反而这种组合方式使得代价非常昂贵,所以后来改名为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本的思想就是组合组合多个便宜的,性能相对较低…

    Linux干货 2016-11-08
  • 02day-Linux基础入门及简单的命令了解

    Linux哲学思想: 1、一切皆文件;          把几乎所有资源,包括硬件设备都组织为文件格式; 2、由众多单一目的小程序组成;一个程序只实现一个功能,而且要做好;          组合小程…

    Linux干货 2016-06-29
  • 网络概念简述和Linux网络管理命令

    网络概念简述和Linux网络管理命令 1. 网络分类 我们通常接触到的网络通常是广域网、局域网 局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。 广域网(Wide Area Network,WAN):网络跨越国界、洲界,甚至全球范围。  因特网(Internet)是世界范围内最大的广域网。 2. …

    Linux干货 2016-04-19
  • class9 bash编程基础(一)

    一、编程基础 程序:指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令; 编程语言: 低级:汇编 高级: 编译:高级语言–> 编译器–> 目标代码   &n…

    Linux干货 2016-08-15
  • iptables

    iptables简介   iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。 iptables基础   规则(rules)其实就是网络管理员预定义的条…

    Linux干货 2017-02-16
  • Python函数式编程指南(四):生成器

    生成器是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器的途径。 这是函数式编程指南的最后一篇,似乎拖了一个星期才写好,嗯…… 转载请注明原作者和原文地址:) 4. 生成器(generator) 4.1. 生成器简介 首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代…

    Linux干货 2015-03-11

评论列表(1条)

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

    博客写得非常的好,32个赞,如果能在题中带上相关的注意事项就更好了,加油!