magedu pro 第五周作业

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

网桥

连接不同子网,使其透明通信,它们工作在链路层。它们处理的是链路层数据,一般来说就是以太
网帧格式的数据,缺点是无法避免“广播风暴”,交换机就是网桥的集合。

集线器

集线器的基本功能是信息分发,它把一个端口接收的所有信号向所有端口分发出去。一些集线器
在分发之前将弱信号重新生成,一些集线器整理信号的时序以提供所有端口间的同步数据通信,
工作在物理层,集线器只是把各个终端互相连接起来而已,处理的是信号。

二层交换机

传统交换机从网桥发展而来,属于 OSI 第二层即数据链路层设备。它根据 MAC 地址寻址,通
过站表选择路由,站表的建立和维护由交换机自动进行。

三层交换机

三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部
的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据
包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定
等功能,由软件实现。三层交换技术就是二层交换技术+三层转发技术,三层交换技术是在网络
模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到
最优网络性能。

路由器

路由器属于 OSI 第三层即网络层设备,它根据 IP 地址进行寻址,通过路由表路由协议产生,
处理网络层数据,也就是 ip 报文格式的数据,目前来看网络层的报文格式是 ip 一家独大,当然路
由器也可以处理 tcp 、 udp 等四层数据,以及 ppp 等三层数据。但它的主要作用在于 ip 转发,所以
我们一般认为它是网络层设备。

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

IP 地址就是给每一个连接在 Internet 上的主机分配一个唯一的 32bit 地址(标识符), IP 地址的结构
使我们可以 Internet 上很方便地进行寻址, IP 地址有两部分组成,一部分为网络地址,另一部分为主机
地址。 IP 地址分为 A B C D E 类.常用的是 BC 两类。

A类 IP 地址

一个 A类 IP 地址由 1字节 的网络地址和 3字节 的主机地址组成,网络地址的最高位必须是 0 , 地址范围从 1.0.0.0127.255.255.255 ,默认子网掩码为 255.0.0.0 。可用的 A类 网络有 126 个,每个网络能容纳 16777214 个主机。 A类 网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址,分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如 IBM 公司的网络。

B类 IP 地址

一个 B类 IP 地址由 2字节 的网络地址和 2字节 的主机地址组成,网络地址的最高位必须是 10 ,地址范围从 128.0.0.0191.255.255.255 ,默认子网掩码为 255.255.0.0 。可用的 B类 网络有 16384 个,每个网络能容纳 65534 个主机。 B类 网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址,分配给一般的中型网络。

C类 IP 地址

一个 C类 IP 地址由 3字节 的网络地址和 1字节 的主机地址组成,网络地址的最高位必须是 110 。范围从 192.0.0.0223.255.255.255 ,默认子网掩码为 255.255.255.0 。可用的 C类 网络有 2097152 个,每个网络能容纳 254 个主机。 C类 网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址,分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。

D类 IP 地址

用于多点广播( Multicast )。 D类 IP 地址第一个字节以 1110 开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播( Multicast )中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 224.0.0.0239.255.255.255 用于多点广播。 D类 地址称为广播地址,供特殊协议向选定的节点发送信息时用。

E类 IP 地址

11110 开始,为将来使用保留。 240.0.0.0255.255.255.254255.255.255.255 用于广播地址,全 00.0.0.0 )地址对应于当前主机。全 1255.255.255.255 )地址是当前子网的广播地址。 E类 地址保留给将来使用。

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

OSI 模型

物理层

物理层所处理的数据单位是比特( bit ),物理层向上为数据链路层提供物理链路,实现透明的比特流( bit stream )传输服务,物理层向下与物理媒体相连,要确定连接物理媒体的网络接口的机械、电气、功能和过程方面的特性。

常见物理设备:网卡、网线,老式集线器。

数据链路层

数据链路层负责在单个链路上的结点间传送以帧( frame )为 PDU 的数据,在不太可靠的物理链路上实现可靠的数据传输。数据链路层的主要功能包括:建立、维持和释放数据链路的连接,链路的访问控制,流量控制和差错控制。

常见物理设备:二层交换机。
常见协议: PPP 协议。

网络层

网络层传送的 PDU 称为分组或包( packet ),在物理网络间传送分组,负责将源端主机的报文通过中间转发结点传送到目的端。网络层是通信子网的最高层,为主机提供虚电路和数据报两种方式的服务。网络层主要负责分组转发和路由选择,根据路由表把分组逐跳地由源站传送到目的站,并能适应网络的负载及拓扑结构的变化,动态地更新路由表。

常见物理设备:三层交换机,路由设备。

传输层

传输层传输的 PDU 称为报文( message ),传输层为源结点和目的结点的用户进程之间提供端到端的可靠的传输服务。端到端的传输指的是源结点和目的结点的两个传输层实体之间,不涉及路由器等中间结点。为了保证可靠的传输服务,传输层具备以下一些功能:面向连接、流量控制与拥塞控制、差错控制相网络服务质量的选择等。

常见协议: TCP 协议, UDP 协议, IP 代理。

会话层

会话层在传输层服务的基础上增加控制会话的机制,建立、组织和协调应用进程之间的交互过程。会话层提供的会话服务种类包括双工、半双工和单工方式。会话管理的一种方式是令牌管理,只有令牌持有者才能执行某种操作。会话层提供会话的同步控制,当出现故障时,会话活动在故障点之前的同步点进行重复,而不必从头开始。

常见协议: HTTP 协议。

表示层

表示层定义用户或应用程序之间交换数据的格式,提供数据表示之间的转换服务,保证传输的信息到达目的端后意义不变。

应用层

应用层直接面向用户应用,为用户提供对各种网络资源的方便的访问服务。

TCP/IP 模型

TCP/IP 是一组用于实现网络互连的通信协议。 Internet 网络体系结构以 TCP/IP 为核心。基于 TCP/IP 的
参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层、传输层(主机到主机)、和
应用层。

主机到网络层

实际上 TCP/IP 参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递 IP 分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。

常见物理设备:网卡,网线,中继器,老式集线器。     

网络互连层

网络互连层是整个 TCP/IP 协议栈的核心。它的功能是把分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。  

网络互连层定义了分组格式和协议,即 IP 协议( Internet Protocol )。  

网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。

除此之外,网络互连层还需要完成拥塞控制的功能。

常见物理设备:二层交换机,网桥。   

传输层

 
在 TCP/IP 模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议 TCP ( transmission control protocol )和用户数据报协议 UDP ( user datagram protocol )。 TCP 协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。 TCP 协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据, UDP 协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。

常见物理设备:三层交换机,路由器。   

应用层

TCP/IP 模型将 OSI 参考模型中的会话层和表示层的功能合并到应用层实现。
  
应用层面向不同的网络应用引入了不同的应用层协议。其中,有基于 TCP 协议的,如文件传输协议( File Transfer Protocol , FTP )、虚拟终端协议( TELNET )、超文本链接协议( Hyper Text Transfer Protocol , HTTP ),也有基于 UDP 协议的。

常见物理设备:高层交换机等。

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

修改网络属性

编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,按实际情况配置 IP/NETMASK/GW/DNS

其中配置文件参数说明如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DEVICE :此配置文件对应的设备的名称;(和 IFACE 保持一致)
ONBOOT :在系统引导过程中,是否激活此接口;
UUID :此设备的惟一标识;
IPV6INIT :是否初始化 IPv6
BOOTPROTO :激活此接口时使用什么协议来配置接口属性,常用的有 dhcp 、 bootp 、 static 、 none ;
TYPE :接口类型,常见的有 Ethernet Bridge
DNS1 :第一 DNS 服务器指向;
DNS2 :备用 DNS 服务器指向;
DOMAIN :DNS 搜索域;
IPADDR :IP 地址;
NETMASK :子网掩码; CentOS 7 支持使用 PREFIX 以长度方式指明子网掩码;
GATEWAY :默认网关;
USERCTL :是否允许普通用户控制此设备;
PEERDNS :如果 BOOTPROTO 的值为 dhcp ,是否允许 dhcp server 分配的 dns 服务器指向覆盖本地手动指定的 DNS 服务器指向;默认为允许;
HWADDR :设备的 MAC 地址;
NM_CONTROLLED :是否使用 NetworkManager 服务来控制接口( NetworkManager 服务在 CentOS 6 上还不完善,建议关闭,使用 network 服务已足够。);

具体可查看《Linux 网络属性配置文件详解》。

重启网络服务

1
service network restart;

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

编辑网络配置文件

编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,按实际情况配置 IP/NETMASK/GW/DNS

其中配置文件参数说明如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DEVICE :此配置文件对应的设备的名称;(和 IFACE 保持一致)
ONBOOT :在系统引导过程中,是否激活此接口;
UUID :此设备的惟一标识;
IPV6INIT :是否初始化 IPv6
BOOTPROTO :激活此接口时使用什么协议来配置接口属性,常用的有 dhcp 、 bootp 、 static 、 none ;
TYPE :接口类型,常见的有 Ethernet Bridge
DNS1 :第一 DNS 服务器指向;
DNS2 :备用 DNS 服务器指向;
DOMAIN :DNS 搜索域;
IPADDR :IP 地址;
NETMASK :子网掩码; CentOS 7 支持使用 PREFIX 以长度方式指明子网掩码;
GATEWAY :默认网关;
USERCTL :是否允许普通用户控制此设备;
PEERDNS :如果 BOOTPROTO 的值为 dhcp ,是否允许 dhcp server 分配的 dns 服务器指向覆盖本地手动指定的 DNS 服务器指向;默认为允许;
HWADDR :设备的 MAC 地址;
NM_CONTROLLED :是否使用 NetworkManager 服务来控制接口( NetworkManager 服务在 CentOS 6 上还不完善,建议关闭,使用 network 服务已足够。);

具体可查看《Linux 网络属性配置文件详解》。

使用 setupsystem-config-network 命令( CentOS 6 )

最小化安装的系统需要手动安装工具。

1
2
3
4
sudo yum install setuptool;
sudo yum install system-config-network-tui;

# 如果找不到 system-config-network-tui ,可能是包名有区别,尝试搜索一下 system-config 关键字。

这两个命令其实是包含与被包含的关系, setup 包含 system-config-network ,只是 system-config-network 可以单独执行而已。下面就以 system-config-network 命令来说明。

直接用 root 用户执行 system-config-network 命令:

1
sudo system-config-network

就会看到一个图形界面,根据提示选择对应的网卡,对网卡信息进行修改,完成后重新激活即可。

选择网卡

网络配置界面

使用 nmtui 命令( CentOS 7 )

nmtui 命令也是很简单,直接执行后会出现图形界面,按提示操作即可。

nmtui

nmtui

nmtui

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

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

脚本 ping.sh 内容如下:

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
host="172.16.250."
for i in {1..254};do
ping -c 1 -w 1 $host$i &> /dev/null
if [ $? -eq 0 ];then
echo -e "\033[32m$host$i is alive\033[0m"
else
echo -e "\033[31m$host$i is not alive\033[0m"
fi
done

执行结果:

ping.sh 执行结果

由于该网段无存活主机,更换脚本使用现有网段后测试结果为下:

ping.sh 二次执行结果

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

参数说明如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DEVICE :此配置文件对应的设备的名称;(和 IFACE 保持一致)
ONBOOT :在系统引导过程中,是否激活此接口;
UUID :此设备的惟一标识;
IPV6INIT :是否初始化 IPv6
BOOTPROTO :激活此接口时使用什么协议来配置接口属性,常用的有 dhcp 、 bootp 、 static 、 none ;
TYPE :接口类型,常见的有 Ethernet Bridge
DNS1 :第一 DNS 服务器指向;
DNS2 :备用 DNS 服务器指向;
DOMAIN :DNS 搜索域;
IPADDR :IP 地址;
NETMASK :子网掩码; CentOS 7 支持使用 PREFIX 以长度方式指明子网掩码;
GATEWAY :默认网关;
USERCTL :是否允许普通用户控制此设备;
PEERDNS :如果 BOOTPROTO 的值为 dhcp ,是否允许 dhcp server 分配的 dns 服务器指向覆盖本地手动指定的 DNS 服务器指向;默认为允许;
HWADDR :设备的 MAC 地址;
NM_CONTROLLED :是否使用 NetworkManager 服务来控制接口( NetworkManager 服务在 CentOS 6 上还不完善,建议关闭,使用 network 服务已足够。);

具体可查看《Linux 网络属性配置文件详解》。

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

可使用配置别名的方式来配置多个地址。

首先得给标准接口配置增加一个别名配置,别名命名规则为:

1
IFACE_LABEL=IFACE:0, IFACE:1, ...

添加别名接口文件:

1
2
cd /etc/sysconfig/network-scripts
cp ifcfg-IFACE ifcfg-IFACE_LABEL

编辑别名接口文件:

1
vi /etc/sysconfig/network-scripts/ifcfg-IFACE_LABEL

更改如下内容:

1
2
DEVICE=IFACE_LABEL
BOOTPROTO=static # 别名不支持动态获取地址,只有两个选择 static , none ;

保存后重启网络服务即可。

具体可查看《Linux 网络属性配置文件详解》。

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

常用的网络管理类工具的常用参数示例如下。

ifconfig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 显示指定网卡信息

ifconfig eth0

# 显示所有网卡信息

ifconfig -a

# 启用/禁用指定网卡

sudo ifconfig eth0 down
sudo ifconfig eth0 up

# 设置 IP 地址及掩码

sudo ifconfig eth0 10.211.55.18/24

sudo ifconfig eth0 10.211.55.18 netmask 255.255.255.0

route

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查看路由表

route -n

# 添加主机路由

sudo route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

# 添加网络路由

sudo route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

# 添加默认路由

sudo route add default gw 172.16.0.1

# 删除主机路由

sudo route del -host 192.168.1.3

# 删除网络路由

sudo route del -net 192.168.0.0 netmask 255.255.255.0

dig

1
2
3
4
5
6
7
8
9
10
11
# 安装工具包

sudo yum install -y bind-utils

# 正向解析 DNS

dig www.huangzhongzhang.cn

# 反向解析 DNS

dig -x 151.101.25.147

ip

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 禁用接口

ip link set dev eth0 down

# 启用接口

ip link set dev eth0 up

# 显示接口信息

ip link show dev eth0

# 显示主地址

ip addr show dev eth0 primary

# 显示次地址

ip addr show dev eth0 secondary

# 添加IP地址

ip addr add 172.16.100.13/16 dev eth0

# 添加网卡别名

ip addr add 172.16.100.13/16 dev eth0 label 'eth:0'

# 删除别名

ip addr flush dev eth0 label 'eth0:0'

# 添加主路由

ip route add 192.168.1.3 via 172.16.0.1 dev eth0

# 添加网络路由

ip route add 192.168.0.0/16 via 172.16.0.1 dev eth0

# 添加默认路由

ip route add default via 127.16.0.1

# 删除路由

ip route del 192.168.1.3

# 查看路由

ip route show

# 清空路由

ip route flush dev eth0

netstat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 以数字形式显示 TCP 协议相关所有状态

netstat -tan

# 以数字形式显示 UDP 协议相关所有状态

netstat -uan

# 以数字形式显示 TCP 协议相关的监听状态

netstat -tnl

# 以数字形式显示 UDP 协议相关的监听状态

netstat -unl

# 显示内核路由表

netstat -r

# 显示所有接口统计数据

netstat -i

# 显示指定接口信息

netstat -Ieth0

ss

详见《ss 命令简介

聚合图

网络管理工具

图片摘选自:http://www.178linux.com/39163

06-黄中章