; 马哥教育网络班第19期+第8周课程练习 | Linux运维部落

马哥教育网络班第19期+第8周课程练习

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

网桥:一种网路装置,负责网路桥接,将网络的多个网段在数据链路层连接起来。

集线器:将多条以太网线或光纤集合连接在同一段物理介质下的装置。工作在物理层。

二层交换机:工作在数据链路层,交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

三层交换机:三层交换机可以处理第三层网络层协议,用于连接不同网段,通过对缺省网关的查询学习来建立两个网段之间的直接连接。三层交换机具有一定的“路由”功能,但只能用于同一类型的局域网子网之间的互联。这样,三层交换机可以像二层交换机那样通过MAC地址标识数据包,也可以向传统路由器那样在两个局域网子网之间进行功能较弱的路由转发,它的路由转发不是通过软件来维护的路由表。而是通过专用的ASIC芯片处理这些转发。

路由器:提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径,这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端,这称为转送。

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

IP地址分为:

A类:1.0.0.1-126.255.255.254

网络数:126

每个网络中的主机数:2^24-2

默认子网掩码:255.0.0.0

私网地址:10.0.0.0/8-10.255.255.255/8

B类:128.0.0.1-191.255.255.254

网络数:2^14

每个网络中的主机数:2^16-2

默认子网掩码:255.255.0.0

私网地址:172.16.0.0/16-172.31.255.255/16

C类:192.0.0.1-223.255.255.254

网络数:2^21

每个网络中的主机数:2^8-2

默认子网掩码:255.255.255.0

私网地址:192.168.0.0/24-192.168.255.255/24

D类:组播 224.0.0.1-239.255.255.254

E类:240.0.0.1-255.255.255.254

子网掩码:将IP地址划分为网络地址与主机地址,与IP地址相与可计算出相应主机的网络地址

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

1OSI模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

①物理层(Physical layer):利用物理传输介质为数据链路层提供物理连接,

如:集线器、网线、光纤、同轴电缆等; 在这一层,数据的单位称为比特(bit)。

物理层定义的典型规范代表包括:EIA/TIA RS-232EIA/TIA RS-449V.35RJ-45


②数据链路层(Data link layer):将数据分帧,并处理流控制,屏蔽物理层,

为网络层提供一个数据链路的连接,进行几乎无差错的数据传输,如:网卡、网桥、二层交换机;

该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLCHDLCPPPSTP

帧中继等。


③网络层(Network layer):负责路由转发和控制网络拥塞,如:路由器、三层交换机等; 

在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IPIPXRIPOSPF等。


④传输层(Transport layer):负责将上层数据分段并提供端到端的、可靠(TCP

或不可靠(UDP)的数据传输;在这一层,数据的单位称为数据段(segment)。

传输层协议的代表包括:TCPUDPSPX等。


⑤会话层(Session layer):负责两个节点之间的连接和断开;管理主机之间的会话进程,

即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。


⑥表示层(Presentation layer):负责加密和解密;表示层的数据转换包括数据的加密、

压缩、格式转换等。


⑦应用层(Application layer):用于进程间通信,常用的协议有HTTPFTPSMTPTELNET 

     

2TCP/IP模型:网络接入层 、网际互联层、传输层、应用层

网络接入层:与OSI参考模型中的物理层和数据链路层相对应,负责监视数据在主机和网络之

间的交换;


②网际互连层:相当于OSI的网络层,主要处理主机到主机间的通信;该层定义了分组格式和协议,

IP协议(Internet Protocol)。除了需要完成路由的功能外,也可以完成将不同类型的网络

(异构网)互连的任务,也需要完成拥塞控制的功能。


③传输层:对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的

顺序传送及数据的完整性,该层定义了两种服务质量不同的协议:传输控制协议TCPtransmission

 control protocol)和用户数据报协议UDPuser datagram protocol)。


④应用层:对应于OSI参考模型的会话层、表示层和应用层,面向不同的网络应用引入了不同的

应用层协议,如:文件传输协议(File Transfer ProtocolFTP)、虚拟终端协议(TELNET)、

超文本链接协议(Hyper Text Transfer ProtocolHTTP)等。


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

设置IP/mask    vim /etc/sysconfig/network-scripts/ifcfg-eth0

设置路由:默认网关    vim /etc/sysconfig/network

设置DNS服务器:主,次,第三    vim /etc/resolv.conf

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

(1)编辑配置文件:

    vim /etc/sysconfig/network-scripts/ifcfg-IFACE

    vim /etc/resolv.conf

        nameserver DNS_SERVER_IP1

        nameserver DNS_SERVER_IP2

        nameserver DNS_SERVER_IP3

(2)通过图形界面:system-config-network-tui

(3)通过命令:

    ①通过ifconfig命令设置IP地址与子网掩码

    ifconfig eth0 [up|down]

    ifconfig IFACE 192.168.99.95/24

    ifconfig IFACE 192.168.99.95 netmask 255.255.255.0

    ②通过route命令添加路由条目

    route add -host 192.168.99.95 gw 192.168.89.1 dev eth0

    route add -net 192.168.99.0 netmask 255.255.255.0 gw 192.168.98.1 dev eth0

    route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.89.1

    route add default gw 192.168.89.1

    route del -host 192.168.99.95

    route del -net 192.168.0.0 netmask 255.255.255.0

    route del default gw 192.168.89.1

     ③通过ip命令设置IP地址,子网掩码与路由条目

    ip link set dev eth0 [up|down]

    ip link show [dev IFACE] [up]

    ip addr add 172.16.10.13/16 dev eth0

    ip addr del 172.16.10.13/16 dev eth0

    ip addr show [dev IFACE]

    ip addr flush [dev IFACE]

    ip route add 192.168.1.3 via 172.16.0.1 dev eth0

    ip route add 192.168.0.0/24 via 172.16.0.1 dev eth0

    ip route add default via 172.16.0.1

    ip route del 192.168.1.3

    ip route del 192.168.0.0/24

    ip route del default

    ip route show [dev IFACE] [via PREFIX]

    ip route flush [dev IFACE] [via PREFIX]

    CentOS 7

    nmcli device show

    nmcli d connect IFACE

    nmcli d disconnect IFACE

    nmcli connection show [IFACE]

    nmcli c modify IFACE ipv4.addresses 172.16.100.12/16

    nmcli c modify IFACE -ipv4.addresses 172.16.100.12/16

    nmcli c modify IFACE +ipv4.addresses 172.16.100.12/16

    nmcli c down IFACE;nmcli c up IFACE(需禁用并启用网卡激活配置)

    nmcli c modify IFACE ipv4.gateway 172.16.0.1

    nmcli c modify IFACE ipv4.dns 172.16.0.1

    nmcli c modify IFACE +ipv4.dns 8.8.8.8

    (ipv4.gateway/ipv4.dns1/ipv4.method manual)

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

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

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

1.png

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

IP,MASK,GW,DNS配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

    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服务器指向

    USERCTL=普通用户是否可控制此设备

    PEERDNS=如果BOOTPROTO的值为dhcp,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中

路由相关配置文件:/etc/sysconfig/network-scripts/route-IFACE(默认不存在,需要自行创建)

    两种风格:

        1.TARGET via GW

        # 192.168.0.0/24 via 172.16.0.1

        2.每三行定义一条路由

        ADDRESS#=TARGET

        NETMASK#=MASK

        GATEWAY#=GW

        # ADDRESS0=192.168.20.0

        # NETMASK0=255.255.255.0

        # GATEWAY0=172.16.0.1

        # ADDRESS1=192.168.30.0

        # NETMASK1=255.255.255.0

        # GATEWAY1=172.16.0.1


8、如何给网络接口配置多个地址,有哪些方式?

①ifconfig

# ifconfig eth0:0 192.168.0.22/24

②ip

# ip addr add 192.168.0.22/24 dev eth0

# ip addr add 192.168.0.22/24 dev eth0 label 'eth0:0'

③配置文件

# ifcfg-IFACE_ALIAS

    # DEVICE=IFACE_ALIAS

    删除其中的HWADDR与UUID,如果没有其他网关作为出口,也可以将GATEWAY删除


9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。

ifcfg:

    ifconfig命令:

        ifconfig [interface]

        ifconfig IFACE [up|down]

        ifconfig IFACE IP/mask [up]

        ifconfig IFACE IP netmask MASK

        # ifconfig -a

        # ifconfig eth0 172.16.100.11/16

        # ifconfig eth0 172.16.100.11 netmask 255.255.0.0

        # ifconfig eth0:0 172.16.101.11/16

    route命令:

        # route -n

        route add [-net|-host] target[netmask NM] [gw GW] [[dev] IF]

        # route add – host 192.168.1.3 gw 172.16.0.1 dev eth0

        # route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.1.0 dev eth0

        # route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1

        # route add default gw 172.16.0.1

        route del [-net|-host] target [gw GW] [netmask NM] [[dev] IF]

        # route del -host 192.168.1.3

        # route del -net 192.168.0.0 netmask 255.255.255.0

    netstat命令:

        netstat

        -t:tcp协议相关

        -u:udp协议相关

        -w:raw socket相关

        -l:处于监听状态

        -a:所有状态

        -n:以数字显示

        -e:扩展格式的信息

        -p:显示相关进程及PID

        常用组合:-tan,-uan,-tnl,-unl

        显示路由表:

        netstat -rn

        显示接口统计数据:

        netstat -i 所有接口

        netstat -IIFACE 指定接口

ip:

    ip link set dev IFACE [up|down]

        # ip link set dev eth0 down

        # ip link set dev eth0 up

    ip link show [dev IFACE] [up]

        # ip link show dev eth0

        # ip link show up

    ip addr {add|del} IPADDR dev STRING [label LABEL] [scope {global|link|host}] [broadcast ADDRESS]

        # ip addr add 172.16.100.13/16 dev eth0

        # ip addr add 172.16.100.14/16 dev eth0 label 'eth0:0'

        # ip addr del 172.16.100.13/16 dev eth0

        # ip addr del 172.16.100.14/16 dev eth0 label 'eth0:0'

    ip addr show [dev IFACE] [label PATTERN] [primary and secondary]

        # ip addr show dev eth0

        # ip addr show label 'eth0:*'

        # ip addr show secondary

    ip addr flush

        # ip addr flush dev eth0 label 'eth0:*'

    ip route {add|del} TARGET via GW dev IFACE src SOURCE_IP

        # ip route add 192.168.1.3 via 172.16.0.1 dev eth0

        # ip route add 192.168.0.0/24 via 172.16.0.1

        # ip route add default via 172.16.0.1

        # ip route del 192.168.1.3

        # ip route del 192.168.0.0/24

        # ip route del default

    ip route show [dev IFACE] [via PREFIX]

        # ip route show dev eth0

        # ip route show via 172.16.0.1

    ip route flush [dev IFACE] [via PREFIX]

        # ip route flush dev eth0

        # ip route flush via 172.16.0.1

    ss命令:

        ss [option]…[FILTER]

            -t:tcp协议相关

            -u:udp协议相关

            -w:裸套接字相关

            -x:unix sock相关

            -l:listen状态的连接

            -a:所有

            -n:数字格式

            -p:相关的程序及PID

            -e:扩展的信息

            -m:内存用量

            -o:计时器信息

    FILTER=[state TCP-STATE] [EXPRESSION]

        TCP的常见状态:

            tcp finite state machine

                LISTEN

                ESTABLISHED

                FIN_WAIT_1

                FIN_WAIT_2

                SYN_SENT

                SYN_RECV

                CLOSED

        # ss -tan state ESTABLISHED

        EXPRESSION:

            dport:目标端口    sport:源端口

        # ss -tan '( dport = :ssh or sport = :ssh )'

            

10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。

安装:

rpm {-i|–install} [install-options] PACKAGE_FILE…

    -v:verbose

    -vv:a lot of verbose

    -h:以#显示程序包管理执行进度,每个#表示2%的进度

    [install-options]

        –test:测试安装,但不真正执行安装过程;dry run模式

        –nodeps:忽略依赖关系

        –replacepkgs:重新安装

        –nosignature:不检查来源合法性

        –nodigest:不检查包完整性

        –noscripts:不执行程序包中的脚本片段

            %pre:安装前脚本    –nopre

            %post:安装后脚本    –nopost

            %preun:卸载前脚本    –nopreun

            %postun:卸载后脚本    –nopostun

    # rpm -ivh zsh-5.0.2-7.el7.x86_64.rpm

    # rpm -ivh –test php-fpm-5.4.16-23.el7_0.3.x86_64.rpm

    # rpm -ivh –replacepkgs zsh-5.0.2-7.el7.x86_64.rpm –nodigest –nosignature

升级:

rpm {-U|–upgrade} [install-options] PACKAGE_FILE…

rpm {-F|–freshen} [install-options] PACKAGE_FILE…

    upgrade:安装有旧版程序包,则升级,不存在旧版,则安装

    freshen:安装有旧版程序包,则升级,不存在旧版,则不执行升级操作

    –oldpackage:降级

    –force:强行升级

    # rpm -Uvh PACKAGE_FILE

    # rpm -Fvh PACKAGE_FILE

注意:

    1.不要对内核做升级操作:linux支持多内核版本并存,因此,直接安装新版本内核

    2.如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一配置文件不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

查询:

rpm {-q|–query} [select-options] [query-options]

    [select-options]

        -a:所有安装的包

        -f:查询指定的文件由哪个程序包安装生成

        -p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作

        –whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

        –whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

    [query-options]

        –changelog:查询rpm包的change log

        -c:查询程序包的配置文件

        -d:查询程序包的文档(帮助文档等)

        -i:查询程序包的信息

        -l:查询程序包安装后生成的所有文件

        –scripts:查询程序包自带的脚本文件

        -R:查询指定的程序包所依赖的CAPABILITY

        –provides:列出程序包所提供的CAPABILITY

    # rpm -qa

    # rpm -qf /etc/issue

    # rpm -qlp zsh.rpm

    # rpm -q –whatprovides /bin/cat

    # rpm -q –whatrequires /bin/cat

    # rpm -q –changelog zsh

    # rpm -qc zsh

    # rpm -qd zsh

    # rpm -qi zsh

    # rpm -ql zsh

    # rpm -q –scripts zsh

    # rpm -qR zsh

    # rpm -q –provides zsh

    # rpm -q –conflicts zsh

卸载:

rpm {-e|–erase} PACKAGE_FILE…

    –nodeps:忽略依赖关系

    # rpm -e zsh

    # rpm -e –nodeps zsh

校验(已安装的程序包):

rpm {-V|–verify} [select-options] [verify-options]

    S file size differs(大小不同)

    M mode differs(权限不同)

    5 digest differs(MD5码不同)

    D device majoy/minor number mismatch(设备文件主次设备号不匹配)

    L readlink(2) path mismatch(路径不匹配)

    U user ownership differs(属主不匹配)

    G group ownership differs(属组不匹配)

    T mtime differs(最近一次修改时间不匹配)

    P capabilities differ(功能不同)

导入:

rpm –import /PATH/FROM/GPG-PUBKEY-FILE:导入密钥文件

    # rpm –import RPM-GPG-KEY-CentOS-7

检验(程序包文件的来源合法性和包完整性):

rpm {-K|–checksig} [–nodigest] [–nosignature]

数据库重建:

rpm {–initdb|–rebuilddb}

    –initdb:初始化,如果事先不存在数据库,则新建之;否则,不执行任何操作

    –rebuilddb:重建,无论当前存在与否,直接重新创建数据库

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

mount -r -t iso9660 /dev/cdrom /mnt

vim /etc/yum.repos.d/CentOS-Cdrom.repo

[cdrom]

name=CentOS-Cdrom

baseurl=file:///mnt

gpgcheck=0

yum repolist

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

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

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

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

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

2.png

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

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

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

3.png

14、写一个脚本

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

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

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

4-1.png

4-2.png


15、写一个脚本

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

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

5.png


16、写一个脚本

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

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

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

6.png


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

7.png

18、打印九九乘法表;

8.png

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

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 15:17

    写的很好,排版还可以在漂亮一点,加油

联系我们

400-080-6560

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

邮件:1660809109@qq.com

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

友情链接:万达娱乐平台  万达娱乐注册  万达主管  guoqibee.com  万达开户  测试  万达招商QQ  华宇招商  万达娱乐主管  万达直属QQ