Linux网络相关概念及bash脚本编程练习

马哥教育网络班第23期+第八周课堂练习

Linux网络相关概念及bash脚本编程练习

习题:

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

(1)网桥: 
橋接器(英语:network bridge),又称网桥,一種網路裝置,負責網路橋接(network bridging)之用。 橋接器将网络的多个网段在数据链路层(OSI模型第2层)连接起来(即桥接)。网桥的作用主要是在数据链路层 
(2)集线器
集线器的英文称为“Hub”。“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。集线器也可以成为是一种网桥 
(3)二层交换机: 
二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。 
(4)三层交换机: 
三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。三层交换技术就是二层交换技术+三层转发技术。传统交换技术是在OSI网络标准模型第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。 
(5)路由器“ 
路由器(英语:Router,又稱路徑器)是一种電訊网络设备,提供路由與轉送兩種重要機制,可以決定封包從來源端到目的端所經過的路由路徑(host到host之間的傳輸路徑),这个过程称为路由;將路由器輸入端的封包移送至適當的路由器輸出端(在路由器內部進行),這稱為轉送。

如果想进一步了解他们之间的区别,请看这篇博客:http://network.51cto.com/art/200509/3798.htm

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

IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用。

我们常用的就是A、B、C三类地址

blob.png

三种地址的子网掩码的表现形式分别为: 
A 255.0.0.0 
B 255.255.0.0 
C 255.255.255.0 
子网掩码的作用其实就是为了划分子网而存在的,比如说C类的子网掩码是255.255.255.0,我们拿192.168.0.0/24 这个网段来说,如果子网掩码不是255.255.255.0 二是255.255.255.127 那么我们可以说这2个IP地址 不在一个子网中。

3.计算机网络的分层模型有哪些,每一层共有及设计到的物理设备有哪些

分层模型主要就是OSI 七层模型和TCP/IP模型,OSI 七层模型是学习时书面的模型,TCP/IP模型是实际在用的模型。我们以TCP/IP模型为例, 
首先,最上层 
应用层 里面有很多应用层协议 http ftp smtp … 
这个层的功能主要用来定义应用程序的存储转发规则,或者说是协议,这个层的作用就是为这些应用程序服务,进行封装和打包工作。这个层用到物理设备就是服务器。应用层主要提供了这些应用基于哪些套接字来运行,需要请求服务器的那些端口。 
第三层 
传输层 
传输层提供的是TCP协议,UDP协议…,这个层的作用是用来封装传输层首部,这个层与应用层之间有可能有一个半层叫做ssl /tsl 协议层,是为了网络安全服务的。这个层的主要网络设备就是路由器 
第二层 
网络层,网络层提供网际协议,也就是IP协议,这个层的作用是来封装网络层首部,这里会把套接字中的IP地址这一项确定下来,也就是能确定请求服务器的IP地址和源IP地址,这一层的主要的网络设备就是交换机和路由器。 
第一层 
物理层 这里的物理层包含了真正的物理层和数据链路层,这个层的主要作用是封装物理层首部,这一层设计到的物理设备就是网卡,交换机,集线器,网桥等等。

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

一、需要配置内容:需要对IP、ROUTER、DNS进行配置,具体配置如下。

二、IP配置:

  静态指定:

    命令配置:用到的命令是ifconfig。具体使用如下:

    Ifconfig所有活动接口的信息;ifconfig interface指定显示某接口;ifconfig interface ip/mask给某接口指定IP;ifconfig interface:# ip/mask给某接口指定多个IP。

    文件配置:配置文件在/etc/sysconfig/network_scripts/ifcfg-*。重要参数有DEVICE设备名;BOOTPROTO分配方式;ONBOOT开始是否启动此设备;IPADDR ip地址;NETMASK掩码;GATEWAY默认网关;DNS dns地址PEERDNS是否让DHCP服务器修改/etc/resolv.conf文件中指定的DNS服务器。

三、路由配置:

    命令配置:用到的命令是route。

    route显示路由信息;route -n不反解到主机名;route add -host host_ip gw next_hop给某主机指定路由;route add -net net_addr gw next_hop给某网络指定路由。

    文件配置:文件在/etc/sysconfig/network-scripts/route-*。此文件配置比较简单,只需指定ADDRESS0(ip地址) NETMASK0(掩码) GATEWAY0(路由)。

四、DNS配置:

    文件配置:通过编辑/etc/resolv.conf文件。nameserver DNS_server_ip,每行一个,最多只能指定3个。在/etc/sysconfig/network_scripts/ifcfg-*的PEERDNS可以指定是否让dhcp服务器修改此文件。

五、主机名配置:可以通过修改模块或者写入内核,但是推荐修改模块即可,没必要写入内核。修改模块是通过修改/etc/sysconfig/network.HOSTNAME修改。写入内核是通过echo “”>/proc/sys/kernel/hostname。

六、网络测试工具:

  常用的测试工具有ping、traceroute、mtr、netstat、ss、ethtool。

  ping可以测试网络是否通畅,ping -c #-w #(-c指定ping的次数,-w指定等待时间)。

  traceroute HOST 可以追踪由当前主机到目标主机经过的路由。但实际一般没有什么效果,因为一般都是被禁止追踪。

  mtr HOST相当于ping与traceroute。

  netstat -tan以数字格式端口地址显示所有以tcp协议的连接;netstat -tunl以数字格式端口地址显示所有监听的连接;netstat -rn以数字格式端口地址显示路由表。

  ss是新一代的netstat,其选项与netstat十分相识,ss -tan ,ss -tunl

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

一、使用ifconfig 命令进行配置网卡IP

二、使用ip addr 命令进行配置网卡IP

三、直接编辑/etc/sysconfig/network-scripts/ifcfg-eth0-9|ifcfg-enoXXXXX文件来进行ip地址社驻

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

由于无法测试,我这里改成192.168.2.0-192.168.2.254 之间所有主机的在线状态

blob.png

测试结果如下:

blob.png

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

配置文件: 
IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名称; 
路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE

blob.png 
ifcfg-IFACE配置文件参数:

DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
UUID:此设备的惟一标识;
IPV6INIT:是否初始化IPv6;
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
TYPE:接口类型,常见的有Ethernet, Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
IPADDRIP地址;
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许;
HWADDR:设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制接口;

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

(1)使用ifconfig 命令来更改ip地址 
(2)使用ip addr add命令来更改ip地址 
(3)编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0-9|enoXXXX 文件配置网卡地址

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

ifcfg家族 ifconfig route netstat

(1)ifconfig 命令 接口及地址查看和管理

ifconfig [INTERFACE] 接口可以省略,省略的话,就是查看

blob.png 
]#ifconfig -a 显示所有接口,包括inactive 状态的接口,和上面显示的效果一样 
ifconfig interface [aftype] options | address 
]#ifconfig IFACE IP/MASK [up|down] 设置网卡接口禁用/启用 
]#ifconfig IFACE IP netmask NETMASK 设置网卡接口的IP

blob.png

(2)route命令 路由查看及管理

查看 ]#route -n

blob.png

添加: ]#route add [-net}-host] target [netmask Nm] [gw GW] [[dev] if]

blob.png

删除:#]route del [-net}-host] target [netmask Nm] [gw GW] [[dev] if]

blob.png

(3)netstat命令 查看端口状态命令

显示网络连接 
netstat [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p] 
-t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine); 
-u:UDP相关的连接 
-w:raw socket相关的连接 
-l:处于监听状态的连接 
-a:所有状态 
-n:以数字格式显示IP和Port; 
-e:扩展格式 
-p:显示相关的进程及PID;

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

软件包的管理方法: 
rpm : 
安装 
rpm -ivh PACKEG 
卸载 
rpm -e PACKEG 
升级 
rpm -uvh PACKEG 
yum: 
安装 
yum -y install PACKEG_NAME 
卸载 
yum remove PACKEG_NAME 
升级 
yum update PACKEG_NAME 
yum upgrade PACKEG_NAME

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

步骤:

1.在/etc/yum.repo.d/目录下新增一个文本文件,以*.repo结尾
2.编辑这个文件,显示如下:

blob.png

3.使用yum repolist 命令加载仓库即可

blob.png

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

(1) 假设某目录(/etc/rc.d/rc3.d) 下分别有K开头的文件和S开头的文件若干 
(2)显示所有以K开头的文件的文件名,并且给其附加一个stop字符串 
(3)显示所有以S开头的文件的文件名,并且给其附加一个start字符串 
(4)分别统计S开头和K开头的文件各有多少

blob.png

测试结果:

blob.png

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

(1)脚本能接受用户名作为参数 
(2)计算此些用户的ID之和

blob.png 
测试结果:

blob.png

14、写一个脚本

(1)传递一些目录给此脚本 
(2)逐个显示每个目录的所有一级文件或子目录的内容类型 
(3)统计一共有多少个目录;且一共显示了多少个文件的内容类型

blob.png 
测试结果:

blob.png

15、写一个脚本

通过命令行传递一个参数给脚本,参数为用户名 
如果用户的id号大于等于500 则显示此用户为普通用户

blob.png

16、写一个脚本

(1)添加10个用户user1-user10 密码同用户名 
(2)用户不存在时才添加,存在时则跳过 
(3)最后显示本次共添加了多少个用户

blob.png

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

我这里用192.168.0.0-192.168.0.100 这个网段来测试,方便测试

blob.png

18、打印九九乘法表

blob.png 
一种是for循环的方法,一种是while循环的方法,

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

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-16 15:31

    写的很好,有多种办法来解决问题,继续保持,可以尝试不使用图片,用shell脚本试试那样会更好