[作业] 马哥2016全新Linux+Python高端运维班第八周作业

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

网桥:比较古老的方式二层交换设备,网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。类似中继器。

集线器: 二层交换设备,多口的网桥

二层交换机: 二层交换设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中

三层交换机: 工作在二层和三层,具有路由功能的交换机。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。

路由器:是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。

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

IPv4 地址分类:

A类:

0 000 0000 - 0 111 1111: 1-127

网络数:126, 127

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

默认子网掩码:255.0.0.0

私网地址:10.0.0.0/8

B类:

10 00 0000 - 10 11 1111:128-191

网络数:2^14

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

默认子网掩码:255.255.0.0

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

C类:

110 0 0000 - 110 1 1111: 192-223

网络数:2^21

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

默认子网掩码:255.255.255.0

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

D类:组播

1110 0000 - 1110 1111: 224-239

E类:

240-255

子网掩码:

点分十进制:0-255

0000 0000 - 1111 1111

0.0.0.0-255.255.255.255

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

OSI模型

物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。

物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等

数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。

二层交换机,集线器,网桥

网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。

路由器,三层交换机

传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。

会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。

表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。

应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。

tcp/ip分层:

  第一层:网络接口层

  包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。

  第二层:网络层(Internet Layer)。网络层解决的是计算机到计算机间的通信问题,它包括三个方面的功能:

处理来自传输层的分组发送请求,收到请求后将分组装入IP数据报,填充报头,选择路径,然后将数据报发往适当的网络接口。

处理数据报。

处理网络控制报文协议、即处理路径、流量控制、阻塞等。

  对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。

  第三层:传输层

  传输层解决的是计算机程序到计算机程序之间的通信问题。对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。

  第四层:应用层

  对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。

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

1、Linux主机有一个可以正常被系统识别的网卡

2、网卡的接口上有一条可以正常和外界交换的链路

ifconfig,ip addr查看网卡状态

3、为网卡指定一个正确的IP地址和路由

静态指定:

ifcfg: ifconfig, route, netstat

ip: object {link, addr, route}, ss, tc

配置文件

system-config-network-tui (setup)

CentOS 7:

nmcli, nmtui

netstat查看路由

4、为机器指定一个正确的网关

/etc/sysconfig/network-scripts/ifcfg-XXX

/etc/sysconfig/networking

GATEWAY=XXXXXXX

5、为机器制定DNS解析服务器

/etc/resolv.conf

nameserver DNS_SERVER_IP1 #主DNS

nameserver DNS_SERVER_IP2 #次DNS

nameserver DNS_SERVER_IP3 #第三DNS

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

配置方式:

静态指定:

ifcfg: ifconfig, route, netstat

ip: object {link, addr, route}, ss, tc

配置文件

system-config-network-tui (setup)

CentOS 7:

nmcli, nmtui

动态分配:

DHCP: Dynamic Host Configuration Protocol

配置网络接口:

CentOS 6:

以太网:eth[0,1,2,...]

ppp:ppp[0,1,2,...]

ifconfig命令

ifconfig [interface]

# ifconfig -a

# ifconfig IFACE [up|down]

ifconfig interface [aftype] options | address ...

# ifconfig IFACE IP/mask [up]

# ifconfig IFACE IP netmask MASK

注意:立即生效;

启用混杂模式:[-]promisc

route命令

路由管理命令

查看:route -n

添加:route add

route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]

目标:192.168.1.3  网关:172.16.0.1

~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

目标:192.168.0.0 网关:172.16.0.1

~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0

~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

默认路由,网关:172.16.0.1

~]# 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

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

目标:192.168.1.3  网关:172.16.0.1

~]# route del -host 192.168.1.3

目标:192.168.0.0 网关:172.16.0.1

~]# route del -net 192.168.0.0 netmask 255.255.255.0

DNS服务器指定

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

正解:FQDN-->IP

# dig -t A FQDN

# host -t A FQDN

反解:IP-->FQDN

# dig -x IP

# host -t PTR IP

FQDN: www.magedu.com.

netstat命令:

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

显示网络连接:

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]

-t: tcp协议相关

-u: udp协议相关

-w: raw socket相关

-l: 处于监听状态

-a: 所有状态

-n: 以数字显示IP和端口;

-e:扩展格式

-p: 显示相关进程及PID

常用组合:

-tan, -uan, -tnl, -unl

显示路由表:

netstat  {--route|-r} [--numeric|-n]

-r: 显示内核路由表

-n: 数字格式

显示接口统计数据:

netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]

# netstat -i

# netstat -I IFACE

总结:ifcfg家庭命令配置

ifconfig/route/netstat

ifup/ifdown

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

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

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

#!/bin/bash
for i in $(seq 1 254)
do
        ServerIp=172.16.250.$i
        ping -c 1 -w 1 $ServerIp &> /dev/null
        if [ $? -eq 0 ]; then
                echo -e "\033[0;32;1m $ServerIp is up. \033[0m"
        else
                echo -e "\033[0;31;1m $ServerIp is down. \033[0m"
        fi
done

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

DEVICE:此配置文件应用到的设备;

HWADDR:对应的设备的MAC地址;

BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;

NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;

ONBOOT:在系统引导时是否激活此设备;

TYPE:接口类型;常见有的Ethernet, Bridge;

UUID:设备的惟一标识;

IPADDR:指明IP地址;

NETMASK:子网掩码;

GATEWAY: 默认网关;

DNS1:第一个DNS服务器指向;

DNS2:第二个DNS服务器指向;

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

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

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

ifconfig:

ifconfig IFACE_ALIAS

ip

ip addr add

配置文件:

ifcfg-IFACE_ALIAS

DEVICE=IFACE_ALIAS

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

ip命令:

ip - show / manipulate routing, devices, policy routing and tunnels

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT := { link | addr | route }

link OBJECT:

ip link - network device configuration

set

dev IFACE

可设置属性:

up and down:激活或禁用指定接口;

show

[dev IFACE]:指定接口

[up]:仅显示处于激活状态的接口

ip address - protocol address management

ip addr { add | del } IFADDR dev STRING

[label LABEL]:添加地址时指明网卡别名

[scope {global|link|host}]:指明作用域

global: 全局可用;

link: 仅链接可用;

host: 本机可用;

[broadcast ADDRESS]:指明广播地址

ip address show - look at protocol addresses

[dev DEVICE]

[label PATTERN]

[primary and secondary]

ip address flush - flush protocol addresses

使用格式同show

ip route - routing table management

ip route add

添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP

TARGET:

主机路由:IP

网络路由:NETWORK/MASK

添加网关:ip route add defalt via GW dev IFACE

ip route delete

删除路由:ip route del TARGET

ip route show

ip route flush

[dev IFACE]

[via PREFIX]

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

EXPRESSION:

dport =

sport =

示例:’( dport = :ssh or sport = :ssh )’

常用组合:

-tan, -tanl, -tanlp, -uan

netstat命令:

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

显示网络连接:

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]

-t: tcp协议相关

-u: udp协议相关

-w: raw socket相关

-l: 处于监听状态

-a: 所有状态

-n: 以数字显示IP和端口;

-e:扩展格式

-p: 显示相关进程及PID

常用组合:

-tan, -uan, -tnl, -unl

显示路由表:

netstat  {--route|-r} [--numeric|-n]

-r: 显示内核路由表

-n: 数字格式

显示接口统计数据:

netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]

# netstat -i

# netstat -I IFACE

ifconfig命令

ifconfig [interface]

# ifconfig -a

# ifconfig IFACE [up|down]

ifconfig interface [aftype] options | address ...

# ifconfig IFACE IP/mask [up]

# ifconfig IFACE IP netmask MASK

注意:立即生效;

启用混杂模式:[-]promisc

路由管理命令

查看:route -n

添加:route add

route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]

目标:192.168.1.3  网关:172.16.0.1

~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

目标:192.168.0.0 网关:172.16.0.1

~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0

~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

默认路由,网关:172.16.0.1

~]# 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

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

目标:192.168.1.3  网关:172.16.0.1

~]# route del -host 192.168.1.3

目标:192.168.0.0 网关:172.16.0.1

~]# route del -net 192.168.0.0 netmask 255.255.255.0

DNS服务器指定

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

正解:FQDN-->IP

# dig -t A FQDN

# host -t A FQDN

反解:IP-->FQDN

# dig -x IP

# host -t PTR IP

FQDN: www.magedu.com.

Linux网络属性配置的tui(text user interface):

system-config-network-tui

也可以使用setup找到;

CentOS7

地址配置工具:nmcli

nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

device - show and manage network interfaces

connection - start, stop, and manage network connections

如何修改IP地址等属性:

#nmcli connection modify IFACE [+|-]setting.property value

setting.property:

ipv4.addresses

ipv4.gateway

ipv4.dns1

ipv4.method

manual

网络接口配置tui工具:nmtui

主机名称配置工具:hostnamectl

status

set-hostname

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

显示仓库列表:

repolist [all|enabled|disabled]

显示程序包:

list

# yum list [all | glob_exp1] [glob_exp2] [...]

# yum list {available|installed|updates} [glob_exp1] [...]

安装程序包:

install package1 [package2] [...]

reinstall package1 [package2] [...]  (重新安装)

升级程序包:

update [package1] [package2] [...]

downgrade package1 [package2] [...] (降级)

检查可用升级:

check-update

卸载程序包:

remove | erase package1 [package2] [...]

查看程序包information:

info [...]

查看指定的特性(可以是某文件)是由哪个程序包所提供:

provides | whatprovides feature1 [feature2] [...]

清理本地缓存:

clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

构建缓存:

makecache

搜索:

search string1 [string2] [...]

以指定的关键字搜索程序包名及summary信息;

查看指定包所依赖的capabilities:

deplist package1 [package2] [...]

查看yum事务历史:

history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

安装及升级本地程序包:

* localinstall rpmfile1 [rpmfile2] [...]

(maintained for legacy reasons only - use install)

* localupdate rpmfile1 [rpmfile2] [...]

(maintained for legacy reasons only - use update)

包组管理的相关命令:

* groupinstall group1 [group2] [...]

* groupupdate group1 [group2] [...]

* grouplist [hidden] [groupwildcard] [...]

* groupremove group1 [group2] [...]

* groupinfo group1 [...]

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

(1) 挂载光盘至某目录,例如/media/cdrom

# mount -r -t iso9660 /dev/cdrom /media/cdrom

(2) 创建配置文件

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=

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

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

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

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

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

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

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

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

14、写一个脚本

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

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

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

15、写一个脚本

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

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

16、写一个脚本

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

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

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

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

#!/bin/bash
for i in $(seq 1 254)
do
        ServerIp=172.16.250.$i
        ping -c 1 -w 1 $ServerIp &> /dev/null
        if [ $? -eq 0 ]; then
                echo -e "\033[0;32;1m $ServerIp is up. \033[0m"
        fi
done

18、打印九九乘法表;

http://zhangke0516.blog.51cto.com/1655731/1839502

时间: 2024-10-05 23:40:39

[作业] 马哥2016全新Linux+Python高端运维班第八周作业的相关文章

马哥2016全新Linux+Python高端运维班第三周作业作答

                    马哥2016全新Linux+Python高端运维班第三周作业                                           1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.     [[email protected] ~]# who | awk '{print $1 $NF}'| uniq -d     [[email protected] ~]# who     yicx     :0  

马哥2016全新Linux+Python高端运维班第八周作业

1.请描述网桥.集线器.二层交换机.三层交换机.路由器的功能.使用场景与区别. 答: 网桥:双端口的二层设备,可以隔离冲突域,一般用于划分LAN,或者链接LAN. 集线器:物理层设备,多端口,无法隔离冲突域,用于连接主机. 二层交换机:数据链路层设备,多端口,与网桥相比,交换机可学习MAC地址,根据MAC地址转发数据,可隔离冲突域,用于在路由设备与主机之间架设,接入层与汇聚层皆可使用. 三层交换机:相当于是带路由功能的二层交换机,工作在网络层,有更高的带宽,可做核心层使用,用于大中型网络的路由交

马哥2016全新Linux+Python高端运维班第三周作业

本周作业内容: 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. # who | cut -d' ' -f1 | sort -u 2.取出最后登录到当前系统的用户的相关信息. # id $(who | sort -t' ' -k3,4 | tail -1 | cut -d' ' -f1) 3.取出当前系统上被用户当作其默认shell的最多的那个shell. # cut -d: -f7 /etc/passwd | sort | uniq -c | sort

马哥2016全新Linux+Python高端运维班第七周作业

1.创建一个10G分区,并格式为ext4文件系统: (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl: (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳: 2.创建一个大小为1G的swap分区,并创建好文件系统,并启用之: 3.写一个脚本 (1).获取并列出当前系统上的所有磁盘设备: (2).显示每个磁盘设备上每个分区相关的空间使用信息: 4.总结RAID的各个级别及其组合方式和性能的不同

马哥2016全新Linux+Python高端运维班第五周作业

1.显示当前系统上root.fedora或user1用户的默认shell: 答:需要找到3个字符串,需要用到"或"命令,所以使用egrep.找到后cut再次筛选出我们需要显示的用户默认的shell. 2.找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(): 答: 3.使用echo命令输出一个绝对路径,使用grep取出其基名: 答:首先我们要了解什么是路径的基名和路径名: 基名:可以理解为路径名最右边的名称: 路径名:除基名以外

马哥2016全新Linux+Python高端运维班第六周作业

1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#: 答:可使用vim的查找替换功能完成: 命令如下: [[email protected] ~]# cp /etc/rc.d/rc.sysinit /tmp       ##复制文件 [[email protected] ~]# vim /tmp/rc.sysinit            ##vim编辑该文件 命令结果如下(下图红框为与上图对比效果):

马哥2016全新Linux+Python高端运维班-Linux用户创建及权限管理

第三周作业内容:1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.     [[email protected] ~]# who | cut -d' ' -f1 | sort -u      centos     liu     root 2.取出最后登录到当前系统的用户的相关信息.     第一种方式:         [[email protected] ~]# last | head -n1         liu      tty8        

马哥2016全新Linux+Python高端运维班-Linux基础命令文件管理类及目录创建

周二作业内容: 1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 文件管理类命令:cp(复制),mv(移动),rm(删除) 1) cp:   cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... cp SRC DEST 如果目标不存在,新建DEST,并将SRC中的内容填充至DEST 如果目录存在 如果DEST是文件

马哥2016全新Linux+Python高端运维班十一次作业

一.源码编译安装LNMP架构环境: 安装编译工具及库文件 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl