我知道一台PC可以具有多个网络适配器,每个适配器具有不同的网络标识符(IP,MAC等)。
我的问题是,一台PC是否可以有多个活动的默认网关?如果是这样,那么PC(或更确切地说是OS)如何知道给定数据包使用什么适配器?
我知道一台PC可以具有多个网络适配器,每个适配器具有不同的网络标识符(IP,MAC等)。
我的问题是,一台PC是否可以有多个活动的默认网关?如果是这样,那么PC(或更确切地说是OS)如何知道给定数据包使用什么适配器?
Answers:
从技术上讲是,实际上是没有。
关键是术语``默认'',这是默认值-我从Subway订购了一个默认三明治(肉丸Marinara配奶酪和墨西哥胡椒),我通常会有所不同,不过仍然是默认值,但我没有两个默认值。
因此,与网络接口相同,您定义“规范”,然后指定何时要通过“静态路由”违反该规范(请在所选操作系统上查看“ route”命令)。
希望这会有所帮助,并且不要让您太饿...
不,它不能具有多个活动的默认网关。
任何操作系统都可以配置多个默认网关(从技术上讲是到未指定地址的路由,即0.0.0.0
or ::
)。在这种情况下,它会执行对具有多个路径的任何路由目标的处理。
它将使用活动选择,直到系统检测到它不再起作用为止(这将取决于将路由插入路由表的方式而有所不同),然后切换到另一条可用路由(再次基于“首选项”然后根据“度量”)。
而且,如果引入的新路由具有较高的“度量”或“首选项”,它将切换为最优先的,然后是最短的度量。
但是在任何时候,它只能有一个(或零个)活动路线到达任何特定的目的地。
在Windows(至少是Vista)上,在同一接口上具有多个具有不同度量标准的默认路由是可以的。如果较低的度量标准路由器出现故障,Windows将自动切换到具有下一个最高度量标准的路由。如果有多个具有相同度量标准的默认路由,则Windows会随机选择一个要使用的路由。
这使您可以拥有冗余路由器,而无需在路由器上配置故障转移。
在Linux上,这不起作用。您可以具有多个具有不同度量标准的默认路由,但是当前Linux内核会忽略该度量标准值。如果具有最低度量标准的默认路由器消失,流量将不会流动。
该默认网关路由使用,如果没有其他途径的匹配。因此,根据该定义,一次只能有一个。
除了不是真的,因为您的路由规则可能更复杂。例如,现代版本的Linux支持使用多个完全独立的路由表,并逐包确定要查询的表。因此,举例来说,也许您有一个用于正常流量的网络配置,但对于您的Web浏览器却是完全不同的路由表。或者,也许您还有另一个路由表,该路由表仅用于设置了特定TOS位的数据包。但是每个服务器都有其自己的默认网关,该网关将反映该特定路由表的默认路由。
通常,路由表很简单,即“到本地接口的本地流量,到路由器的其他所有流量”。但是,如果您使用的是更复杂的网络设置,则可以使用这些工具来应对您可以梦想的任何网络场景。
对于Windows计算机:在命令提示符下可以找到要使用的工具:“ route”“ route print”将显示您当前的路由表
每个适配器只能有一个默认网关。PC将仅有效地使用一个网关-NIC绑定顺序路由中列出的第一张卡将通过您的路由表查找,并使用更具体的规则并在通过该表时变得更加通用。
看看这篇文章的想法... Windows 7自Win2k以来并没有太大改变。 http://support.microsoft.com/kb/140859
如果您的服务器/ PC是多宿主的,这意味着它是两个独立网络的一部分,则每个网络适配器上都将具有一个默认网关。然后,您可以确定网络适配器的优先级。就像其他人说的那样,您仍然只有一个默认网关,但这是每个网络适配器的。