首页 > 学院 > 网络通信 > 正文

双网卡接入两个网络的问题

2020-07-05 18:10:19
字体:
来源:转载
供稿:网友

某企业用户使用的运行Windows XP的计算机装有两块网卡,网卡1通过PPPoE连接到Internet,网卡2通过局域网连接到企业内部网络,企业内部网络为172.16.0.0/16,内部网络网关为172.16.0.1,网卡2的IP地址为172.16.0.17。
" x: {8 {! v; T s. t# s4 ^[症状]


1 o( c& G4 L8 s- q1 |/ t' G在没有连接到Internet的情况下,该用户可以访问整个企业内部网络。当该用户连接到Internet后,便会失去企业内部网络172.16.0.0的连通性。该用户在网络连接属性中正确设置了IP地址,子网掩码和默认网关。

[分析]

在该用户不连接到Internet时,我们在命令行中输入:route print显示路由表,显示所示,目前的默认网关是172.16.0.1。ping内部网络172.16.0.0均显示正常。
# G+ w+ C9 g7 ^8 c+ n! P接下来该用户接入Internet,然后我们再次输入route print显示路由表,发现路由表默认路由发生了变化,默认网关从172.16.0.1变为61.30.30.61,这个是网卡1连接的网关地址。这时我们再ping 172.16.0.0这个网络,显示超时。
4 I$ e; l* O: k7 Y9 s由此我们确认是由于Windows在PPPoE协商后“擅自”更改了默认路由造成的路由错误,将发往内网的数据错误的发送到了Internet。

[解决方案]

对于Internet,我们必须使用缺省路由。在内网网关不能提供RIP信息的情况下,我们只能通过设置静态路由将属于内网的数据发往172.16.0.17。

在cmd下输入:

route -p add 172.16.0.0 mask 255.255.0.0 172.16.0.17 metric 1 if []
- y8 @2 ^4 B k N; D, a+ H$ u1 E
! ^* `9 Q/ o4 m4 i这里的[]代表出口interface的index,这个值你可以使用route print命令看到。注意这个值是16进制,所以你必须在前边加上0x。比如出口interface是Local Area Connection 2,对应的index是0x10003,则这两条命令应写为:
8 q% u6 g; q' Wroute -p add 172.16.0.0 mask 255.255.0.0 172.16.0.17 metric 1 if 0x10003

现在我们再来使用route print查看路由表。在路由表中出现了条新的路由:
" |' Q9 z( h2 Y( l9 _3 Z. n- ]1 W


$ k; o' }: F4 t* D这条路由表示,对去往172.16.0.0/16的数据选用172.16.0.17作为网关。这样就可以确保去往内部网络的数据通过正确的网关进行路由。


4 I1 L m2 L0 v5 ~. xQ:上边例子中的0x10003是怎么得来的?
6 s+ G! c+ {- O' wA:使用route print命令得到的显示。在最开始的几行显示的Interface List中。
7 R9 ^: S0 o, Z1 S2 q0 X
6 z2 o2 f' H2 T; o4 ~+ tQ:如果我不写if参数会怎样?
, W1 q( z* @8 G: U: s: pA:Windows会自动选择一个最合适的interface。但是Windows不保证这个选择就是你想要的。

Q:route print命令显示的metric是什么意思?

A:metric是十进制的。它代表当出现多条针对同一个prefix的不同路由时,Windows优先使用哪一个路由。Metric值约小优先值越高。例如,对于172.16.0.0/16这个网络,如果有一个路由的metric是40,另一个是39,那么Windows将优先使用metric是39的路由。如果在某个时刻,这个路由无效了(例如网络中断),那么将使用metric是40的路由。如果metric 39的路由后来恢复了,将Windows将跳回使用这个路由。
( B9 P' t- R8 H- P$ e |. HQ:双网卡是为了对网络进行物理隔离,这个方案的目的是什么?
1 n8 R2 N2 @* g( x5 t J% kA:提问者没有搞清楚网络的基本定义,问题本身的陈述逻辑都有问题,所以不予回答

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表