From 14842649fbfa8273277241e50a6dd436dead6cb8 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 19 May 2018 10:45:10 +0800 Subject: [PATCH 1/2] PRF:20180222 Linux LAN Routing for Beginners- Part 1.md @qhwdw --- ...Linux LAN Routing for Beginners- Part 1.md | 77 ++++++++++--------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/translated/tech/20180222 Linux LAN Routing for Beginners- Part 1.md b/translated/tech/20180222 Linux LAN Routing for Beginners- Part 1.md index a53252ad6f..00409d9a83 100644 --- a/translated/tech/20180222 Linux LAN Routing for Beginners- Part 1.md +++ b/translated/tech/20180222 Linux LAN Routing for Beginners- Part 1.md @@ -2,13 +2,14 @@ Linux 局域网路由新手指南:第 1 部分 ====== ![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/traffic_warder.jpeg?itok=hZxS_PB4) + 前面我们学习了 [IPv6 路由][1]。现在我们继续深入学习 Linux 中的 IPv4 路由的基础知识。我们从硬件概述、操作系统和 IPv4 地址的基础知识开始,下周我们将继续学习它们如何配置,以及测试路由。 ### 局域网路由器硬件 -Linux 实际上是一个网络操作系统,一直都是,从一开始它就有内置的网络功能。为将你的局域网连入因特网,构建一个局域网路由器比起构建网关路由器要简单的多。你不要太过于执念安全或者防火墙规则,对于处理 NAT 它还是比较复杂的,网络地址转换是 IPv4 的一个痛点。我们为什么不放弃 IPv4 去转到 IPv6 呢?这样将使网络管理员的工作更加简单。 +Linux 实际上是一个网络操作系统,一直都是,从一开始它就有内置的网络功能。要将你的局域网连入因特网,构建一个局域网路由器比起构建网关路由器要简单的多。你不要太过于执念安全或者防火墙规则,对于处理网络地址转换(NAT)它还是比较复杂的,NAT是 IPv4 的一个痛点。我们为什么不放弃 IPv4 去转到 IPv6 呢?这样将使网络管理员的工作更加简单。 -有点跑题了。从理论上讲,你的 Linux 路由器是一个至少有两个网络接口的小型机器。Linux Gizmos 是一个单片机的综合体:[98 个开放规格的目录,黑客友好的 SBCs][2]。你能够使用一个很老的笔记本电脑或者台式计算机。你也可以使用一个精简版计算机,像 ZaReason Zini 或者 System76 Meerkat 一样,虽然这些有点贵,差不多要 $600。但是它们又结实又可靠,并且你不用在 Windows 许可证上浪费钱。 +有点跑题了。从理论上讲,你的 Linux 路由器是一个至少有两个网络接口的小型机器。Linux Gizmos 有一个很大的单板机名单:[98 个开放规格、适于黑客的 SBC 的目录][2]。你能够使用一个很老的笔记本电脑或者台式计算机。你也可以使用一个紧凑型计算机,像 ZaReason Zini 或者 System76 Meerkat 一样,虽然这些有点贵,差不多要 $600。但是它们又结实又可靠,并且你不用在 Windows 许可证上浪费钱。 如果对路由器的要求不高,使用树莓派 3 Model B 作为路由器是一个非常好的选择。它有一个 10/100 以太网端口,板载 2.4GHz 的 802.11n 无线网卡,并且它还有四个 USB 端口,因此你可以插入多个 USB 网卡。USB 2.0 和低速板载网卡可能会让树莓派变成你的网络上的瓶颈,但是,你不能对它期望太高(毕竟它只有 $35,既没有存储也没有电源)。它支持很多种风格的 Linux,因此你可以选择使用你喜欢的版本。基于 Debian 的树莓派是我的最爱。 @@ -16,63 +17,63 @@ Linux 实际上是一个网络操作系统,一直都是,从一开始它就 你可以在你选择的硬件上安装将你喜欢的 Linux 的简化版,因为定制的路由器操作系统,比如 OpenWRT、 Tomato、DD-WRT、Smoothwall、Pfsense 等等,都有它们自己的非标准界面。我的观点是,没有必要这么麻烦,它们对你并没有什么帮助。尽量使用标准的 Linux 工具,因为你只需要学习它们一次就够了。 -Debian 的网络安装镜像大约有 300MB 大小,并且支持多种架构,包括 ARM、i386、amd64、和 armhf。Ubuntu 的服务器网络安装镜像也小于 50MB,这样你就可以控制你要安装哪些包。Fedora、Mageia、和 openSUSE 都提供精简的网络安装镜像。如果你需要创意,你可以浏览 [Distrowatch][3]。 +Debian 的网络安装镜像大约有 300MB 大小,并且支持多种架构,包括 ARM、i386、amd64 和 armhf。Ubuntu 的服务器网络安装镜像也小于 50MB,这样你就可以控制你要安装哪些包。Fedora、Mageia、和 openSUSE 都提供精简的网络安装镜像。如果你需要创意,你可以浏览 [Distrowatch][3]。 ### 路由器能做什么 -我们需要网络路由器做什么?一个路由器连接不同的网络。如果没有路由,那么每个网络都是相互隔离的,所有的悲伤和孤独都没有人与你分享,所有节点只能孤独终老。假设你有一个 192.168.1.0/24 和一个 192.168.2.0/24 网络。如果没有路由器,你的两个网络之间不能相互沟通。这些都是 C 类的私有地址,它们每个都有 254 个可用网络地址。使用 ipcalc 可以非常容易地得到它们的这些信息: +我们需要网络路由器做什么?一个路由器连接不同的网络。如果没有路由,那么每个网络都是相互隔离的,所有的悲伤和孤独都没有人与你分享,所有节点只能孤独终老。假设你有一个 192.168.1.0/24 和一个 192.168.2.0/24 网络。如果没有路由器,你的两个网络之间不能相互沟通。这些都是 C 类的私有地址,它们每个都有 254 个可用网络地址。使用 `ipcalc` 可以非常容易地得到它们的这些信息: + ``` $ ipcalc 192.168.1.0/24 -Address: 192.168.1.0 11000000.10101000.00000001. 00000000 -Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 -Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 +Address: 192.168.1.0 11000000.10101000.00000001. 00000000 +Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 +Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => -Network: 192.168.1.0/24 11000000.10101000.00000001. 00000000 -HostMin: 192.168.1.1 11000000.10101000.00000001. 00000001 -HostMax: 192.168.1.254 11000000.10101000.00000001. 11111110 -Broadcast: 192.168.1.255 11000000.10101000.00000001. 11111111 -Hosts/Net: 254 Class C, Private Internet - +Network: 192.168.1.0/24 11000000.10101000.00000001. 00000000 +HostMin: 192.168.1.1 11000000.10101000.00000001. 00000001 +HostMax: 192.168.1.254 11000000.10101000.00000001. 11111110 +Broadcast: 192.168.1.255 11000000.10101000.00000001. 11111111 +Hosts/Net: 254 Class C, Private Internet ``` -我喜欢 ipcalc 的二进制输出信息,它更加可视地表示了掩码是如何工作的。前三个八位组表示了网络地址,第四个八位组是主机地址,因此,当你分配主机地址时,你将 “掩盖” 掉网络地址部分,只使用剩余的主机部分。你的两个网络有不同的网络地址,而这就是如果两个网络之间没有路由器它们就不能互相通讯的原因。 +我喜欢 `ipcalc` 的二进制输出信息,它更加可视地表示了掩码是如何工作的。前三个八位组表示了网络地址,第四个八位组是主机地址,因此,当你分配主机地址时,你将 “掩盖” 掉网络地址部分,只使用剩余的主机部分。你的两个网络有不同的网络地址,而这就是如果两个网络之间没有路由器它们就不能互相通讯的原因。 -每个八位组一共有 256 字节,但是它们并不能提供 256 个主机地址,因为第一个和最后一个值 ,也就是 0 和 255,是被保留的。0 是网络标识,而 255 是广播地址,因此,只有 254 个主机地址。ipcalc 可以帮助你很容易地计算出这些。 +每个八位组一共有 256 字节,但是它们并不能提供 256 个主机地址,因为第一个和最后一个值 ,也就是 0 和 255,是被保留的。0 是网络标识,而 255 是广播地址,因此,只有 254 个主机地址。`ipcalc` 可以帮助你很容易地计算出这些。 当然,这并不意味着你不能有一个结尾是 0 或者 255 的主机地址。假设你有一个 16 位的前缀: + ``` $ ipcalc 192.168.0.0/16 -Address: 192.168.0.0 11000000.10101000. 00000000.00000000 -Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000 -Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111 +Address: 192.168.0.0 11000000.10101000. 00000000.00000000 +Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000 +Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111 => -Network: 192.168.0.0/16 11000000.10101000. 00000000.00000000 -HostMin: 192.168.0.1 11000000.10101000. 00000000.00000001 -HostMax: 192.168.255.254 11000000.10101000. 11111111.11111110 -Broadcast: 192.168.255.255 11000000.10101000. 11111111.11111111 -Hosts/Net: 65534 Class C, Private Internet - +Network: 192.168.0.0/16 11000000.10101000. 00000000.00000000 +HostMin: 192.168.0.1 11000000.10101000. 00000000.00000001 +HostMax: 192.168.255.254 11000000.10101000. 11111111.11111110 +Broadcast: 192.168.255.255 11000000.10101000. 11111111.11111111 +Hosts/Net: 65534 Class C, Private Internet ``` -ipcalc 列出了你的第一个和最后一个主机地址,它们是 192.168.0.1 和 192.168.255.254。你是可以有以 0 或者 255 结尾的主机地址的,例如,192.168.1.0 和 192.168.0.255,因为它们都在最小主机地址和最大主机地址之间。 +`ipcalc` 列出了你的第一个和最后一个主机地址,它们是 192.168.0.1 和 192.168.255.254。你是可以有以 0 或者 255 结尾的主机地址的,例如,192.168.1.0 和 192.168.0.255,因为它们都在最小主机地址和最大主机地址之间。 -不论你的地址块是私有的还是公共的,这个原则同样都是适用的。不要羞于使用 ipcalc 来帮你计算地址。 +不论你的地址块是私有的还是公共的,这个原则同样都是适用的。不要羞于使用 `ipcalc` 来帮你计算地址。 ### CIDR -CIDR(无类域间路由)就是通过可变长度的子网掩码来扩展 IPv4 的。CIDR 允许对网络空间进行更精细地分割。我们使用 ipcalc 来演示一下: +CIDR(无类域间路由)就是通过可变长度的子网掩码来扩展 IPv4 的。CIDR 允许对网络空间进行更精细地分割。我们使用 `ipcalc` 来演示一下: + ``` $ ipcalc 192.168.1.0/22 -Address: 192.168.1.0 11000000.10101000.000000 01.00000000 -Netmask: 255.255.252.0 = 22 11111111.11111111.111111 00.00000000 -Wildcard: 0.0.3.255 00000000.00000000.000000 11.11111111 +Address: 192.168.1.0 11000000.10101000.000000 01.00000000 +Netmask: 255.255.252.0 = 22 11111111.11111111.111111 00.00000000 +Wildcard: 0.0.3.255 00000000.00000000.000000 11.11111111 => -Network: 192.168.0.0/22 11000000.10101000.000000 00.00000000 -HostMin: 192.168.0.1 11000000.10101000.000000 00.00000001 -HostMax: 192.168.3.254 11000000.10101000.000000 11.11111110 -Broadcast: 192.168.3.255 11000000.10101000.000000 11.11111111 -Hosts/Net: 1022 Class C, Private Internet - +Network: 192.168.0.0/22 11000000.10101000.000000 00.00000000 +HostMin: 192.168.0.1 11000000.10101000.000000 00.00000001 +HostMax: 192.168.3.254 11000000.10101000.000000 11.11111110 +Broadcast: 192.168.3.255 11000000.10101000.000000 11.11111111 +Hosts/Net: 1022 Class C, Private Internet ``` 网络掩码并不局限于整个八位组,它可以跨越第三和第四个八位组,并且子网部分的范围可以是从 0 到 3,而不是非得从 0 到 255。可用主机地址的数量并不一定是 8 的倍数,因为它是由整个八位组定义的。 @@ -81,7 +82,7 @@ Hosts/Net: 1022 Class C, Private Internet 从 [理解 IP 地址和 CIDR 图表][4]、[IPv4 私有地址空间和过滤][5]、以及 [IANA IPv4 地址空间注册][6] 开始。接下来的我们将学习如何创建和管理路由器。 -通过来自 Linux 基金会和 edX 的免费课程 ["Linux 入门" ][7]学习更多 Linux 知识。 +通过来自 Linux 基金会和 edX 的免费课程 [“Linux 入门”][7]学习更多 Linux 知识。 -------------------------------------------------------------------------------- @@ -89,7 +90,7 @@ via: https://www.linux.com/learn/intro-to-linux/2018/2/linux-lan-routing-beginne 作者:[Carla Schroder][a] 译者:[qhwdw](https://github.com/qhwdw) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 005ef1f809a221bb8c966a25ce6fb70df1a7234f Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 19 May 2018 10:45:37 +0800 Subject: [PATCH 2/2] PUB:20180222 Linux LAN Routing for Beginners- Part 1.md @qhwdw https://linux.cn/article-9657-1.html --- .../20180222 Linux LAN Routing for Beginners- Part 1.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20180222 Linux LAN Routing for Beginners- Part 1.md (100%) diff --git a/translated/tech/20180222 Linux LAN Routing for Beginners- Part 1.md b/published/20180222 Linux LAN Routing for Beginners- Part 1.md similarity index 100% rename from translated/tech/20180222 Linux LAN Routing for Beginners- Part 1.md rename to published/20180222 Linux LAN Routing for Beginners- Part 1.md