路由表
2015-10-22 14:34
190 查看
C:\Documents and Settings\administrator>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x10003 ...00 50 8d 4f 5f c5 ...... Realtek RTL8139/810x Family
Fast Ethernet NIC
===========================================================================
===========================================================================
Active Routes:
Default Gateway: 192.168.1.1
===========================================================================
Persistent Routes:
None
路由表中的每一个路由项具有五个属性,在此我将它们分为四个部分:
1、网络地址(Network Destination)、网络掩码(Netmask):网络地址和网络掩码相与的结果用于定义本地计算机可以到达的网络目的地址范围。通常情况下,网络目的地址范围包含以下四种:
主机地址;某个特定主机的网络地址,网络掩码为255.255.255.255,如上表中的6、7、9;
子网地址,某个特定子网的网络地址,如上表中的4、5;
网络地址;某个特定网络的网络地址,如上表中的2、3、8;
默认路由;所有未在路由表中指定的网络地址,如上表中的1,在后文将详细描述;
在添加路由时,Windows要求输入的网络地址和网络掩码相与后的结果必须等于网络地址,否则路由添加会失败。
2、网关(Gateway,又称为下一跳服务器):在发送IP数据包时,网关定义了针对特定的网络目的地址,数据包发送到的下一跳服务器。如果是本地计算机直接连接到的网络,网关通常是本地计算机对应的网络接口,但是此时接口必须和网关一致;如果是远程网络或默认路由,网关通常是本地计算机所连接到的网络上的某个服务器或路由器。
3、接口(Interface):接口定义了针对特定的网络目的地址,本地计算机用于发送数据包的网络接口。网关必须位于和接口相同的子网(默认网关除外),否则造成在使用此路由项时需调用其他路由项,从而可能会导致路由死锁。
4、跃点数(Metric):跃点数用于指出路由的成本,通常情况下代表到达目标地址所需要经过的跃点数量,一个跃点代表经过一个路由器。跃点数越低,代表路由成本越低;跃点数越高,代表路由成本越高。当具有多条到达相同目的网络的路由项时,TCP/IP会选择具有更低跃点数的路由项。
# 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 命令的输出项说明
3 种路由类型
主机路由
主机路由是路由选择表中指向单个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
默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags
Metric Ref Use
Iface
----------- ------- ------- ----- ------
--- --- -----
default 192.168.1.1 0.0.0.0 UG
0 0 0
eth0
配置静态路由
route 命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口
route 命令使用举例
添加到主机的路由
# 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
Windows路由表详细解释
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x10003 ...00 50 8d 4f 5f c5 ...... Realtek RTL8139/810x Family
Fast Ethernet NIC
===========================================================================
===========================================================================
Active Routes:
| Network Destination | Netmask | Gateway | Interface | Metric |
1 | 0.0.0.0 | 0.0.0.0 | 192.168.1.1 | 192.168.1.6 | 30 |
2 | 127.0.0.0 | 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | 1 |
3 | 192.168.1.0 | 255.255.255.0 | 192.168.1.6 | 192.168.1.6 | 30 |
4 | 192.168.1.240 | 255.255.255.240 | 192.168.1.8 | 192.168.1.6 | 20 |
5 | 192.168.1.240 | 255.255.255.240 | 192.168.1.7 | 192.168.1.6 | 15 |
6 | 192.168.1.6 | 255.255.255.255 | 127.0.0.1 | 127.0.0.1 | 30 |
7 | 192.168.1.255 | 255.255.255.255 | 192.168.1.6 | 192.168.1.6 | 30 |
8 | 224.0.0.0 | 240.0.0.0 | 192.168.1.6 | 192.168.1.6 | 30 |
9 | 255.255.255.255 | 255.255.255.255 | 192.168.1.6 | 192.168.1.6 | 1 |
===========================================================================
Persistent Routes:
None
路由表中的每一个路由项具有五个属性,在此我将它们分为四个部分:
1、网络地址(Network Destination)、网络掩码(Netmask):网络地址和网络掩码相与的结果用于定义本地计算机可以到达的网络目的地址范围。通常情况下,网络目的地址范围包含以下四种:
主机地址;某个特定主机的网络地址,网络掩码为255.255.255.255,如上表中的6、7、9;
子网地址,某个特定子网的网络地址,如上表中的4、5;
网络地址;某个特定网络的网络地址,如上表中的2、3、8;
默认路由;所有未在路由表中指定的网络地址,如上表中的1,在后文将详细描述;
在添加路由时,Windows要求输入的网络地址和网络掩码相与后的结果必须等于网络地址,否则路由添加会失败。
2、网关(Gateway,又称为下一跳服务器):在发送IP数据包时,网关定义了针对特定的网络目的地址,数据包发送到的下一跳服务器。如果是本地计算机直接连接到的网络,网关通常是本地计算机对应的网络接口,但是此时接口必须和网关一致;如果是远程网络或默认路由,网关通常是本地计算机所连接到的网络上的某个服务器或路由器。
3、接口(Interface):接口定义了针对特定的网络目的地址,本地计算机用于发送数据包的网络接口。网关必须位于和接口相同的子网(默认网关除外),否则造成在使用此路由项时需调用其他路由项,从而可能会导致路由死锁。
4、跃点数(Metric):跃点数用于指出路由的成本,通常情况下代表到达目标地址所需要经过的跃点数量,一个跃点代表经过一个路由器。跃点数越低,代表路由成本越低;跃点数越高,代表路由成本越高。当具有多条到达相同目的网络的路由项时,TCP/IP会选择具有更低跃点数的路由项。
# 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 | 该路由表项对应的输出接口 |
主机路由
主机路由是路由选择表中指向单个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
默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags
Metric Ref Use
Iface
----------- ------- ------- ----- ------
--- --- -----
default 192.168.1.1 0.0.0.0 UG
0 0 0
eth0
配置静态路由
route 命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口
route 命令使用举例
添加到主机的路由
# 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
Windows路由表详细解释
Windows用命令route print会输出本机路由表,但是很多人不懂是什么意思,现一一解释如下: 首先,看看我的机器上输出的路由表,运行cmd,输入route print命令,结果如下: 先按顺序解释几个英文单词: Active Routes:活动的路由 network destination 目的网段 netmask 子网掩码 gateway 下一跳路由器入口的ip interface 到达该目的地的本路由器的出口ip 路由器通过interface和gateway定义一条到下一个路由器的链路,通常情况下,interface和gateway是同一网段的,特殊情况下gateway可以不在当前interface的网段上,比如配置递归寻路的情况下 metric 跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由,如果同时连接了有线和无线网络,一般有线是20,无线是30 Persistent Routes:手工配置的静态固化路由,即时重启也不会消失 第一条 缺省路由:意思就是说,当一个数据包的目的网段不在你的路由记录中,那么,你的路由器该把那个数据包发送到那里!缺省路由的网关是由你的连接上的default gateway决定的 该路由记录的意思是:当我接收到一个数据包的目的网段不在我的路由记录中,我会将该数据包通过10.1.1.2这个接口发送到10.1.1.100这个地址,这个地址是下一个路由器的一个接口,这样这个数据包就可以交付给下一个路由器处理,与我无关。该路由记录的线路质量 20 第二条 直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的interface和gateway是同一个。 当我接收到一个数据包的目的网段是10.1.1.0时,我会将该数据包通过10.1.1.2这个接口直接发送出去,因为这个端口直接连接着10.1.1.0这个网段,该路由记录的线路质量 20 第三条 本地主机路由:当路由器收到发送给自己的数据包时将如何处理 当我接收到一个数据包的目的网段是10.1.1.2时,我会将该数据包收下,因为这个数据包时发送给我自己的,该路由记录的线路质量 20 第四条 本地广播路由:当路由器收到发送给直联网段的本地广播时如何处理 当我接收到广播数据包的目的网段是10.255.255.255时,我会将该数据从10.1.1.2接口以广播的形势发送出去,该路由记录的线路质量 20 第五条 本地环路:127.0.0.0这个网段内所有地址都指向自己机器,如果收到这样一个数据,应该发向哪里 该路由记录的线路质量 1 第六条-第十一条 类似上面的解释,本机上其它网卡的路由 第十二条-第十四条 组播路由:当路由器收到一个组播数据包时该如何处理 当我接收到组播数据包时,我会将该数据从10.1.1.2,192.168.64.1,192.168.217.1接口以组播的形势发送出去,该路由记录的线路质量 20,该路由记录的线路质量 1 第十五条-第十八条 广播路由:当路由器收到一个绝对广播时该如何处理 当我接收到绝对广播数据包时,将该数据包分别通过10.1.1.2,192.168.64.1,192.168.217.1发出去 默认网关:10.1.1.100 固化路由:没有,如果用route add -p 参数添加静态路由,机器即使重启后仍然存在,显示在这个地方。 |
相关文章推荐
- 插值多项式
- AngularJS PhoneCat代码分析
- oracle日期时间型timestamp的深入理解
- Tomcat 7优化前及优化后的性能对比
- Citrix XenServer 6.1 安装图解教程
- HTML5中meta属性的应用
- dvfs概述(1)
- 【android学习笔记】播放器中一些细节处理
- 线程中的wait和notify方法
- 访问NopCommerce的Admin 运行Nop.Admin后台管理
- static的作用
- 安装Nano
- oracle日期时间型timestamp的深入理解
- 算法竞赛入门-枚举-7.1.1-除法
- vector〈int〉实现堆栈
- iOS之多线程---三种多线程技术
- Linux配置静态IP
- ProGuard工具的混淆功能
- Jconsole连接远程服务器
- 前端的发展前景