|
和大家讨论一个关于DNS解析的问题:
有一个2级网络,网络结构如图。
Internet
|
A
/ \
/ \
B C
/ \ / \
S1 S2 T1 T2
说明如下:
B,C是两台服务器,分别管理两个部门的C类子段;
S1、S2是B服务器管理的段内PC,网络IP为 192.168.0.x;
P1、P2是C服务器管理的段内PC,网络IP为 192.168.1.x;
A是一台总服务器兼防火墙,外网接口为10.2.4.5,内网IP为172.16.43.1;
B与A接口间的IP为172.16.43.2,在其字段内IP为192.168.0.254;
C与A接口间的IP为172.16.43.3,在其字段内IP为192.168.1.254;
A对B、C以及B、C对其子网均用NAT方式路由。
现在假设这个网络被分配到了一个有效域名叫做example.com。该组织内部想把这个域扩展一下,于是定义B部门域名为partB.example.com,定义C部门域名为partC.example.com 。B子网内的每台PC机分别叫做stationX.partB.example.com,B服务器自己叫做serverB.partB.example.com;C子网内的每台机器分别叫做targetX.partC.example.com,C服务器自己叫做serverC.partB.example.com。
于是我在A服务器上做了如下DNS设置(只给出了地址映射和forwards部分,逆映射部分省略未写)
example.com. IN NS serverA.example.com.
partB.example.com. IN NS serverB.example.com.
partC.example.com. IN NS serverC.example.com.
serverA.example.com. IN A 172.16.43.1
serverB.example.com. IN A 172.16.43.2
serverC.example.com. IN A 172.16.43.3
---------------------------
forwarders { 10.2.4.1; };
在B服务器上作了如下设置:
partB.example.com. IN NS serverB.partB.example.com.
serverB.partB.example.com. IN A 192.168.0.254
station1.partB.example.com. IN A 192.168.0.1
station2.partB.example.com. IN A 192.168.0.2
---------------------------
forwarders { 172.16.43.1; }; (如果得不到IP地址则向上级服务器A询问)
在C服务器上作了如下设置:
partC.example.com. IN NS serverC.partC.example.com.
serverC.partC.example.com. IN A 192.168.1.254
target1.partC.example.com. IN A 192.168.1.1
target2.partC.example.com. IN A 192.168.1.2
---------------------------
forwarders { 172.16.43.1; }; (如果得不到IP地址则向上级服务器A询问)
以上环境中服务器均为linux,DNS软件为BIND 9。不过据我所知,windows 2000下的DNS配置文件几乎和bind一样的。
现在我们要建立一个从S1到T2的连接,即S1需要得到T2的IP地址。有几个问题想和各位探讨一下:
1) 从S1得到P2的IP地址所访问服务器的过程。 比如在S1机器上输入target2.partC.example.com,能否通过上述网络得到T2的IP地址甚至是MAC以建立连接。(我的实验失败了,不过还没有搞清楚问题出在哪里。)
2) 上述域的分配方式是否合理?这里假设B和C两个网络必须分开,不能合在一个B段内。
3) 在实际的internet上,DNS是如何运行的。比如说:我们在IE地址栏里面输入news.163.com,我们的机器开始向服务器发出DNS请求,我想知道在最后得到这个news.163.com对应的IP地址前所访问的各个服务器的顺序,举例说明就行了。 |
|