热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux路由器

在tcpip网络中,路由是一个非常重要的概念,所谓路由,就是通过互联的网络把信息从原地址传输到目的地址。路由表路由表通常包含目标,网络掩码(Genmask),网关(GateWay)

在tcp/ip网络中,路由是一个非常重要的概念,所谓路由,就是通过互联的网络把信息从原地址传输到目的地址。

路由器的原理

路由器的原理非常的复杂。一般情况下,网络中的主机,路由器和交换机都具有路由的功能。这些设备收到数据包之后,要根据IP数据包的目标地址,决定选择

那个网络接口把数据包传送出去。如果路由器的某个网络接口与IP数据包的目的主机位于同一个局域网,则可以直接通过该接口把数据包传送到目的主机;如果目的主机

与路由器不位于同一个局域网中,则路由器会根据目的地址来选择另一台合适的路由器,再从某个网络接口把数据包发送出去。

注意:由于路由是在网络层的功能,所以只有工作在网络层的交换机才具有路由功能。只能工作在数据链路层的交换机不具有路由功能!

路由表

路由表通常包含目标,网络掩码(Genmask),网关(GateWay),接口(Iface)以及跃点数等内容。其中目标可以是目标主机,子网地址,网络地址或者默认路由。通常情况下,默认路由的目标为

0.0.0.0。当所有的路由都不匹配时,数据包将被转发给默认路由。

网络掩码和目标主机配合使用。例如,主机路由的掩码为255.255.255.255,默认路由的掩码为0.0.0.0,子网或者网络地址的掩码位于这两者之间,其中,掩码255.255.255.255

表示只有精确匹配的目标才使用此路由;掩码0.0.0.0表示任何目标都可以使用此路由。

网关是数据包需要发送到下一个路由器的ip地址。接口表明用于接通下一个路由器的网络接口。跃点数(Metric)表明使用此路由到达目标的相对成本。如果有

多个相同目标位置的路由,则跃点数最低的路由为最佳路由。

技术分享

系统管理员可以通过两种方法来配置路由表,分别为静态路由和动态路由。静态路由由系统管理员手工或者通过route命令对路由表进行配置,它不会随着网络结构

的改变而改变。动态路由是由主机上面的某一进程通过与其他主机或者路由器交换信息而后对路由表进行自动更新,他会根据网络系统的运行情况而动态进行调整。

配置网路接口地址

常用的方式有两种ifconfig命令和直接修改网络接口的配置文件。

route命令用来查看系统中路由表信息,以及添加,删除静态路由记录。直接执行route命令可以查看当前主机中的路由表信息。

route命令不仅可以用于查看路由表的信息,还可以添加,删除静态路由表条目,其中当然也包括设置默认网关地址。

man route部分示意图:

route [-CFvnee]

route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N]
[mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]

route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N]
[[dev] If]

route [-V] [--version] [-h] [--help]

其中-net选项来指定目标网段地址,host则用来指定目标主机的地址,target表示目标网络或者主机。netmask表示子网掩码,当target选项指定了

一个目标网络时,需要使用子网掩码来配合使用。gw表示网关地址,dev选项表示将该路由条目与某个网络接口绑定在一起。

在当前系统的路由表中添加一项静态路由信息。

技术分享

在上面的命令中,首先使用add子命令增加一条目标为192.168.255.130的路由信息,与该主机通信需要通过网关192.168.255.2,然后使用route

命令输出系统路由表,从输出结果可以得知该路由信息添加成功。

如果想要删除路由条目,则可以使用del子命令

技术分享

可以看出删除成功了!!!

默认网关记录是一条特殊的静态路由条目,如果目的地址不匹配所有的路由条目,则通过默认网关发送。

普通客户机的路由设置

如果某台linux主机并不充当路由器的功能,仅仅提供某些网络服务,则路由配置非常简单。在这种情况下,一般只需要两条路由即可,其中一条是到

本地子网的路由,另一条是默认路由。前者用于与同一子网的主机通信,后者则负责所有不发送到本地子网的数据包。这也是用户在使用route命令查看本地路由表经常见到的情况。

linux路由器配置实例

在本节中,以一个具体的例子来说明如何配置linux主机,实现网络之间的路由功能。

下图描述了3个子网之间的连接,其中linux主机拥有3个网路接口,其IP地址分别为192.168.1.2, 10.10.1.1和10.10.2.1,同时,这三个网络接口分别与子网192.168.1.0/24

,10.10.1.0/24,和10.10.2.0/24相连接。

技术分享

尽管这三个子网在物理上是相同的,但是如果没有添加路由的话,任然无法实现他们之间的数据交换,为了实现数据的交换,系统管理员应该在linux主机中添加以下三个

路由条目。

#route add -net 192.168.1.0/24 eth0

#route add -net 10.10.1.0/24 eth1

#route add -net 10.10.2.0/24 eth3

有了上面的静态路由后,当有了目标网络为10.10.1.0/24的数据包时,linux主机就知道需要从网络接口eth1转发,同理目标网络为10.10.2.0/24的数据包需要从网络接口eth2

转发,而目标为网络192.168.1.0/24的数据包需要从网络接口eth0转发。

linux路由器


推荐阅读
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍如何通过 JavaScript 实现一个基于鼠标坐标的 Tooltip 弹出层,详细解释了如何获取窗口和文档的尺寸及滚动位置,并优化了代码结构。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 落樱3D v0.5是一款在Android平台上发布的3D美少女格斗游戏,本次更新带来了多项新功能和优化。 ... [详细]
  • 回顾2014年,我经历了多个重要项目和学习阶段,取得了一定的成绩。新的一年即将到来,希望能在更多项目实践中继续成长。 ... [详细]
  • HDU 1394:线段树优化求解逆序对问题
    本文介绍如何使用线段树高效求解排列中的逆序对问题。通过单点增减和区间求和操作,线段树能够快速处理此类问题,并提供了一种替代树状数组的解决方案。 ... [详细]
  • 本文介绍了如何使用Java中的同步方法和同步代码块来实现两个线程的交替打印。一个线程负责打印1到52的数字,另一个线程负责打印A到Z的字母,确保输出顺序为12A34B...5152Z。 ... [详细]
author-avatar
军长长军765
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有