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

网关:

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

         比如有网络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





猜你喜欢

转载自blog.csdn.net/Agoni_xiao/article/details/78431714
今日推荐