配置两个网络的路由(一个内部,一个外部)


0

这是情况。我的Mac连接到两个网络 - 一个内部,一个外部。内部DNS适用于内部和外部URL,外部DNS(显然)对内部URL一无所知。内部网络不连接到外部IP,外部网络不连接到内部IP。

因此,根据我在“系统偏好设置”的“网络”部分中设置服务订单的方式:

因此,如果我将内部网络放在服务订单中的外部网络之外:

  1. 内部DNS正确回答所有请求(内部和外部URL)
  2. 内部网络无法连接到外部URL,所以我想我需要在路由表中添加一堆条目,这样每个不是内部IP的东西都会被发送到外部网络。

如果我将外部网络放在第一位,将内部网络放在第二位,并在路由表中添加一个条目,以便所有内部请求都进入内部网络:

  1. 即使我在外部网络的设置中首先添加内部DNS,我仍然无法解析内部URL。

所以这是我的问题:

1)为什么我无法解析内部URL?由于我在路由表中有条目,将所有内部IP发送到内部网络,即使外部网络首先在服务订单中,DNS请求也不应该转到内部DNS吗?

2)是否有一种聪明的方法可以在路由表中添加条目,说“除了10.x.x.x之外的所有内容都会进入网络X”?

附:对于我的问题#2,我认为指定“除10.x.x.x之外的所有内容”的方法是使用一系列路由命令:

/sbin/route add -net 128.0.0.0 -netmask 128.0.0.0 -interface en0
/sbin/route add -net  64.0.0.0 -netmask 192.0.0.0 -interface en0
/sbin/route add -net  32.0.0.0 -netmask 224.0.0.0 -interface en0
/sbin/route add -net  16.0.0.0 -netmask 240.0.0.0 -interface en0

但我希望有一个更简单的方法。


内部网络真的是一个带有子网的网络,只是一个大型局域网的路由?
Mahdi

另外,您是通过两个接口连接到内部还是外部?
Mahdi

两个接口 - 一个有线,一个无线。内部网络(10.x.x.x)庞大且地理分布(不仅仅是LAN)。
Betty Crokker

Answers:


1

假设您的内部网络类似于10.0.0.0/8,网关10.0.0.1在eth1上,外部默认网关在eth1上,IP a.b.c.d,则应该这样做:

route change default -interface en0 route add -net 10.0.0.0 -netmask 255.0.0.0 -interface en1

您也可以在网络脚本中设置这些(您可以在Linux中进行设置 - 不确定Mac),请参阅 这里 举个例子。这实际上是一种更持久的方式,因为您不必在每次启动时手动添加路由(或将它们放在脚本中)。

更新:根据OP注释为Mac OS X更新的命令,请参阅Linux替代品的链接。


我认为这很有效,但你的答案使用Linux格式,我在Mac上。我认为等效的命令(这个迷你降价格式)是[route change default -interface en0]和[route add -net 10.0.0.0 -netmask 255.0.0.0 -interface en1],我认为它为每个选择了正确的网关接口。谢谢!
Betty Crokker

对不起,我错过了那部分。
Mahdi

@Mahdi - 在这种情况下你应该考虑更新答案。
Ramhound

我,我只需要去一台电脑。 :)
Mahdi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.