路由_路由器 - CSDN
路由 订阅
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 [1]  。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。 展开全文
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 [1]  。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
信息
外文名
routing
概    念
工程术语
特    点
高效简单
中文名
路由
原理算法
确定最佳路径
路由概念
1、路由是指路由器从一个接口上收到数据包,根据数据 包的目的地址进行定向并转发到另一个接口的过程。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功。究其主要原因是七十年代的网络普遍很简单,发展到后来大型的网络才较为普遍。2、工程术语。指道路情况,包括道路宽度、深度、方向等信息。
收起全文
精华内容
参与话题
  • 路由的概念

    千次阅读 2019-04-14 21:30:17
    在路由表中,一条路由信息也被称为一个路由项或一个路由条目。路由表只存在于终端计算机和路由器(和三层交换机)中,二层交换机中时不存在路由表的。 在路由表中,每一行就是一条路由条目(或一个路由表项、一个...

    一。路由的概念

    在网络通信中,“路由”是一个网络层的术语。它是指从某一网络设备出发去往某个目的地的路径;路由表则是若干条路由信息的一个集合体。在路由表中,一条路由信息也被称为一个路由项或一个路由条目。路由表只存在于终端计算机和路由器(和三层交换机)中,二层交换机中时不存在路由表的。

    在路由表中,每一行就是一条路由条目(或一个路由表项、一个路由条目)。通常情况下,一条路由信息由三个要素组成:目的地/掩码(Destination/Mask)出接口( Interface)下一跳IP地址(NextHop  )

    (1)目的地/掩码:如果目的地/掩码中的掩码长度为32,则目的地将是一个主机接口地址,否则目的地将是一个网络地址。通常情况下,总说一个路由项的目的地是一个网络地址(即:目的网络地址),把主机接口地址看成目的地的一种特殊情况。

    (2)出接口:指该路由表项中所包含的数据内容应该从哪个接口发送出去;

    (3)下一跳IP地址:如果一个路由表项的下一跳IP地址与出接口的IP地址相同,则表示出接口已经直连到了该路由项所指的目的网络。注意:下一跳IP地址所对应的那个主机接口与出接口一定位于同一个二层网络(二层广播域)中

    1.路由器进行IP路由表查询工作的过程:

    (1)当路由器的IP转发模块接收到一个IP报文时,路由器会根据这个IP报文的目的IP地址来进行IP路由表的查询工作。

    (2)将这个IP报文的目的IP地址与IP路由表的所有路由项逐一进行匹配。(进行逐位“与”运算)

    当一个IP报文同时匹配上了多个路由项时,路由器会根据“最长掩码匹配”原则来确定出一条最优的路由,并根据最优路由来进行IP报文的转发。路由器总是根据最优路由来进行IP报文的转发操作。

    计算机也会进行IP路由表的查询工作。当计算机的网络层封装好了待转发的IP报文后,就会根据IP报文的目的IP地址去查询自己的IP路由表,过程与路由器的工作过程完全一样。

    二。路由信息的生成

    路由信息的生成方式总共有三种:设备自动发现、手工配置、通过动态路由协议生成

    (1)直连路由:指设备自动发现的路由信息。

    **在网络设备启动后,当设备接口的状态为Up时,设备就会自动的发现去往与自己的接口直接相连的网络的路由。某一网络是与某台网络设备的某个接口直接相连(直连)时:指这台设备的这个接口已经位于这个网络中;某一网络:指某个二层网络(二层广播域)。

    **所谓的某一网络是与某台设备直接相连(直连)的时候,是指这个网络是与这个设备的某个接口直接相连的。

    **直连路由的Protocol属性为Direct,其Cost的值总为0。

    **手工配置的静态路由的明显缺点是:不具备自适应性即当网络发生故障或网络结构发生改变而导致相应的静态路由发升错误或失效时,必须手工对这些静态路由进行修改。

    (2)静态路由(Static Route):指手工配置的路由信息。

    **静态路由的Protocol属性为Static,表示是一条静态路由;其Cost的值可以人为设定

    3)动态路由(Dynamic Route):指网络设备通过运行动态路由协议而得到的路由信息。

    **网络设备可以自动发现去往与自己相连的网络的路由,也可以通过手工配置的方式“告知”网络设备去往哪些非直连的网络的路由。但是会相当的耗费人力。

    **一台路由器可以同时运行多种路由协议。而每种路由协议都会存在专门的路由表来存放该协议下发现的路由表项。最后通过一些优先筛选法,某些路由协议的路由表中的某些路由表项会被加入到IP路由表中,而路由器最终会根据IP路由表拉进行IP报文的转发工作。

    **计算机是不运行任何路由协议的;计算机上只有一个IP路由表

    三。路由的优先级

    (1)不同来源的路由规定了不同的优先级,并规定优先级的值越小,则路由的优先级就越高

    (2)当存在多条目的地/掩码相同,但来源不同的路由时,则具有最高优先级的路由便会成为最优路由,并加入到IP路由表中;其他路由则处于未激活状态,是不显示在IP路由表中的

    路由来源 优先级的缺省值
    直连路由 0
    OSPF 10
    静态路由 60
    RIP 100
    BGP 255

    四。路由的开销

    (1)一条路由的开销:指到达这条路由的目的地/掩码需要付出的代价值。同一种路由协议发现多条路由可以到达同一目的地/掩码时,将优选开销值最小的路由,即只把开销值最小的路由加入本协议的路由表中。

    (2)不同的路由协议对于开销的具体定义是不同的;RIP协议只将“跳数”作为开销。“跳数”指到达目的地/掩码需要经过的路由器的个数。

    (3)等价路由:指同一种路由协议发现的两条路由可以到达同一目的地/掩码的,且路由的开销相等的路由。

    (4)负载分担:在等价路由情况下,当这两条路由都被加入到路由器的路由表中时,那么当流量进行转发的时候,一部分流量会根据第一条路由来进行转发,另一部分流量会根据第二条路由来进行转发。

    如果一台路由器同时运行了多种路由协议,并且对于同一目的地/掩码,每一种路由协议都发现了一条或多条路由,在这种情况下,每一种路由协议都会根据开销值的比较情况在自己所发现的若干条路由中确定出最优路由,并将最优路由放进本协议的路由表中。然后,不同的路由协议所确定出的最优路由之间再进行路由优先级的比较,优先级最高的路由才能作为去往目的地/掩码的路由,而加入到该路由器的IP路由表中。

    注意:如果该路由上还存在去往目的地/掩码的直连路由或静态路由,将在优先级比较的时候考虑其中,选出优先级最高的路由加入到IP路由表中。

    五。默认路由

    默认路由:指目的地/掩码为0.0.0.0/0的路由。

    (1)动态默认路由:指默认路由是由路由协议产生的;

    (2)静态默认路由:指默认路由是由手工配置而生成的。

    默认路由是一种非常特殊的路由,任何一个待发送或待转发的IP报文都可以和默认路由匹配的上。

    **计算机或路由器的IP路由表中可能存在默认路由,也可能不存在。若网络设备的IP路由表中存在默认路由,当一个待发送或待转发的IP报文不能匹配IP路由表中的任何非默认路由时,会根据默认路由来进行发送或转发;若网络设备的IP路由表中不存在默认路由,当一个待发送或待转发的IP报文不能匹配IP路由表中的任何路由时,就会将IP报文直接丢弃。

    六。计算机上的路由表和路由器上的路由表

    (1)计算机上是不运行任何路由协议的,所以计算机的IP路由表中的路由不是直连路由就是手工配置的静态路由,或者是计算机的操作系统替我们配置出的各种路由;

    (2)路由器的IP路由表中的路由可以是直连路由、静态路由,但是更多的是通过运行路由协议获得的动态路由。

    (3)路由器上除了存在的IP路由表外,还存在着为每个运行的路由协议专门创建并维护的路由表。

     

     

     

    展开全文
  • 路由是什么

    万次阅读 多人点赞 2018-09-24 17:59:52
    言归正传,本文站在初学者的角度,尽量通俗的讲解什么是路由,它有什么作用。 如下网络拓扑图,交换机0所在的网段为192.168.1.0/24,交换机1所在网段为192.168.2.0/24,且各自有2台主机: 假设192.168.1.10/32的PC0...

    中秋节公司放假3天,第一天去公司加班,第二天宅了一天,今天第三天,也是中秋节,还是继续宅着…

    言归正传,本文站在初学者的角度,尽量通俗的讲解什么是路由,它有什么作用。

    如下网络拓扑图,交换机0所在的网段为192.168.1.0/24,交换机1所在网段为192.168.2.0/24,且各自有2台主机:
    在这里插入图片描述

    假设192.168.1.10/32的PC0要跟192.168.2.11/32的PC4通信,如何实现?
    在这里插入图片描述

    中间就需要一个路由器的东西。我们知道,PC0发出的数据包的目的地址是跨网段的,也就是需要出网关。网关是数据包出所在网段的出口。网关地址一般是所在网段的前一两个地址,且网关一般都集成在路由器中,称为下一跳

    子网中的每一台主机都需要配置好默认网关,即下一跳:PC0的默认网关为192.168.1.1/32、PC4的默认网关为192.168.2.1/32。这样子PC0要发给PC4的数据包会先抵达路由器的192.168.1.1/32地址的网卡,路由器拿到该数据包后,将其从192.168.2.1/32的网卡发送出去。也就是说,路由器在中间负责中转数据包。

    在这里插入图片描述

    在如上拓扑图中,PC0还是要发数据包给PC4,当数据包抵达路由器1时,路由器1并不知道通往PC4的路径,于是需要在路由器1上的路由表上添加路由规则,使其知道应该将数据包发往192.168.2.0/24网段的地址,需要走往哪一个路由器,这里是路由器2。其他路由器同理,直至到目的主机PC4。

    网络畅通的条件是有去有回,所以当数据包从PC4返回PC0时,沿途的所有路由器都需要数据包的转法路径,也就是配置好返回的路由,使其知道数据包发往192.168.1.0/24网段的地址需要走往哪一个路由器。

    人为添加的路由称之为静态路由,但当路由器连接的网段太多时不方便配置静态路由,可以让路由器自行学习得到数据包的下一个中转地址,称之为动态路由

    展开全文
  • 路由基础知识学习

    千次阅读 2019-02-01 16:38:50
     基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址等属性来选择转发路径。 ip rule 命令: Usage: ip rule [ list | add | del ] ...

    1.基础知识

    1.1 路由 (Routing)

    1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库)

        基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址等属性来选择转发路径。

    ip rule 命令:

    • Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 添加;del 删除; llist 列表)
    • SELECTOR := [ from PREFIX 数据包源地址] [ to PREFIX 数据包目的地址] [ tos TOS 服务类型][ dev STRING 物理接口] [ pref NUMBER ] [fwmark MARK iptables 标签]
    • ACTION := [ table TABLE_ID 指定所使用的路由表] [ nat ADDRESS 网络地址转换][ prohibit 丢弃该表| reject 拒绝该包| unreachable 丢弃该包]
    • [ flowid CLASSID ]
    • TABLE_ID := [ local | main | default | new | NUMBER ]

    例子:

    • ip rule add from 192.203.80/24 table inr.ruhep prio 220 通过路由表 inr.ruhep 路由来自源地址为192.203.80/24的数据包 
    • ip rule add from 193.233.7.83 nat 192.203.80.144 table 1 prio 320 把源地址为193.233.7.83的数据报的源地址转换为192.203.80.144,并通过表1进行路由 

    在 Linux 系统启动时,内核会为路由策略数据库配置三条缺省的规则: 

    • 0 匹配任何条件 查询路由表local(ID 255) 路由表local是一个特殊的路由表,包含对于本地和广播地址的高优先级控制路由。rule 0非常特殊,不能被删除或者覆盖。  
    • 32766 匹配任何条件 查询路由表main(ID 254) 路由表main(ID 254)是一个通常的表,包含所有的无策略路由。系统管理员可以删除或者使用另外的规则覆盖这条规则。
    • 32767 匹配任何条件 查询路由表default(ID 253) 路由表default(ID 253)是一个空表,它是为一些后续处理保留的。对于前面的缺省策略没有匹配到的数据包,系统使用这个策略进行处理。这个规则也可以删除。

    不要混淆路由表和策略:规则指向路由表,多个规则可以引用一个路由表,而且某些路由表可以没有策略指向它。如果系统管理员删除了指向某个路由表的所有规则,这个表就没有用了,但是仍然存在,直到里面的所有路由都被删除,它才会消失。

    资料来源

    1.1.2 路由表 (使用 ip route 命令操作静态路由表)

        所谓路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用,表中包含的信息决定了数据转发的策略。打个比方,路由表就像我们平时使用的地图一样,标识着各种路线,路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路由表根据其建立的方法,可以分为动态路由表和静态路由表。

        linux 系统中,可以自定义从 1-252个路由表,其中,linux系统维护了4个路由表:

    • 0#表: 系统保留表
    • 253#表: defulte table 没特别指定的默认路由都放在改表
    • 254#表: main table 没指明路由表的所有路由放在该表
    • 255#表: locale table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改

    路由表的查看可有以下二种方法:

    • ip route list table table_number
    • ip route list table table_name

    路由表序号和表名的对应关系在 /etc/iproute2/rt_tables 文件中,可手动编辑。路由表添加完毕即时生效,下面为实例:

    • ip route add default via 192.168.1.1 table 1 在一号表中添加默认路由为192.168.1.1
    • ip route add 192.168.0.0/24 via 192.168.1.2 table 1 在一号表中添加一条到192.168.0.0网段的路由为192.168.1.2

    以下面的路由表为例:

    复制代码

    Destination    Netmask    Gateway          Interface    Metric
    0.0.0.0    0.0.0.0    192.168.123.254    192.168.123.88    1 #缺省路由,目的地址不在本路由表中的数据包,经过本机的 192.168.123.88 接口发到下一个路由器 192.168.123.254
    127.0.0.0    255.0.0.0    127.0.0.1    127.0.0.1    1        #发给本机的网络包
    192.168.123.0    255.255.255.0    192.168.123.68    192.168.123.68    1 #直连路由。目的地址为 192.168.123.0/24 的包发到本机 192.168.123.88 接口
    192.168.123.88    255.255.255.255    127.0.0.1    127.0.0.1    1        #目的地址为 192.168.123.88的包是发给本机的包
    192.168.123.255    255.255.255.255    192.168.123.88    192.168.123.88    1 #广播包的网段是 192.168.123.0/24,经过 192.168.123.88 接口发出去
    224.0.0.0    224.0.0.0    192.168.123.88    192.168.123.88    1             #多播包,经过 192.168.123.88 接口发出去
    255.255.255.255    255.255.255.255    192.168.123.68    192.168.123.68    1 #全网广播包
    Default Gateway: 192.168.123.254

    复制代码

    各字段说明:

    • destination:目的网段
    • mask:与网络目标地址相关联的网掩码(又称之为子网掩码)。子网掩码对于 IP 网络地址可以是一适当的子网掩码,对于主机路由是 255.255.255.255 ,对于默认路由是 0.0.0.0。如果忽略,则使用子网掩码 255.255.255.255。定义路由时由于目标地址和子网掩码之间的关系,目标地址不能比它对应的子网掩码更为详细。换句话说,如果子网掩码的一位是 0,则目标地址中的对应位就不能设置为 1。
    • interface:到达该目的地的本路由器的出口ip
    • gateway: 下一跳路由器入口的 ip,路由器通过 interface 和 gateway 定义一调到下一个路由器的链路。通常情况下,interface 和 gateway 是同一网段的metric 跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由

    根据子网掩码,可以将路由分为三种类型:

    • 主机路由:机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。
    Destination    Gateway       Genmask        Flags     Metric    Ref    Use    Iface
    -----------    -------     -------            -----     ------    ---    ---    -----
    10.0.0.10     192.168.1.1    255.255.255.255   UH       0    0      0    eth0
    • 网络路由:网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的数据包转发到IP地址为192.168.1.1的路由器。
    Destination    Gateway       Genmask      Flags    Metric    Ref     Use    Iface
    -----------    -------     -------         -----    -----   ---    ---    -----
    192.19.12     192.168.1.1    255.255.255.0      UN      0       0     0    eth0
    • 默认路由:当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。
    Destination    Gateway       Genmask    Flags     Metric    Ref    Use    Iface
    -----------    -------     ------- -----      ------    ---    ---    -----
    default       192.168.1.1     0.0.0.0    UG       0        0     0    eth0

    设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

    其中:

    • add : 添加一条路由规则,del : 删除一条路由规则,-net : 目的地址是一个网络,-host : 目的地址是一个主机,target : 目的网络或主机
    • netmask : 目的地址的网络掩码,gw : 路由数据包通过的网关,dev : 为路由指定的网络接口

    比如:

    • route add 0.0.0.0 mask 0.0.0.0 192.168.12.1
    • route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7

    (数据来源:(1)(2)(3)

    关于 src 属性:

    当一个主机有多个网卡配置了多个 IP 的时候,对于它产生的网络包,可以在路由选择时设置源 IP 地址。比如:

    ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12 (发到 78.22.45.0/24 网段的网络包,下一跳的路由器 IP 是 10.45.22.1,包的源IP地址设为10.45.22.12)。

    要注意的是,src 选项只会影响该 host 上产生的网络包。如果是一个被路由的外来包,明显地它已经带有了一个源 IP 地址,这时候,src 参数的配置对它没有任何影响,除非你使用 NAT 来改变它。对 Neutron 来说,qrouter 和 qif namespace 中的路由表中的 src 都没有实际意义,因为它们只会处理外来的网络包。

    1.1.3 路由分类之静态路由

      静态路由是指由用户或网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。当然,网管员也可以通过对路由器进行设置使之成为共享的。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。

    以上面的拓扑结构为例,在没有配置路由的情况下,计算机1 和 2 无法互相通信,因为 1 发给 2 的包在到达路由器 A 后,它不知道怎么转发它。B 也同样。管理员可以配置如下的静态路由来实现 1 和 2 之间的通信:

    计算机配置默认网关:

    • 计算机1 上:route add default gw 192.168.1.1
    • 计算机2 上:route add default gw 192.168.3.1

    路由器配置:

    • R1 上:ip route 192.168.3.0 255.255.255.0 f0/1 (意思为:目标网络地址为 192.168.3.0/24 的数据包,经过 f0/1 端口发出)
    • R2 上:ip route 192.168.1.0 255.255.255.0 f0/1 (意思为:目标网络地址为 192.168.1.0/24 的数据包,经过 f0/1 端口发出)

    或者

    • R1 上:ip route 192.168.3.0 255.255.255.0 192.168.2.2 (意思为:要去 192.168.3.0/24 的数据包,下一路由器 IP 地址为 192.168.2.2)
    • R2 上:ip route 192.168.1.0 255.255.255.0 192.168.2.1

    (来源:http://baike.baidu.com/view/911.htm

    1.1.4 路由分类之动态路由

        动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。它是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。

    常见的动态路由协议有以下几个:路由信息协议(RIP)、OSPF(Open Shortest Path First开放式最短路径优先)、IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)、边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。

    (来源:http://baike.baidu.com/view/897.htm)    

    1.1.5 ip rule,ip route,iptables 三者之间的关系

    以一例子来说明:公司内网要求192.168.0.100 以内的使用 10.0.0.1 网关上网 (电信),其他IP使用 20.0.0.1 (网通)上网。

    1. 首先要在网关服务器上添加一个默认路由,当然这个指向是绝大多数的IP的出口网关:ip route add default gw 20.0.0.1
    2. 之后通过 ip route 添加一个路由表:ip route add table 3 via 10.0.0.1 dev ethX (ethx 是 10.0.0.1 所在的网卡, 3 是路由表的编号)
    3. 之后添加 ip rule 规则:ip rule add fwmark 3 table 3 (fwmark 3 是标记,table 3 是路由表3 上边。 意思就是凡事标记了 3 的数据使用 table3 路由表)
    4. 之后使用 iptables 给相应的数据打上标记:iptables -A PREROUTING -t mangle -i eth0 -s 192.168.0.1 - 192.168.0.100 -j MARK --set-mark 3

    因为 mangle 的处理是优先于 nat 和 fiter 表的,所以在数据包到达之后先打上标记,之后再通过 ip rule 规则,对应的数据包使用相应的路由表进行路由,最后读取路由表信息,将数据包送出网关。

    (来源:使用 ip route , ip rule , iptables 配置策略路由这里 有一个更详细的例子)

    这里可以看出 Netfilter 处理网络包的先后顺序:接收网络包,先 DNAT,然后查路由策略,查路由策略指定的路由表做路由,然后 SNAT,再发出网络包。

    1.1.6 Traceroute 工具

        我们在 linux 机器上,使用 traceroute 来获知从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。在 MS Windows 中该工具为 tracert。 在大多数情况下,我们会在linux主机系统下,直接执行命令行:traceroute hostname;而在Windows系统下是执行tracert的命令: tracert hostname。

    • 命令格式:traceroute [参数] [主机]
    • 命令功能:traceroute 指令让你追踪网络数据包的路由途径,预设数据包大小是 40Bytes,用户可另行设置。
    • 具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
    • 命令参数:
      • -d 使用Socket层级的排错功能,-f 设置第一个检测数据包的存活数值TTL的大小,-F 设置勿离断位,-g 设置来源路由网关,最多可设置8个,-i 使用指定的网络界面送出数据包,-I 使用ICMP回应取代UDP资料信息,-m 设置检测数据包的最大存活数值TTL的大小,-n 直接使用IP地址而非主机名称。
      • -p 设置UDP传输协议的通信端口,-r 忽略普通的Routing Table,直接将数据包送到远端主机上,-s 设置本地主机送出数据包的IP地址,-t 设置检测数据包的TOS数值。
      • -v 详细显示指令的执行过程,-w 设置等待远端主机回报的时间,-x 开启或关闭数据包的正确性检验。

    (1)例子

    复制代码

    [root@localhost ~]# traceroute www.baidu.com
    traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
    1 192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms
    2 211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms
    3 211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms
    4 210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms
    5 202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms
    6 61.148.154.97 (61.148.154.97) 718.908 ms * bt-228-025.bta.net.cn (202.106.228.25) 5.177 ms
    7 124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms
    8 202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms
    9 * * *
    30 * * *

    复制代码

    说明:

    • 记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是 -q 的默认参数。
    • 探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。
    • 有时我们 traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP 的返回信息,所以我们得不到什么相关的数据包返回数据。
    • 有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台 DNS 出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。
    • 如果在局域网中的不同网段之间,我们可以通过 traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

    (2)原理

     Traceroute 程序的设计是利用 ICMP 及 IP header 的 TTL(Time To Live)栏位(field)。

    1. 首先,traceroute 送出一个 TTL 是 1 的 IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram 时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此 datagram 丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上。
    2. 接着,traceroute 再送出另一个TTL 是 2  的datagram,发现第2 个路由器...... 
    3. 然后,traceroute  每次将送出的 datagram 的 TTL  加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?

        Traceroute 在送出 UDP datagrams 到目的地时,它所选择送达的 port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此 UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。Traceroute提取发 ICMP TTL 到期消息设备的 IP 地址并作域名解析。每次 ,Traceroute 都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

    (以上资料来自互联网)

    展开全文
  • 静态路由及默认路由——基本配置

    万次阅读 多人点赞 2020-01-05 11:12:05
    静态路由:是指用户或网络管理员手工配置的路由信息。当网络拓扑结构或链路状态发生改变时,需要网络管理员手工配置静态路由信息。 相比较动态路由协议,静态路由无需频繁的交换各自的路由表,配置简单,比较适合...

    原理简述:

    1。静态路由:是指用户或网络管理员手工配置的路由信息。当网络拓扑结构或链路状态发生改变时,需要网络管理员手工配置静态路由信息。

    相比较动态路由协议,静态路由无需频繁的交换各自的路由表,配置简单,比较适合小型、简单的网络环境。不适合大型和复杂的网络环境的原因是:当网络拓扑结构和链路状态发生改变时,网络管理员需要做大量的调整,工作量繁重,而且无法感知错误发生,不易排错。

    2。默认路由:是一种特殊的静态路由,当路由表中与数据包目的地址没有匹配的表项时,数据包将根据默认路由条目进行转发。默认路由在某些时候是非常有效的,例如在末梢网络中,默认路由可以大大简化路由器的配置,减轻网络管理员的工作负担。

    实验目的:

    (1)掌握静态路由(指定接口)的配置方法;

    (2)掌握静态路由(指定下一跳IP地址)的配置方法;

    (3)掌握静态路由连通性的测试方法;

    (4)掌握默认路由的配置方法;

    (5)掌握默认路由的测试方法;

    (6)掌握在简单网络中部署静态路由时的故障排除方法;

    (7)掌握简单的网络优化方法;

    实验内容:

    在三台路由器所组成的简单网络中,R1和R3各自连接着一个主机,现在要求通过配置基本的静态路由和默认路由来实现主机PC-1与PC-2之间的正常通信。

    实验拓扑:

    实验实现步骤:

    1。基础配置

    根据实验的要求进行相应的配置,使用ping命令检测各直连链路的连通性。

    在各直连链路间的IP连通性测试完之后,可以尝试在主机1上直接ping主机2。

    ???问题:为什么两个主机之间无法正常通信,是什么原因导致的?

    若假设主机1和主机2之间可以正常的通信,即可以正常的连通,则主机1将发送数据给其网关设备R1;而R1在收到其数据之后,根据数据包中的目的地址查看自己的路由表,找到相应的目的网络的所在的路由条目,并根据该条目中的下一跳和出接口信息将该数据转发给下一个路由器R2;同时R2采用相同的方式将数据转发给R3,最后R3页同样的将数据转发给与自己直接相连的主机2;主机2在收到数据后,与主机1发送数据到主机2的过程一样,再发送相应的回应信息给主机1。

    现在查看主机1与其网关设备R1间的连通性的状态:

    可以看出主机与网关之间的连通性正常,接下来检查网关设备与R1上的路由表:使用 display ip routing-table 命令。

    通过路由表上显示的信息,可以看到路由表上没有关于主机2所在网段的信息,同样可以使用相同的方法查看路由器R2和R3上的路由表信息。

    经过查看,可以看到:在路由器R2上没有关于主机1和主机2所在网段的信息,R3上没有关于主机1所在网段的信息。

    所以,以上的步骤验证了:在初始情况下各路由器的路由表上仅包含了与自己本身直接相连的网络的路由信息。

    因为现在的主机1和主机2之间跨越了若干个不同的网段,若要实现两者之间的通信,通过简单的IP地址等基础配置是不能实现的,需要在3台路由器上添加相应的路由信息,可以通过配置静态路由的方法来实现。

    2。实现主机1和主机2之间的通信:

    现在,在R1上配置目的网段为主机2所在网段的静态路由,即目的IP地址为192.168.20.0,掩码为255.255.255.0。相对应R1来讲,倘若要发送数据到主机2,则必须先发送给R2,所以R1的下一跳路由器是R2,R2与R1所在的直连链路上的物理端口S1/0/1接口 的IP地址即为下一跳IP地址,即10.0.12.2。

    [R1]ip route-static 192.168.20.0 255.255.255.0 10.0.12.2

    配置之后,查看R1的路由表:

    可以看出在路由器R1上已存在主机2所在网段的路由信息。

    接下来,采取同样的方式在R2上配置目的网段为主机2所在网段的静态路由,配置过后,查看其路由表。

    [R2]ip route-static 192.168.20.0 255.255.255.0 10.0.23.3
    
    [R2]dis ip routing-table 
    Route Flags: R - relay, D - download to fib
    ------------------------------------------------------------------------------
    Routing Tables: Public
             Destinations : 13       Routes : 13       
    
    Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
    
          10.0.12.0/24  Direct  0    0           D   10.0.12.2       Serial1/0/1
          10.0.12.1/32  Direct  0    0           D   10.0.12.1       Serial1/0/1
          10.0.12.2/32  Direct  0    0           D   127.0.0.1       Serial1/0/1
        10.0.12.255/32  Direct  0    0           D   127.0.0.1       Serial1/0/1
          10.0.23.0/24  Direct  0    0           D   10.0.23.2       Serial1/0/0
          10.0.23.2/32  Direct  0    0           D   127.0.0.1       Serial1/0/0
          10.0.23.3/32  Direct  0    0           D   10.0.23.3       Serial1/0/0
        10.0.23.255/32  Direct  0    0           D   127.0.0.1       Serial1/0/0
          127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
          127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
       192.168.20.0/24  Static  60   0          RD   10.0.23.3       Serial1/0/0  //已存在
    255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    

    此时,用主机1ping主机2,观察现象:

    发现,两台主机之间仍然无法正常互通。在主机1上的E0/0/1接口上进行数据抓包,观察现象:

    可以看到:此时主机1只发送了ICMP请求消息,而且也并没有得到任何的回应消息。

    原因:现在仅是实现主机1能够通过路由器将数据正常的转发给主机2,而主机2并没有实现,仍然是无法发送数据给主机1的。

    现在需要在R2和R3上的路由表中添加主机1所在网段的信息:

    在R3上配置目的网段为主机1所在网段的静态路由,目的IP地址为192.168.10.0,目的地址的掩码除了采用点分十进制的格式表示之外,还可以采用直接使用掩码长度的方式表示,即用24来表示相对应R3来讲,要发送数据到主机1上,首先发送给路由器R2,所以R3和R2所在直连链路上的物理接口S1/0/0即为数据转发口,也称为出接口,在配置中指定该接口即可。

    [R3]ip route-static 192.168.10.0 24 s1/0/1  //配置目的网段为主机1所在网段的静态路由
    
    [R2]ip route-static 192.168.10.0 24 s1/0/1  
    
    

    配置过后,查看各路由器的路由表信息:

    经过路由表的查看,你会看到每台路由器上都拥有了主机1和主机2所在网段的路由信息。再次在主机1上ping主机2,观察现象。

    3。实现全网全通来增强网络的可靠性

    按照上面的操作,现在已实现主机1和主机2之间的互通。若假设现在的网络出现了故障,主机1一侧的网络管理员发现无法正常的与主机2通信,于是先测试与网关设备R1和R3的连通性。

    可以看到:主机1无法与主机2的网关设备R3正常通信,所以此时网络管理员无法通过主机1登录到R3上进一步排查故障。

    现在的解决方法是:在R1的路由表中添加R2与R3间直连网段的路由信息,同样也在R3的路由表上添加R1与R2之间的直连链路的路由信息,已至实现全网的互通。

    配置之后,查看各路由器的路由表信息,查看内容;再由主机1ping主机2的网关设备R3。

    测试成功,主机1可以与R3正常通信,同样的主机2此时也可以与R1正常通信。

    4。使用默认路由实现简单的网络优化

    通过适当减少设备上的配置工作量,能够帮助网络管理员在进行故障排除时更轻松的排除故障,且相对较少的配置量也能减少在配置时出错的可能,另一方面,也能够相对减少对设备本身硬件的负担。

    现在,在R1上配置一条默认路由,即目的网段和掩码都是0,表示任何网络,下一跳为10.0.12.2,并删除先前配置的两条静态路由。

    [R1]ip route-static 0.0.0.0 0 10.0.12.2  //配置默认路由
    [R1]undo ip route-static 10.0.23.3 24 10.0.12.2   //删除静态路由
    [R1]undo ip route-static 192.168.20.0 24 10.0.12.2
    
    

    再次测试主机1与主机2之间的通信。

    该通信是正常的,证明了使用默认路由不但能够实现与静态路由同样的效果,还能减少配置量。同时在R3上也做相应的配置。

    [R3]ip route-static 0.0.0.0 0 s1/0/1  //配置默认路由
    [R3]undo ip route-static 10.0.12.0 24 s1/0/1
    [R3]undo ip route-static 192.168.10.0 24 10.0.23.2
    

    再次测试主机1与主机2之间的通信。

    可以看到主机1与主机2之间的通信正常。

    强调:在配置过程中,顺序是先配置默认路由,再删除原有的静态路由配置,这样的操作可以避免网络出现通信中断,即要在配置过程中注意操作的规范性和合理性。

    ???思考:在静态路由配置当中,可以采取指定下一跳IP地址的方式,也可以采取指定出接口的方式,这两种方式存在着什么区别?

    答:(1)在路由查找上:指定下一跳,会多进行一次路由的递归查找,拿下一跳去进行递归,得出出接口。

    (2)二层地址解析:指定下一跳使用最后一次递归的下一跳IP地址去解析下一跳二层地址。如果指定出接口的路由,数据包匹配到后直接用目的地址去解析下一跳地址。

     

     

    展开全文
  • 路由

    2020-04-19 16:44:34
    一、什么是路由 后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源; 前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash...
  • 路由分类

    千次阅读 2019-02-11 15:08:56
    路由(routing)的定义是指分组从源到目的地时,决定端到端路径的网络范围的进程。在OSI七层模型下,路由主要进行在第三次网络层:通过寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和...
  • 常见的路由协议

    万次阅读 2019-06-21 11:00:10
    常见的路由协议可以分为两种类型 一、内部网关协议 内部网关协议(IGP:Interior Gateway Protocol),适用于单个ISP的统一路由协议的运行,一般由一个ISP运营的网络位于一个AS(自治系统)内,有统一的AS number...
  • 路由-回指路由

    万次阅读 2017-07-26 10:38:38
    回指路由,是一个相对的概念。顾名思义,是“指回去的路由”。 当原路由是A区域-->B区域时,A向B发送访问请求,以A为源B为目标,此时B需要以A为目标地址,B为源配置一个静态路由,作为回指路由。  配置回指路由的...
  • zigbee 之 路由

    千次阅读 2018-12-12 01:21:00
    1. 定义及概述  路由的定义是:将数据从源节点传输到目的节点。...本文讨论的zigbee的路由内容,包含路由发现、邻居表、路由表、路由发现表及部分网络层命令。  zigbee路由功能在网络层实现 (类似于互联网协...
  • 路由选择

    千次阅读 2018-05-27 21:49:04
    通信子网络源节点和目的节点提供了多条传输路径的可能性。网络节点在收到一个分组...首先是路由算法所基于的性能指标,一种是选择最短路由,一种是选择最优路由;其次要考虑通信子网是采用虚电路还是数据报方式;其...
  • Nodejs——路由

    千次阅读 2018-10-24 16:02:56
    理解web路由路由:URL到函数的映射   Router与route: Route是一条路由: 如:/users - - &gt; 调用 getAllUsers()函数  /users/count/ - - &gt; 调用 getUsersCount()函数 就是把路径与函数...
  • 目录标题1.合适的分片和副本数ES单机至集群扩容ES Node主分片宕机恢复配置合适的分片,副本数量 1.合适的分片和副本数        什么是分片:Elasticsearch将数据散步到多个物理...
  • 静态路由和动态路由的区别

    万次阅读 2012-10-17 10:11:14
    静态路由  是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、...
  • linux查看路由的三种方式

    万次阅读 2018-11-21 16:35:00
    route netstat -route ip route
  • linux 添加静态路由

    万次阅读 2010-03-22 19:04:00
    linux下静态路由修改命令方法一:添加路由route add -net 192.168.0.0/24 gw 192.168.0.1route add -host 192.168.1.1 dev 192.168.0.1删除路由route del -net 192.168.0.0/24 gw 192.168.0.1add 增加路由del 删除...
  • Windows下添加路由方法及步骤

    万次阅读 2018-03-02 10:05:33
  • 在没有OSPF等动态路由的情况下 A->B的时候 A必须知道如何到达B 所以A上应该有B的路由。   当A的数据包到达B,B需要做出回应,所以B要知道如何到达A。因此B上必须有到达A的路由
  • Windows 添加永久静态路由

    万次阅读 2013-12-07 14:33:48
    route add -p 0.0.0.0 mask 0.0.0.0 192.168.1.1 -p 参数: p 即 persistent 的意思 -p 表示将路由表项永久加入系统注册表
  • vue实现路由跳转和嵌套(快速入门)

    万次阅读 多人点赞 2019-09-12 20:50:39
    vue-router路由的原理是通过改变网址,来实现页面的局部刷新,相比a标签跳转的不同之处在于,路由跳转不需要刷新整个页面。 一、路由跳转 1、安装路由vue-router: npm install vue-router 2、vue项目引入vue...
  • Linux 策略路由对二层通信的影响
1 2 3 4 5 ... 20
收藏数 645,537
精华内容 258,214
关键字:

路由