理解Windows中的路由表和默认网关

每一个Windows系统中都具有IP路由表,它存储了本地计算机可以到达的网络目的地址范围和如何到达的路由信息。路由表是TCP/IP通信的基础,本地计算机上的任何TCP/IP通信都受到路由表的控制。

理解路由表

你可以运行 route print 或 netstat -r 显示本地计算机上的路由表,如下图所示:

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:


 


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

 

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会选择具有更低跃点数的路由项。

路由确定过程

当TCP/IP需要向某个IP地址发起通信时,它会对路由表进行评估,以确定如何发送数据包。评估过程如下:

  • TCP/IP使用需要通信的目的IP地址和路由表中每一个路由项的网络掩码进行相与计算,如果相与后的结果匹配对应路由项的网络地址,则记录下此路由项;
  • 当计算完路由表中所有的路由项后,TCP/IP选择记录下的路由项中的最长匹配路由(网络掩码中具有最多“1”位的路由项)来和此目的IP地址进行通信。如果存在多个最长匹配路由,那么选择具有最低跃点数的路由项;如果存在多个具有最低跃点数的最长匹配路由,那么:
    • 如果是发送响应数据包,并且数据包的源IP地址是某个最长匹配路由的接口的IP地址,那么选择此最长匹配路由;
    • 其他情况下均根据最长匹配路由所对应的网络接口在网络连接高级设置中的绑定优先级来决定。

      网关和接口确定过程

      在确定使用的路由项后,网关和接口通过以下方式确定:

    • 如果路由项中的网关地址为空或者为本地计算机上的某个网络接口,那么在发送数据包时:
      • 通过路由项中对应的网络接口发送;
      • 源IP地址为此网络接口的IP地址;
      • 源MAC地址为此网络接口的MAC地址;
      • 目的IP地址为接收此数据包的目的主机的IP地址;
      • 目的MAC地址为接收此数据包的目的主机的MAC地址;
    • 如果路由项中的网关地址并不属于本地计算机上的任何网络接口,那么在发送数据包时:
      • 通过路由项中对应的网络接口发送;
      • 源IP地址为路由项中对应网络接口的IP地址;
      • 源MAC地址路由项中对应网络接口的MAC地址;
      • 目的IP地址为接收此数据包的目的主机的IP地址;
      • 目的MAC地址为网关的MAC地址;
    • 在此我以上面的路由表为基础,举例进行说明:
    • 和单播IP地址 192.168.1.8 的通信:在进行相与计算时,1、3 项匹配,但是3项为最长匹配路由,因此选择3项。3项的网关地址为本地计算机的网络接口192.168.1.6,因此发送数据包时,目的IP地址为 192.168.1.8、目的MAC地址为192.168.1.8的MAC地址(通过ARP解析获得)。
    • 和单播IP地址 192.168.1.6 的通信:在进行相与计算时,1、3、6 项匹配,但是6项为最长匹配路由,因此选择6项。6项的网关地址为本地环回地址127.0.0.1,因此直接将数据包发送至本地环回地址。
    • 和单播IP地址 192.168.1.245 的通信:在进行相与计算时,1、3、4、5 项匹配,但是4、5项均为最长匹配路由,所以此时根据跃点数进行选择,5 项具有更低的跃点数,因此选择5项;在发送数据包时,目的IP地址为192.168.1.254、目的MAC地址为192.168.1.7的MAC地址 (通过ARP解析获得)。
    • 和单播IP地址 10.1.1.1 的通信:在进行相与计算时,只有 1 项匹配;在发送数据包时,目的IP地址为10.1.1.1、目的MAC地址为192.168.1.1的MAC地址(通过ARP解析获得)。
    • 和子网广播地址 192.168.1.255 的通信:在进行相与计算时,1、3、4、5、7 项匹配,但是7项为最长匹配路由,因此选择7项。7项的网关地址为本地计算机的网络接口,因此在发送数据包时,目的IP地址为 192.168.1.255,目的MAC地址为以太网广播地址FF:FF:FF:FF:FF:FF。

      默认路由与默认网关

      由 于在路由表中存储针对每个主机或子网的路由项不可行,因此提出了默认路由的概念,默认路由中的网关称为默认网关。默认路由的网络地址为0.0.0.0,网 络掩码为0.0.0.0,它匹配任何网络通信,因此当到达特定主机或特定子网的路由并未在路由表中指定时,均可以通过默认路由来进行转发。如果没有设置默 认路由,那么无法到达未在路由表中指定路由项的网络目的地址。

      设 置默认路由后,把数据包的路由责任移交到了路由器,优点是简化了本地计算机上的路由表和配置,缺点则是计算机无法明确目的地址是否可达,从而可能发送针对 不可到达地址的流量。虽然位于路由路径上的路由器知道目的地址不可达时会使用ICMP目的地址不可达信息来通知原始发送主机,但是这个过程中,已经占用了 额外的网络流量。

      在Windows系统中,创建默认路由可以通过以下两种方式实现:

    • 在网络接口的TCP/IP选项中设置默认网关,从而创建默认路由;
    • 使用 route add 命令添加网络地址为0.0.0.0、网络掩码为0.0.0.0的默认路由;
    • 推荐大家总是使用前一种方式。

 

时间: 2024-10-07 15:41:59

理解Windows中的路由表和默认网关的相关文章

默认网关怎么设置,默认网关是什么

网关(Gateway)又称网间连接器.协议转换器.网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连.网关既可以用于广域网互连,也可以用于局域网互连. 网关是一种充当转换重任的计算机系统或设备.在使用不同的通信协议.数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器.与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求.同时,网关也可以提供过滤和安全功能.大多数网关运行在OSI 7层协议的顶层--应用层! 大家都知道

电脑默认网关设置方法

电脑默认网关怎么设置?这也是大部分电脑新用户会遇到的一个常见的网络设置问题,一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信.默认网关的设定有手动设置和自动设置两种方式. 1. 手动设置 手动设置适用于电脑数量比较少.TCP/IP参数基本不变的情况,比如只有几台到十几台电脑.因为这种方法需要在联入网络的每台电脑上设置"默认网关",非常费劲,一旦因为迁移等原因导致必须修改默认网关的IP地址,就会给网管带来很

Win7系统中默认网关怎么查看?

  Win7系统中默认网关查看方法: 1.击网络邻居右键,找到本地连接,点击进去. 2.弹出本地连接状态界面,点击属性. 3.点击Internet 协议版本4(TCP/IPv4) 4.打开它,进入界面,里面有自动获得IP地址,网关也是自动获得的,一般都是用下面的IP地址,就能看到默认网关了. 当然如果是自动的,你无法看到网关,那么我们还可以用一个方法来查看: 1.在运行中输入 CMD 回车; 2.然后输入 ipconfig 按下回车,就可以看到默认网关了,如下图所示:

关闭vpn连接时默认的使用远程默认网关

  在vpn连接高级属性里,有一个选项-"在远程网络上使用默认网关",关闭他有什么好处呢?我们知道,一旦连接上了vpn服务器后,我们的本地网络数据都会经过远程服务器,对外的IP地址也会变成远程服务器的IP地址,国内的vpn还好,要是美国的呢. 那么我们在访问国内的网络数据的时候,就会非常的缓慢,这个原因很简单,因为我们的对外网络已经是美国的了,访问国内网站相当于从美国饶了一圈在跑回来,这个速度是很慢的,很多时候,我们都希望当我们需要远程服务器的一些信息或者访问远程计算时使用vpn,而访

进一步理解C++中的堆(Heap)

最近的项目涉及到Heap Corruption的问题,所以对堆要有更深的理解. 进程初始化时会被分配一个默认大小为1M的默认堆,这个堆会被很多重要的函数调用,比如当我们调用ANSI版本的某些函数时,它们的Unicode版本字符串就会存于其中.若应用程序中有多个线程都用到了默认堆,那么会有机制使得同时只能有一线程能在默认堆中进行操作.默认堆的分配和销毁都是由系统控制的,但是我们可以通过GetPreocessHeap()来得到本进程的默认堆句柄. 常用的分配函数有VirtualAlloc和HeapA

轻松为Windows系统快速配置多个网关

在比较 复杂的http://www.aliyun.com/zixun/aggregation/16327.html">网络环境中,用户需要通过不同的网关访问不同的网络服务器,比如笔记本电脑用户在家时使用ADSL,在单位使用局域网时就需要切换不同的网关. 而使用Windows系统" 控制面板"中的"网络"进行配置,虽然可以配置多个网关,但 其实真正有效的只有一个网关,即默认网关,因此无法满足用户的需求. 怎样才能在Windows系统中配置多个网关呢?

《Metasploit渗透测试手册》—第3章3.8节 理解Windows DLL注入漏洞

3.8 理解Windows DLL注入漏洞Metasploit渗透测试手册本节将介绍一种特殊类型的漏洞,这种漏洞不直接存在于Windows操作系统中,而是存在于Windows上运行的各种应用程序软件之中.这种远程攻击方法针对的是应用程序加载外部库时存在的漏洞,下面介绍这类漏洞,以便对其进行深入分析. 准备这种攻击方法需要创建包含漏洞的目录路径,目标机器需要执行该路径以便激活该漏洞.这个目录可以是文件.提取的文件夹.USB驱动器或网络共享等.创建的文件本身是完全无害的,但会执行DLL注入漏洞来攻击

Android菜单详解——理解android中的Menu

Android菜单详解--理解android中的Menu 前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至今为止看到的最好的一本android书,中文版出到<精通Android 2>. 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu&qu

Windows中安装Apache2和PHP4权威指南

apache|window Apache 2和PHP是创建交互式网站的流行方案,而且成本很低.在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧. 在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息.在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错.例如,有些人甚至将PHP的DLL替换成其他PH