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)
上一篇 2017-08-21 10:03
下一篇 2017-08-21 17:33

相关推荐

  • varnish详解

      第一章    http缓存的基础概念 1、程序运行时具有局部性特征 时间局部性缓存的数据往往被打有时间缀,具有定期失效的特征,过期后会从源服务器检验请求验证是否需要重新拉取数据,某数据被访问后,该数据往往会再次在短时间内被访问到。 空间局部性被访问数据的周边数据被访问的概率会比其它常规数据访问大很多,所以这些访问数…

    Linux干货 2016-11-15
  • Linux下装载软Raid

    步骤1.创建磁盘,并转换为fd #fdisk /dev/sdb //这里使用新的磁盘sdb 然后输入n ,创建分区 使用默认的起始点 输入大小为+100M 然后重复刚才的操作4次,创建4个分区,创建完4个分区后 我们还要改变分区的ID 在分区的主菜单输入T 然后输入要改变ID的分区号,也就是最后4个分区 然后输入分区的ID:fd 四个分区都改成FD 完成后,…

    Linux干货 2017-08-12
  • keepalived+lvs-dr实现高可用负载均衡

    keepalived+lvs-dr实现高可用负载均衡 实验拓扑 实验要求 RS1与RS2地址为172.18.27.201/202 VS1和VS2地址为172.18.27.103/200,VIP为172.18.27.254 VS1和VS2实现lvs-dr负载均衡及高可用性,且vs为sorry sever。 keepalived是单主模式。 实验步骤 各个主机安…

    2017-05-14
  • Linux之Centos系统的启动流程详述

    概述 了解系统的启动流程,有助于我们了解Linux系统上的一些工作原理,有助于我们深入的理解一个系统的运作方式,那么本篇就以CentOS6系统为例,介绍一下有关Linux系统启动相关的内容,分为一下几个部分 1、Linux系统的一些基础概念 2、CentOS6上的启动流程概述 第一章 Linux系统的一些基础概念 Linux系统的组成部分:内核(kernel…

    Linux干货 2016-09-29
  • zabbix监控Hadoop的实现

            Hadoop日常运行过程中一些参数需要进行实时监控,如:Map、Reduce任务数量,HDFS磁盘使用情况,namenode、datanode在线数量及健康情况,以便更好的掌握整个Hadoop集群架构的运行情况。         下面结合最近工作中的一些…

    Linux干货 2015-03-08