热门标签 | 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路由器


推荐阅读
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 探索OpenWrt中的LuCI框架
    本文深入探讨了OpenWrt系统中轻量级HTTP服务器uhttpd的工作原理及其配置,重点介绍了LuCI界面的实现机制。 ... [详细]
  • 本文深入分析了在使用JavaScript中的Date.UTC()方法初始化Date对象时,getDay()方法返回值与预期不符的原因,并提供了相应的解决方案。 ... [详细]
  • 本文详细介绍了JavaScript中数组的转换方法、栈方法、队列方法、重排序方法及操作方法,包括toLocaleString()、toString()、valueOf()等基本转换方法,以及push()、pop()、shift()、unshift()等用于模拟栈和队列行为的方法。 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 使用REM和媒体查询实现响应式布局
    本文介绍如何利用REM单位和媒体查询(Media Queries)来创建适应不同屏幕尺寸的网页布局。通过具体示例,展示在不同屏幕宽度下如何调整页面元素的样式。 ... [详细]
  • SPFA算法详解与应用
    当图中包含负权边时,传统的最短路径算法如Dijkstra不再适用,而Bellman-Ford算法虽然能解决问题,但其时间复杂度过高。SPFA算法作为一种改进的Bellman-Ford算法,能够在多数情况下提供更高效的解决方案。本文将详细介绍SPFA算法的原理、实现步骤及其应用场景。 ... [详细]
  • 本文详细对比了HashMap和HashTable在多线程环境下的安全性、对null值的支持、性能表现以及方法同步等方面的特点,帮助开发者根据具体需求选择合适的数据结构。 ... [详细]
  • 神策数据分析基础
    本文介绍了基于用户行为的数据分析方法,包括业务问题的提出与定义、具体行为的识别及统计分析流程。同时,详细阐述了如何利用事件模型(Event Model)来描述用户行为,以及在实际应用中的案例分析。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文列举了构建和运行 Struts2 应用程序所需的核心 JAR 文件,包括文件上传、日志记录、模板引擎等关键组件。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • 本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
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社区 版权所有