TranslateProject/translated/tech/20210420 A beginner-s guide to network management.md
2021-05-07 16:34:32 +08:00

11 KiB
Raw Blame History

面向初学者的网络管理

学习网络如何工作以及使用开源工具进行网络性能调优。

Tips and gears turning

大多数人每一天至少会接触到两种类型的网络。当你打开计算机或者移动设备设备连接到本地WIFI本地WIFI然后连接到互联网"the internet"。

但是网络实际上是如何工作的?你的设备如何能够找到网络、共享打印机或文件共享?这些东西如何知道响应你的设备?系统管理员用什么措施来优化网络的性能?

开源思想在网络技术领域根深蒂固,因此任何想更多了解网络的人,可以免费获得网络相关的资源。本文使用开源技术介绍了网络管理相关的基础技术。

网络是什么?

网络指的是两台或者多台电脑互相通信为了使得网络能够工作一台电脑必须能够找到其他电脑为了解决这个问题两种不同的通信协议被定义TCP和IP。

TCP传输协议

为了使得计算机之间能够通信,必须要有一种传输介质来帮助通信。人说话产生的声音通过声波来传递,计算机通过以太网电缆、无线电波或微波传输的数字信号进行通信。这方面的规范被正式定义为TCP协议

IP寻址

计算机必须有一些识别手段才能相互寻址。当人类相互称呼时,我们使用名字和代名词。 当计算机相互寻址时它们使用IP地址192.168.0.1IP地址可以被映射到名称上如笔记本电脑、桌面、Tux或者企鹅。这种规范定义为IP协议

最小配置设置

最简单的网络是两台计算机的网络,使用特殊布线方式的以太网电缆——交叉电缆。一条交叉电缆将来自一台计算机的信号连接并传输到另一台计算机上的相应受体。还有一些交叉适配器可以将标准的以太网转换为交叉电缆。

Crossover cable

(Seth Kenlon, CC BY-SA 4.0)

由于计算机之间没有路由器,所有的网络管理都必须在每台机器上手动完成,因此这是一个很好的网络基础知识的入门练习。

用一根交叉电缆你可以把两台计算机连接在一起。因为这两台计算机是直接连接的没有网络控制器提供指导所以这两台计算机现在什么事情也没有做即没有创建一个网络也没有加入任何网络。通常情况下这项任务会由交换机和DHCP服务器或路由器来提示但在这个简单的网络设置中这一切都由你负责。

创建一个网络你必须先为每台计算机分配一个IP地址自分配的保留地址从169.254开始这是一个约定俗成的方式提醒你本IP段是一个闭环系统。

找寻网络接口

首先,你必须知道你正在使用什么网络接口。以太网端口通常用 "eth"加上一个从 0 开始的数字来指定,但有些设备用不同的术语来表示接口。你可以用ip命令来查询计算机上的接口。

$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
    link/loopback 00:00:00:00:00:00 brd ...
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
    link/ether dc:a6:32:be:a3:e1 brd ...
3: wlan0: <BROADCAST,MULTICAST> ...
    link/ether dc:a6:32:be:a3:e2 brd ...

在这个例子中,eth0是正确的接口名称。然而,在某些情况下,你会看到en0enp0s1或类似的东西,所以在使用设备名称之前,一定要先检查它。

分配IP地址

通常情况下IP地址从路由器获得的路由器在网络上广播提供地址。当一台计算机连接到一个网络时它请求一个地址。路由器通过媒体访问控制(MAC)地址识别设备注意这个Mac与苹果Mac电脑无关并被分配IP地址。这就是计算机在网络上找到彼此的方式。

在本文的简单网络中没有路由器来分配IP地址以及登记设备因此我们需要手动分配IP地址使用 ip 命令来给计算机分配IP地址

`$ sudo ip address add 169.254.0.1 dev eth0`

给另外一台计算机分配IP地址将IP地址号增1

`$ sudo ip address add 169.254.0.2 dev eth0`

现在计算机有了交叉电缆作为通信介质有了独一无二的IP地址用来识别身份。但是这个网络还缺少一个重要成分计算机不知道自己是网络的一部分。

设置路由

路由器另外的一个功能是设置从一个地方到另一个地方的网络路径,称作路由表,路由表可以简单的看作网络的城市地图。

虽然现在我们还没有设置路由表,但是我们可以通过route命令来查看路由表:

$ route
Kernel IP routing table
Destination | Gateway | Genmask | Flags|Metric|Ref | Use | Iface
$

同样,你可以通过ip命令来查看路由表:

$ ip route
$

通过ip命令添加一条路由信息:

$ sudo ip route \
add 169.254.0.0/24 \
dev eth0 \
proto static

这条命令为eth0接口添加一个地址范围(从169.254.0.0开始到169.254.0.255结束)的路由。它将路由协议设置为 静态,表示作为管理员的你创建了这个路由,作为对该范围内的任何动态路由进行覆盖。

通过route命令来查询路由表:

$ route
Kernel IP routing table
Destination | Gateway | Genmask       | ... | Iface
link-local  | 0.0.0.0 | 255.255.255.0 | ... | eth0

或者使用ip命令从不同角度来查询路由表:

$ ip route
169.254.0.0/24 dev eth0 proto static scope link

探测相邻网络

通过之前的介绍,我们的网路有了传输介质,寻址方法以及网络路由。你可以联系到你的计算机以外的主机。向另一台计算机发送的最简单的信息是 ping,这也是产生该信息的命令的名称。

$ ping -c1 169.254.0.264 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms\--- 169.254.0.2 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms

你可以通过下面的命令查询与你交互的邻居:

$ ip neighbour169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE

通过交换机扩展你的网络

只有双节点的网络的需求并不多。 为了解决这个问题,人们开发了特殊的硬件,称为网络交换机。网络交换机允许你将几条以太网电缆连接到它上面它将消息不加区分地从发送消息的计算机分发到交换机上所有监听的计算机。除了拥有与预期接收者相匹配的IP地址的计算机外其他所有计算机都会忽略该信息。这使得网络变得相对嘈杂但这是物理上将一组计算机连接在一起的简单方法。

在大多数现代家庭网络中用于物理电缆的物理交换机并不实用。所以WiFi接入点代替代替了物理交换机。WiFi接入点的功能与交换机相同它允许许多计算机连接到它并在它们之间传递信息。

接入互联网不仅仅是一种期望它通常是家庭网络存在的原因。没有接入互联网的交换机或WiFi接入点不是很有用但要将你的网络连接到另一个网络你需要一个路由器。

添加路由器

实际上,局部网络连接了许多设备,并且越来越多的设备具备联网能力,使得网络的规模呈数量级级别增长。

手动配置网络是不切实际的因此这些任务分配给网络中特定的节点来处理网络中每台计算机运行一个后台守护进程填充从网络上的权威服务器收到的网络设置。家庭网络中这些工作通常被整合到一个小型嵌入式设备中通常由你的互联网服务提供商ISP提供称为路由器(人们有时错误地将其称为调制解调器)。在一个大型网络中,每项工作通常被分配到一个单独的专用服务器上,以确保专用服务器能够专注于自己的工作以及保证工作弹性。这些任务包括:

  • DHCP服务器为加入网络的设备分配和跟踪IP地址
  • DNS服务器将诸如域名 红帽转换成IP地址209.132.183.105
  • 防火墙保护网络不受未知流量涌入攻击,或者禁止本地网络流量流出
  • 路由器有效传输网络流量作为其他网络如互联网的网关并进行网络地址转换NAT

你现在的网络上可能有一个路由器它可能管理着所有这些任务甚至可能更多。感谢像VyOS这样的项目现在你可以运行自己的开源路由器。对于这样一个项目你应该使用一台专门的计算机至少有两个网络接口控制器NIC一个连接到你的ISP另一个连接到交换机或者更有可能是一个WiFi接入点。

扩大知识规模

无论你的网络上有多少设备,或你的网络连接到多少其他网络,其原则仍然与你的双节点网络相同。你需要一种传输方式,一种寻址方案,以及如何路由到网络。

网络知识小抄

了解网络是如何运作的,对管理网络至关重要。除非你了解你的测试结果,否则你无法排除问题,除非你知道哪些命令能够与你的网络设备交互,否则你无法运行测试。对于重要的网络命令的基本用法以及你可以用它们提取什么样的信息,下载我们最新的网络小抄


via: https://opensource.com/article/21/4/network-management

作者:Seth Kenlon 选题:lujun9972 译者:ddl-hust 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出