面向初学者的 Linux 网络硬件：软件思维
===========================================================

![island network](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/soderskar-island.jpg?itok=wiMaF66b "island network")

> 没有路由和桥接，我们将会成为孤独的小岛，你将会在这个网络教程中学到更多知识。

[Commons Zero][3]Pixabay

上周，我们学习了本地网络硬件知识，本周，我们将学习网络互联技术和在移动网络中的一些很酷的黑客技术。

### 路由器
 
网络路由器就是计算机网络中的一切，因为路由器连接着网络，没有路由器，我们就会成为孤岛。图一展示了一个简单的有线本地网络和一个无线接入点，所有设备都接入到互联网上，本地局域网的计算机连接到一个连接着防火墙或者路由器的以太网交换机上，防火墙或者路由器连接到网络服务供应商（ISP）提供的电缆箱、调制调节器、卫星上行系统……好像一切都在计算中，就像是一个带着不停闪烁的的小灯的盒子。当你的网络数据包离开你的局域网，进入广阔的互联网，它们穿过一个又一个路由器直到到达自己的目的地。

![simple LAN](https://www.linux.com/sites/lcom/files/styles/floated_images/public/fig-1_7.png?itok=lsazmf3- "simple LAN")

*图一：一个简单的有线局域网和一个无线接入点。*
 
路由器可以是各种样式：一个只专注于路由的小巧特殊的小盒子，一个将会提供路由、防火墙、域名服务，以及 VPN 网关功能的大点的盒子，一台重新设计的台式电脑或者笔记本，一个树莓派计算机或者一个 Arduino，体积臃肿矮小的像 PC  Engines 这样的单板计算机，除了苛刻的用途以外，普通的商品硬件都能良好的工作运行。高端的路由器使用特殊设计的硬件每秒能够传输最大量的数据包。它们有多路数据总线，多个中央处理器和极快的存储。（可以通过了解 Juniper 和思科的路由器来感受一下高端路由器书什么样子的，而且能看看里面是什么样的构造。）

接入你的局域网的无线接入点要么作为一个以太网网桥，要么作为一个路由器。桥接器扩展了这个网络，所以在这个桥接器上的任意一端口上的主机都连接在同一个网络中。一台路由器连接的是两个不同的网络。

### 网络拓扑

有多种设置你的局域网的方式，你可以把所有主机接入到一个单独的<ruby>平面网络<rt>flat network</rt></ruby>，也可以把它们划分为不同的子网。如果你的交换机支持 VLAN 的话，你也可以把它们分配到不同的 VLAN 中。

平面网络是最简单的网络，只需把每一台设备接入到同一个交换机上即可，如果一台交换上的端口不够使用，你可以将更多的交换机连接在一起。有些交换机有特殊的上行端口，有些是没有这种特殊限制的上行端口，你可以连接其中的任意端口，你可能需要使用交叉类型的以太网线，所以你要查阅你的交换机的说明文档来设置。

平面网络是最容易管理的，你不需要路由器也不需要计算子网，但它也有一些缺点。它们的伸缩性不好，所以当网络规模变得越来越大的时候就会被广播网络所阻塞。将你的局域网进行分段将会提升安全保障， 把局域网分成可管理的不同网段将有助于管理更大的网络。图二展示了一个分成两个子网的局域网络：内部的有线和无线主机，和一个托管公开服务的主机。包含面向公共的服务器的子网称作非军事区域 DMZ，（你有没有注意到那些都是主要在电脑上打字的男人们的术语？）因为它被阻挡了所有的内部网络的访问。

![LAN](https://www.linux.com/sites/lcom/files/styles/floated_images/public/fig-2_4.png?itok=LpXq7bLf "LAN")

*图二：一个分成两个子网的简单局域网。*

即使像图二那样的小型网络也可以有不同的配置方法。你可以将防火墙和路由器放置在一台单独的设备上。你可以为你的非军事区域设置一个专用的网络连接，把它完全从你的内部网络隔离，这将引导我们进入下一个主题：一切基于软件。

### 软件思维

你可能已经注意到在这个简短的系列中我们所讨论的硬件，只有网络接口、交换机，和线缆是特殊用途的硬件。
其它的都是通用的商用硬件，而且都是软件来定义它的用途。Linux 是一个真实的网络操作系统，它支持大量的网络操作：网关、虚拟专用网关、以太网桥、网页、邮箱以及文件等等服务器、负载均衡、代理、服务质量、多种认证、中继、故障转移……你可以在运行着 Linux 系统的标准硬件上运行你的整个网络。你甚至可以使用 Linux 交换应用（LISA）和VDE2 协议来模拟以太网交换机。

有一些用于小型硬件的特殊发行版，如 DD-WRT、OpenWRT，以及树莓派发行版，也不要忘记 BSD 们和它们的特殊衍生用途如 pfSense  防火墙/路由器，和 FreeNAS 网络存储服务器。

你知道有些人坚持认为硬件防火墙和软件防火墙有区别？其实是没有区别的，就像说硬件计算机和软件计算机一样。

### 端口聚合和以太网绑定

聚合和绑定，也称链路聚合，是把两条以太网通道绑定在一起成为一条通道。一些交换机支持端口聚合，就是把两个交换机端口绑定在一起，成为一个是它们原来带宽之和的一条新的连接。对于一台承载很多业务的服务器来说这是一个增加通道带宽的有效的方式。

你也可以在以太网口进行同样的配置，而且绑定汇聚的驱动是内置在 Linux 内核中的，所以不需要任何其他的专门的硬件。

### 随心所欲选择你的移动宽带

我期望移动宽带能够迅速增长来替代 DSL 和有线网络。我居住在一个有 25 万人口的靠近一个城市的地方，但是在城市以外，要想接入互联网就要靠运气了，即使那里有很大的用户上网需求。我居住的小角落离城镇有 20 分钟的距离，但对于网络服务供应商来说他们几乎不会考虑到为这个地方提供网络。 我唯一的选择就是移动宽带；这里没有拨号网络、卫星网络（即使它很糟糕）或者是 DSL、电缆、光纤，但却没有阻止网络供应商把那些我在这个区域从没看到过的 Xfinity 和其它高速网络服务的传单塞进我的邮箱。

我试用了 AT&T、Version 和 T-Mobile。Version 的信号覆盖范围最广，但是 Version 和 AT&T 是最昂贵的。
我居住的地方在 T-Mobile 信号覆盖的边缘，但迄今为止他们给了最大的优惠，为了能够能够有效的使用，我必须购买一个 WeBoost 信号放大器和一台中兴的移动热点设备。当然你也可以使用一部手机作为热点，但是专用的热点设备有着最强的信号。如果你正在考虑购买一台信号放大器，最好的选择就是 WeBoost，因为他们的服务支持最棒，而且他们会尽最大努力去帮助你。在一个小小的 APP [SignalCheck Pro][8] 的协助下设置将会精准的增强你的网络信号，他们有一个功能较少的免费的版本，但你将一点都不会后悔去花两美元使用专业版。

那个小巧的中兴热点设备能够支持 15 台主机，而且还有拥有基本的防火墙功能。 但你如果你使用像 Linksys WRT54GL这样的设备，可以使用 Tomato、OpenWRT，或者 DD-WRT 来替代普通的固件，这样你就能完全控制你的防护墙规则、路由配置，以及任何其它你想要设置的服务。

--------------------------------------------------------------------------------

via: https://www.linux.com/learn/intro-to-linux/2017/10/linux-networking-hardware-beginners-think-software

作者：[CARLA SCHRODER][a]
译者：[FelixYFZ](https://github.com/FelixYFZ)
校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

[a]:https://www.linux.com/users/cschroder
[1]:https://www.linux.com/licenses/category/used-permission
[2]:https://www.linux.com/licenses/category/used-permission
[3]:https://www.linux.com/licenses/category/creative-commons-zero
[4]:https://www.linux.com/files/images/fig-1png-7
[5]:https://www.linux.com/files/images/fig-2png-4
[6]:https://www.linux.com/files/images/soderskar-islandjpg
[7]:https://www.linux.com/learn/intro-to-linux/2017/10/linux-networking-hardware-beginners-lan-hardware
[8]:http://www.bluelinepc.com/signalcheck/
