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

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

(0)
N27_jiangyefanN27_jiangyefan
上一篇 2017-08-21
下一篇 2017-08-21

相关推荐

  • 文本处理工具之grep正则表达式

    grep简介 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,…

    Linux干货 2016-08-08
  • SHELL脚本编程之变量的种类

    变量 在进行脚本编程的时候,经常会使用到不同类型的变量,根据变量的生效范围,可大致分为以下的几类: 本地变量:生效范围为当前shell进程,对当前shell之外的其他shell进程,包括当前shell进程的子shell进程都是无效的,它的作用域就是当前shell进程 环境变量:生效范围是当前shell进程及其子进程 局部变量:生效范围是当前shell进程中某…

    Linux干货 2016-08-12
  • 软件管理

    rpm:操作复杂、编译时间长、极易出现问题、依赖关系复杂、管理方便、 保存依赖关系,需要手工解决。
    yum:自动解决依赖关系、可以对rpm进行分组,基于组进行安装操作、引入仓库概念,支持多个仓库、配置简单

    2018-03-21
  • Linux基础目录命名的法则及规定功能

    Filesystem Hierarchy Standard (FHS):重点在于规范每个特定的目录下应该要放置什么样子的数据。 这样做好处是,在Linux操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。 /bin:系统有很多放置执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin底下…

    Linux干货 2017-07-02
  • Shell脚本编程 流程控制—选择

    流程控制可根据不同的情况做不同的处理,而且可重复执行指定的程序区域,在shell bash中流程控制可分为两大类: "选择"和"循环" 1.选择:if、case、select 2.循环:for、while、until、select 命令结束状态返回值: 在shell中命令执行状态返回值分两种,成功和失败,0表示成功,非…

    Linux干货 2016-08-24
  • 创建CA 和申请证书

    创建CA 和申请证书1生成私有CA的私钥:(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)注:CA的私钥文件必须放在/etc/pki/CA/private/cakey.pem 这个路径里2创建序列号 ,数据库文件touch  /etc/pki/CA/index.tx…

    Linux干货 2017-07-17