网关:

网关是网络的进口和出口(网关还有其他功能,如协议翻译……),网关定义网络的边界。

比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。
路由器:

路由器使用一系列算法决定网络间的最短路径。
路由器使用静态路由或动态路由来决定网络间的最短路径。静态路由需要管理员手动设置,而动态路由使用一些协议来动态发现网络间的路径并判断最短路径。通常,对于小型网络使用静态路由,大型复杂网络使用动态路由。现在,路由器集成了网关的功能,所以路由器也具有网关的功能。从网关和路由器的定义来看,如果只是简单地连接两个网络,那么只需要网关就足够了。

例子:假定只有两个网络:网络A和网络B
     要使网络A和网络B能够通信,只使用网关将这两个网络连接即可,因为只有两个网络,不需要决定网络间最短路径。

如果需要连接多个网络,为了保证网络的可靠性,网络结构需要设计为全网状或部分网状,这样,为了网络间的通信,需要网关和路由器两种设备,因为当前路由器集成了网关的功能,所以只使用路由器一种设备就可以了。
     假定有4个网络:网络A、网络B、网络C、网络D
要使这4个网络之间能够通信,另外为了保证网络的可靠性,将这4个网络进行全网状连接,如下图:

例如,此时从网络A到网络D就有两条路径,所以需要使用路由器来决定网络间的最短路径。
      下面来看看宽带路由器中“高级路由”中的网关和路由器选项:
      网关:如果此宽带路由器是网络上唯一一台连接Internet的路由器,选择网关。此时宽带路由器作为网络的进/出口。
      路由器:如果网络中还有其他路由器,选择路由器。
总结:
    1、对于家庭共享上网,只需要使用网关即可,所以在宽带路由器中选择“网关”选项。
    2、对于大型企业网络内部,或大型企业网络连接Internet,由于网络中可能存在其他路由器,所以应当选择宽带路由器中的“路由器”选项,以决定网络间的最短路径。

路由的基本分类:

1.动态路由 静态路由

动态路由

路由选择器自动共享路由信息

自动构造路由表,需要一个路由协议,如RIP或OSPF

静态路由

路由选择器不共享路由信息(单方向路由)

手工构造路由表

2.直连路由 网关路由(间接路由)

其区别在于,发往直连路由的设备中不但具有指明目的端的I P地址,还具有其mac地址。

当报文被发往一个间接路由时,I P地址指明的是最终的目的地,但是mac地址指明的是网关(即下一跳路由器)。

3.主机路由 网络路由

直连路由和网关路由是由下一跳区分的,而主机路由和网络路由是由目的地址的完整度区分的;

主机路由的目的地址是一个完整的主机地址。网络路由目的地址是一个网络地址(主机号部分为0)。

当为某个目的I P地址搜索路由表时,主机地址项必须与目的地址完全匹配,

而网络地址项只需要匹配目的地址的网络号和子网号就可以了。

主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。

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

4.默认路由(缺省路由)

这个路由将匹配所有的包. 能帮助减少路由条目

配置一条默认静态路由和静态路由相似,但IP地址和子网掩码全部是零

例如:ip route 0.0.0.0 0.0.0.0 [网关ip或接口]

子网掩码 0.0.0.0 代表匹配所有网络

-------------------以下截取子tcp/ip详解-----------------------------------------

I P路由选择主要完成以下这些功能:
1) 搜索路由表,寻找能与目的 I P地址完全匹配的表目(网络号和主机号都要匹配)。如果
找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标
志字段的值)。
2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目
指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所
有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表
目进行寻径的。
3) 搜索路由表,寻找标为“默认( d e f a u l t)”的表目。如果找到,则把报文发送给该表目
指定的下一站路由器。
如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自
本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。

对于一个给定的路由器,可以打印出五种不同的标志( f l a g):
U 该路由可以使用;
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的;
H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该
标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网
络号与子网号的组合;
D 该路由是由重定向报文创建的;
M 该路由已被重定向报文修改;

Linux内核路由表:

使用下面的 route 命令可以查看 Linux 内核路由表。

# route  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0  

route 命令的输出项说明

输出项 说明
Destination 目标网段或者主机
Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码
Flags 标记。一些可能的标记如下:
U — 路由是活动的
H — 目标是一个主机
G — 路由指向网关
R — 恢复动态路由产生的表项
D — 由路由的后台程序动态地安装
M — 由路由的后台程序修改
! — 拒绝路由
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口

网关为0.0.0.0的网络通常是直连到网络设备上的,本地的直通路由。因为到自己的直连设备上是不需要网关的,所以0.0.0.0的网关地址是正常的。目的地址是0.0.0.0的路由是你的缺省网关。

route 命令

设置和查看 路由表 都可以用 route 命令,设置内核 路由表 的命令格式是:

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

举例:

添加到主机的路由# route add -host 192.168.1.2 dev eth0:0
# route add -host 10.20.30.148 gw 10.20.30.40
添加到网络的路由# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route add -net 192.168.1.0/24 eth1
添加默认路由# route add default gw 192.168.1.1
删除路由# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1
# route del default gw 192.168.1.1
设置包转发
在 CentOS 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux内核的数据包转发功能可以使用如下的命令。# sysctl -w net.ipv4.ip_forward=1
这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
用户还可以使用如下的命令查看当前系统是否支持包转发。# sysctl  net.ipv4.ip_forward

网关和路由,路由的分类,route命令相关推荐

  1. linux之路由知识之ip route 命令中的疑惑

    1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...

  2. pc双网卡实现路由转发_route命令如何使用?如何利用route命令实现内外网切换?...

    一直有多位朋友提到关route命令的使用,希望我们出一期关于route的使用的文章,那么本期我们来看下. Route就是用来显示.添加.删除和修改路由的命令,我们先来看用法. 一.route命令的格式 ...

  3. linux route命令添加永久路由,用route命令添加永久路由

    使用双网卡,同时使用2个网关的时候就需要加一条静态路由了.当然还有很多时候会需要加路由.mac 终端route命令mac 终端route命令 一:使用 route 命令添加 使用route 命令添加的 ...

  4. 关于Linux路由表的route命令(转)

    查看 Linux 内核路由表 使用下面的 route 命令可以查看 Linux 内核路由表. # route Destination  Gateway      Genmask          Fl ...

  5. php route取值,route命令详解

    route命令用于显示和操作IP静态路由表. > 路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量.路由器的主要 ...

  6. 关于Linux路由表的route命令

    转自:http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.html 查看 Linux 内核路由表 使用下面的 route 命令可以查看 Lin ...

  7. route 命令的使用

    route 命令是linux下设置网络和调试网络的主要工具,本文基于linux中的route man页,说明 命令的使用方法.其实熟练使用的关键还是要对路由的概念有比较深入的理解. 1.命令说明: r ...

  8. XP,2003下使用route命令增加永久路由(静态路由)

    route命令可以在XP,2003等操作系统下手工增加静态路由,但是重启之后路由便丢失了,还要重新增加,那么怎样能让路由一直保待,重启后仍然存在呢? 其实很简单,在增加路由的命令后加上-P开关就可以了 ...

  9. linux 路由 route命令

    #route add default dev eth0           //默认路由,将去往未知网络的数据包全部从接口eth0发出去 #route del default dev eth0     ...

最新文章

  1. 【转载】:C# string 特殊的引用类型
  2. Redis集群功能概述
  3. oracle pl/sql 中目录的创建
  4. android翻页实现原理
  5. java中junit_【Java】Junit快速入门
  6. MySQL 基础 ———— 子查询
  7. CVPR 2020 算法竞赛大盘点
  8. 新奇漂亮的Ajax/CSS表格设计汇集
  9. 2个技巧让Mac常用文件夹在Finder打开更便捷
  10. 实现NeatUpload大文件上传和个性显示进度条
  11. 【CAD开发】3dxml文件格式开发准备
  12. 137页Python学习笔记,全面总结看这一篇就够了
  13. 如何用u盘装xp系统教程
  14. 5328笔记 Advanced ML Chapter1-Introduction to Machine Learning Problems
  15. 如何连接Access数据库
  16. mysql 表分区 查看表分区 修改表分区
  17. 2021年上海会展行业发展现状及重点企业对比分析:展览面积为1086万平方米,同比减少1.97%[图]
  18. 利用OpenCV读图绘制栅格导航
  19. CF28B pSort 解题报告
  20. [益智]:两人过桥问题

热门文章

  1. Python小测试 2021最新男女颜值打分小系统标准出炉,看哭无数人...
  2. 从零开始搭建ROS小车(上位机部分)(一)
  3. python实现浏览器文件上传
  4. 第一次作业 心智模型的翻译
  5. 理查德·费曼谈强人工智能——机器能够像人一样思考吗?
  6. 有哪些比较好用的洗地机推荐?家用洗地机品牌排行榜前十名推荐
  7. KBengine 引擎
  8. iOS侧滑退出界面功能
  9. AIOps智能运维学习资料汇总
  10. 运维、监控、AIOps的几个重要观点