Linux 局域网路由新手指南:第 2 部分

简介:

VirtualBox 和 KVM 是测试路由的好工具,在本文中的所有示例都是在 KVM 中执行的。如果你喜欢使用物理硬件去做测试,那么你需要三台计算机:一台用作路由器,另外两台用于表示两个不同的网络。你也需要两台以太网交换机和相应的线缆。

我们假设这个示例是一个有线以太局域网,为了更符合真实使用场景,我们将假设有一些桥接的无线接入点,当然我并不会使用这些无线接入点做任何事情。(我也不会去尝试所有的无线路由器,以及使用一个移动宽带设备连接到以太网的局域网口进行混合组网,因为它们需要进一步的安装和设置)

网段

最简单的网段是两台计算机连接在同一个交换机上的相同地址空间中。这样两台计算机不需要路由器就可以相互通讯。这就是我们常说的术语 —— “广播域”,它表示所有在相同的网络中的一组主机。它们可能连接到一台单个的以太网交换机上,也可能是连接到多台交换机上。一个广播域可以包括通过以太网桥连接的两个不同的网络,通过网桥可以让两个网络像一个单个网络一样运转。无线访问点一般是桥接到有线以太网上。

一个广播域仅当在它们通过一台网络路由器连接的情况下,才可以与不同的广播域进行通讯。

简单的网络

以下示例的命令并不是永久生效的,重启之后你所做的改变将会消失。

一个广播域需要一台路由器才可以与其它广播域通讯。我们使用两台计算机和 ip 命令来解释这些。我们的两台计算机是 192.168.110.125 和 192.168.110.126,它们都插入到同一台以太网交换机上。在 VirtualBox 或 KVM 中,当你配置一个新网络的时候会自动创建一个虚拟交换机,因此,当你分配一个网络到虚拟虚拟机上时,就像是插入一个交换机一样。使用 ip addr show 去查看你的地址和网络接口名字。现在,这两台主机可以互 ping 成功。

现在,给其中一台主机添加一个不同网络的地址:

 
  1. # ip addr add 192.168.120.125/24 dev ens3

你可以指定一个网络接口名字,在示例中它的名字是 ens3。这不需要去添加一个网络前缀,在本案例中,它是 /24,但是显式地添加它并没有什么坏处。你可以使用 ip 命令去检查你的配置。下面的示例输出为了清晰其见进行了删减:

 
  1. $ ip addr show
  2. ens3:
  3. inet 192.168.110.125/24 brd 192.168.110.255 scope global dynamic ens3
  4. valid_lft 875sec preferred_lft 875sec
  5. inet 192.168.120.125/24 scope global ens3
  6. valid_lft forever preferred_lft forever

主机在 192.168.120.125 上可以 ping 它自己(ping 192.168.120.125),这是对你的配置是否正确的一个基本校验,这个时候第二台计算机就已经不能 ping 通那个地址了。

现在我们需要做一些网络变更。添加第三台主机作为路由器。它需要两个虚拟网络接口并添加第二个虚拟网络。在现实中,你的路由器必须使用一个静态 IP 地址,但是现在,我们可以让 KVM 的 DHCP 服务器去为它分配地址,所以,你仅需要两个虚拟网络:

  • 第一个网络:192.168.110.0/24
  • 第二个网络:192.168.120.0/24

接下来你的路由器必须配置去转发数据包。数据包转发默认是禁用的,你可以使用 sysctl 命令去检查它的配置:

 
  1. $ sysctl net.ipv4.ip_forward
  2. net.ipv4.ip_forward = 0

0 意味着禁用,使用如下的命令去启用它:

 
  1. # echo 1 > /proc/sys/net/ipv4/ip_forward

接下来配置你的另一台主机做为第二个网络的一部分,你可以通过将原来在 192.168.110.0/24 的网络中的一台主机分配到 192.168.120.0/24 虚拟网络中,然后重新启动两个 “连网的” 主机,注意不是路由器。(或者重启动主机上的网络服务;我年龄大了还有点懒,我记不住那些重启服务的奇怪命令,还不如重启主机来得干脆。)重启后各台机器的地址应该如下所示:

  • 主机 1: 192.168.110.125
  • 主机 2: 192.168.120.135
  • 路由器: 192.168.110.126 和 192.168.120.136

现在可以去随意 ping 它们,可以从任何一台计算机上 ping 到任何一台其它计算机上。使用虚拟机和各种 Linux 发行版做这些事时,可能会产生一些意想不到的问题,因此,有时候 ping 的通,有时候 ping 不通。不成功也是一件好事,这意味着你需要动手去创建一条静态路由。首先,查看已经存在的路由表。主机 1 和主机 2 的路由表如下所示:

 
  1. $ ip route show
  2. default via 192.168.110.1 dev ens3 proto static metric 100
  3. 192.168.110.0/24 dev ens3 proto kernel scope link src 192.168.110.164 metric 100
  4. $ ip route show
  5. default via 192.168.110.1 dev ens3 proto static metric 100
  6. default via 192.168.120.1 dev ens3 proto static metric 101
  7. 169.254.0.0/16 dev ens3 scope link metric 1000
  8. 192.168.110.0/24 dev ens3 proto kernel scope link
  9. src 192.168.110.126 metric 100
  10. 192.168.120.0/24 dev ens9 proto kernel scope link
  11. src 192.168.120.136 metric 100

这显示了我们使用的由 KVM 分配的缺省路由。169.* 地址是自动链接的本地地址,我们不去管它。接下来我们看两条路由,这两条路由指向到我们的路由器。你可以有多条路由,在这个示例中我们将展示如何在主机 1 上添加一个非默认路由:

 
  1. # ip route add 192.168.120.0/24 via 192.168.110.126 dev ens3

这意味着主机 1 可以通过路由器接口 192.168.110.126 去访问 192.168.110.0/24 网络。看一下它们是如何工作的?主机 1 和路由器需要连接到相同的地址空间,然后路由器转发到其它的网络。

以下的命令去删除一条路由:

 
  1. # ip route del 192.168.120.0/24

在真实的案例中,你不需要像这样手动配置一台路由器,而是使用一个路由器守护程序,并通过 DHCP 做路由器通告,但是理解基本原理很重要。接下来我们将学习如何去配置一个易于使用的路由器守护程序来为你做这些事情。


原文发布时间为:2018-05-24

本文作者:CARLA SCHRODER

本文来自云栖社区合作伙伴“Linux中国开源社区”,了解相关信息可以关注“Linux中国开源社区”。

相关文章
|
7月前
|
Linux
如何在 Linux 上添加路由?
如何在 Linux 上添加路由?
487 1
|
4月前
|
Linux Apache
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
533 0
|
4天前
|
Ubuntu 网络协议 Linux
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
28 0
|
9月前
|
Linux
【linux】解决软路由内部服务器无法访问外网的问题
【linux】解决软路由内部服务器无法访问外网的问题
376 0
|
存储 运维 安全
2.17 新手必看的Linux服务器管理和维护注意事项
本节介绍有关服务器管理和维护过程中的一些注意事项,都是笔者的经验之谈,相信对新手会有一定的启发和帮助。 很多初学者接触Linux 时间不长,还未完整地学习一遍 Linux,理解本节内容可能有些困难,可以先跳过本节,阅读完整套教程后再回过头来阅读。
716 0
2.17 新手必看的Linux服务器管理和维护注意事项
|
网络协议 Linux
【趣谈网络协议】工具篇:如何在Linux上添加路由
【趣谈网络协议】工具篇:如何在Linux上添加路由
91 0
【趣谈网络协议】工具篇:如何在Linux上添加路由
|
算法 Linux Shell
Linux 基础-新手必备命令
Linux 基础-新手必备命令
159 0
|
Linux 网络架构
Linux Command route 路由
Linux Command route 路由
Linux Command route 路由
|
域名解析 网络协议 小程序
Linux Command traceroute 路由追踪
Linux Command traceroute 路由追踪
Linux Command traceroute 路由追踪
|
运维 安全 Linux
新手必会的Linux常用系统状态检测命令
last命令用于查看所有系统的登录记录,格式为“last [参数]” 使用last命令可以查看本机的登录记录。但是,由于这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵!
236 0
新手必会的Linux常用系统状态检测命令