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

相关推荐

  • Shell脚本基础练习

    脚本编程能力是作为运维工程师不可或缺的一项基本技能,各种系统的运维,如果完全靠命令行一条一条命令来执行,工作效率可想而知,而脚本却可以将完成一定功能的各个命令依据一定的流程控制,逻辑判断去完成某种功能,提升工作效率。学习shell脚本,光学习理论是远远不够的,所以在学习中要多多练习,下面就看一些关于shell脚本基础的练习 (1) 编写脚本/root/bin…

    2017-08-05
  • 第一周作业

    # 1.计算机的基本组成和功能: – **存储器**:  实现记忆功能的部件用来存放计算程序及参与运算的各种数据 – **运算器**:  负责数据的算术运算和逻辑运算即数据的加工处理 – **控制器**:  负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问 – **输入设备**: 实现计算程…

    Linux干货 2016-12-04
  • linux入门基础命令总结

    命令基础

    2017-09-18
  • 激情的魅力samba服务(热舞篇)

    正如名称一样的迷人的一个服务,充满了激情。火热的天气中更添加一分悸动,本章就尝试对下面火热的samba服务是要如何破解并掌握于手心中。(本篇当中借鉴了鸟哥私房菜和linux就该这么学还有传说中的中华小题库,通过做题来对于samba进行初步的了解)后续还会添加一篇关于samba服务的文章,作为深度了解。 首先了解下samba的来源,听说作者老道(Tridgwe…

    Linux干货 2017-08-19
  • 第一周作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echou、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及共用规定。

    Linux干货 2017-12-03
  • Gdevops 2017全球敏捷运维峰会【上海站】

    Gdevops-2017全球敏捷运维峰会-上海将于7月7日举行,活动家提供Gdevops 2017全球敏捷运维峰会【上海】在线报名服务。 峰会介绍 Introduction 全球敏捷运维峰会 数据已经成为企业的核心竞争力!谁掌控数据、更好的利用数据、实现资产化,谁就会真正率先进入大数据时代。 中国数据资产管理峰会DAMS2017,连续三年站在数据时…

    Linux干货 2017-06-27