Posts Tagged ‘dns’

什么叫网关的精解计算机主机网关的作用是什么? 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。 但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在 很远的另外一个院子里,他家的院子里也有一个看门的王大爷(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单 和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里拨通了门口李大爷的电话,有了下面的对话: 小不点:李大爷,我想找班主任查一下小明的电话号码行吗? 李大爷:好,你等着。(接着李大爷给你的班主任挂了一个电话,问清楚 了小明的电话)问到了,他家的号码是211.99.99.99 小不点:太好了!李大爷,我想找小明,你再帮我联系一下小明吧。 李大爷:没问题。(接着李大爷向电话局发出了请求接通小明家电话的请 求,最后一关当然是被转接到了小明家那个院子的王大爷那里,然后王大 爷把电话给转到小明家) 就这样你和小明取得了联系。 至于DHCP服务器嘛,可以这样比喻: 你家院子里的居民越来越多了,传达室李大爷那里的电话交换机已经不能满足这么多居民的需求了,所以只好采用了一种新技术叫做DHCP,居民们开机的时候随机得到一个电话号码,每一次得到的号码都可能会不同。 你家门口的李大爷:就是你的网关 你的班主任:就是你的DNS服务器 传达室的电话交换机:就是你的DHCP服务器 同上,李大爷和王大爷之间的对话就叫做路由。 另:如果还有个小朋友叫做小暗,他住的院子看门的是孙大爷,因为小暗的院子刚盖好,孙大爷刚来不久,他没有李大爷和王大爷办公室的电话(李大爷和王大爷当然也没有他的电话),这时会有两种情况: 1、居委会的赵大妈告诉了孙大爷关于李、王两位大爷的电话(同时赵大妈也告诉了李、王关于孙的电话),这就叫静态设定路由 2、赵大妈病了,孙大爷自己到处打电话,见人就说:“我是小暗他们院子管电话的”,结果被李、王二位听到了,就记在了他们的通讯录上,然后李、王就给孙大爷回了个电话说:“我是小明(小不点)他们院子管电话的”,这就叫动态设定路由 然后有一天小不点要找小暗,结果自然是小不点给李大爷打电话说:“大爷,我找小暗”(这里省略了李大爷去查小暗电话的过程,假设他知道小暗的电 话),李大爷一找通讯录:“哦,小暗的院子的电话是孙大爷管着的,要找小暗自然先要通知孙大爷,我可以通知王大爷让他去找孙大爷,也可以自己直接找孙,那 当然是自己直接找孙方便了”,于是李大爷给孙大爷打了电话,然后孙大爷又把电话转到了小暗家。 这里李大爷的通讯录叫做路由表。 李大爷选择是自己直接找孙大爷还是让王大爷帮忙转接叫做路由选择。 李大爷之所以选择直接找孙大爷是有依据的,因为他直接找孙大爷就能一步到位,如果要王大爷转接就需要两步才能完成,这里的“步”叫做“跳数”, 李大爷的选择遵循的是最少步骤(跳数)原则(如果他不遵守这个原则,小不点可能就会多等些时间才能找到小暗,最终结果可能导致李大爷因工作不力被炒鱿鱼, 这叫做“延时太长,选路原则不合理,换了一个路由器”) 当然,事情总是变化的,小不点和小明吵架了,这些天小不点老是给小暗打电话,小明心里想:“操,他是不是在说我坏话啊?”于是小明决定偷听小不点和小暗的通话,但是他又不能出院子,怎么办呢?小明做了这样一个决定: 首先他告诉自己院里管电话的王大爷说:“你给李大爷打个电话说小暗搬到咱们院子了,以后凡是打给他的电话我来接”,王大爷没反映过来(毕竟年纪 大了啊!)就给李大爷打了电话,说:“现在我来管理小暗的电话了,孙已经不管了”,结果李大爷就把他的通讯录改了,这叫做路由欺骗。 以后小不点再找小暗,李大爷就转给王大爷了(其实应该转给孙大爷的),王大爷收到了这个电话就转给了小明(因为他之前已经和小明说好了),小明 收到这个电话就假装小暗和小不点通信。因为小明作贼心虚,害怕明天小不点和小暗见面后当面问他,于是通信断了之后,又自己以小不点的名义给小暗通了个电话 复述了一遍刚才的话,有这就叫数据窃听 再后来,小不点还是不断的和小暗联系,而零落了小明,小明心里嘀咕啊:“我不能总是这样以小暗的身份和小不点通话啊,外一有一天露馅了怎么 办!”于是他想了一个更阴险的招数:“干脆我也不偷听你们的电话了,你小不点不是不给我打电话吗!那我让你也给小暗打不了,哼哼!”,他怎么做的呢?我们 来看: 他联系了一批狐朋狗友,和他们串通好,每天固定一个时间大家一起给小暗院子传达室打电话,内容什么都有,只要传达室的孙爷爷接电话,就会听到 “打雷啦,下雨收衣服啊!”、“人是人他妈生的,妖是妖他妈生的”、“你妈贵姓”等等,听的脑袋都大了,不听又不行,电话不停的响啊!终于有一天,孙爷爷 忍不住了,大喊一声:“我受不了拉!!!!”,于是上吊自杀了! 这就是最简单的DDOS攻击, 孙爷爷心理承受能力弱的现象叫做“数据报处理模块有BUG”,孙爷爷的自杀叫做“路由器瘫痪”。如果是我,就会微笑着和他们拉家常,例如告诉他们“我早就 听了天气预报,衣服10分钟前已经收好了”或者“那你妈是人还是妖”或者“和你奶奶一个姓”等等,我这种健全的心理叫做“健壮的数据报处理,能够抵御任何 攻击” 孙爷爷瘫了之后,小不点终于不再给小暗打电话了,因为无论他怎么打对方都是忙音,这种现象叫做“拒绝服务”,所以小明的做法还有一个名字叫做“拒绝服务攻击”。 小明终于安静了几天,… 几天后,小明的院子来了一个美丽的女孩,名字叫做小丽,小明很喜欢她(小小年纪玩什么早恋!)可是小丽有个很帅的男朋友,小明干瞪眼没办法。当然这里还是要遵循上面的原则:小丽是不能出院子的。那个男的想泡小丽自然只能打电话,于是小明又蠢蠢欲动了: 还记得王爷爷是院子的电话总管吗?他之所以能管理电话是因为他有一个通讯录,因为同一个院子可能有2个孩子都叫小明,靠名字无法区分,所以通讯录上每一行只有两项: 门牌 电话 一号门 1234567 (这个是小明的) [...]

Wednesday, January 13th, 2010 at 02:21 | 0 comments
Categories: TODO, 技术
Tags: , ,

一、什么是DNS? DNS的中文意思是:域名服务。域名服务是提供[主机名]到[IP地址]转换的一段计算机程序。 二、为什么用DNS? 人的大脑记住一组资源的名字比较容易,而记住这组资源的地址很难,但实际上我们又必须使用地址来访问资源,所以必须有一个系统来提供名字到地址的翻译服务。 下面的例子,当您要访问昆明湖、玉兰堂等景观,您首先会想到两个景点都属于 颐和园,而不会想到 颐和园的经纬度,而事实上我们是通过经纬度来访问一组资源的。当您来到一个陌生的城市,向离您最进的片警A问路的时候,片警A就提供了DNS: 1、您问道:“您能告诉我颐和园怎么走么?”。 2、片警A说:“我不知道,但我知道颐和园隶属于四环,负责四环的是片警B,片警B的经纬度是117.2/30.2”。 3、您到了北四环,根据经纬度到片警B问:“您能告诉我颐和园怎么走么?”。 4、片警B说:“我不知道,但我知道颐和园属于海殿区,负责海淀的是片警C,片警C的经纬度是117.3/30.3”。 5、您到了海淀区,根据经纬度找到片警C问:“您能告诉我颐和园怎么走么?” 6、片警C说:“颐和园在经度117.03333、纬度30.51666” 7、知道了颐和园的坐标,您就可以到颐和园参观了。 注意:以上过程,在DNS查询中有个专业术语,叫做迭代查询。也许您还听说过递归查询。 1、就是当您向片警A问路的时候,您希望片警A给您一个确切的回答:“您可以告诉我颐和园怎么走么?我这是递归查询,也就是说,您不要再让我跑腿问别人了,您帮我问。” 2、交警A如果也发出的是递归查询问交警B:“您可以告诉我颐和园怎么走么?我这是递归查询,也就是说,您不要再让我跑腿问别人了,您帮我问。” 3、交警B如果也发出的是递归查询问交警C:“您可以告诉我颐和园怎么走么?我这是递归查询,也就是说,您不要再让我跑腿问别人了,您帮我问。” 4、交警C对交警B说:“颐和园就在经度117.03333、纬度30.51666” 5、交警B对交警A说:“颐和园就在经度117.03333、纬度30.51666” 6、交警A对您说:“颐和园就在经度117.03333、纬度30.51666” 我可以冒充片警C吗?除非您把片警C kill掉,否则即使您穿着片警C的衣服,打扮的和片警C一模一样,也不会有人找您问路。因为片警C始终都在经纬度是117.3/30.3的地方蹲点,问 路的人只会根据片警B找经纬度117.3/30.3的片警C。冒充片警B呢?一个道理,问路的人只会根据片警A找到经纬度是117.2/30.2的片警 B。那冒充片警A呢?您要自问一下,片警A的经纬度是谁告诉您的,告诉您的人可信不可信。一般我们通过ADSL拨号上网的家庭用户,电信接入端给我们提供 片警A既DNS服务器的经纬度既IP地址都是真实的。 也许您感觉很烦琐,为什么不成立一个问路系统,比如114查号,114问路系统存储了世界上所 有名字到经纬度的对应关系。那么您考虑一下,如果114系统由于查询量过大而瘫痪呢?或者中毒而无法提供服务呢?等等这些问题会延误世界人民查询名字到地 址的对应关系。您可能会说,那在世界上建立1000个问路系统,比如电话号从1000到1999都提供名字到经纬度翻译服务,这样当一个号码打不通,客户 可以打另一个。但您应该想到,这样的系统维护起来太麻烦了,比如您自立门户了,买了处房子,房子的经纬度是122.2/122.3,名字叫‘上海、汤臣、 56弄、crysta家’,那世界上所有1000个问路系统都要添加这样的对应关系。同样的问题,如果crystal把房子卖给了seebod,那房子名 就叫‘上海、汤臣、56弄、seebod家’,世界上所有1000个问路系统同样要更新。为了解决这个问题,就采用了最初片警的例子,每个片警只负责他自 己的一片区域。 具体看一个名字到地址的解析过程(上面的例子仅是为了引发您的思维,而不能与实际的DNS查询过程一一对应,不要生搬硬套) 当您在浏览器中输入(www.seebod.com.),我们的电脑是如何得到IP地址的: 1、浏览器发现是一个名字,于是调用我们机器内部的DNS Client软件,这个软件会把我们的请求发送到网卡Tcp/IP设置中的默认DNS服务器IP地址(上海电信提供DNS的服务器有3台,其中一台IP是 202.96.209.5):“您可以告诉我www.seebod.com.的IP地址吗?我这是一个递归查询” 2、 202.96.209.5的DNS服务器会检查自己的DNS缓存,如果缓存里有,就直接返回给客户,如果没有,202.96.209.5就会向自己系统内 部配置中负责.域的DNS服务器的IP地址(负责.域的那台DNS服务器位于美国,共13台,系统会随机选一台,这里比如是61.1.1.1)发出请求: “您能告诉我www.seebod.com.的IP地址吗?我这是一个跌代查询” 3、.域DNS服务器61.1.1.1中包含负责net.域解析的IP地址,把查询结果返回给202.96.209.5:“负责net.域的DNS服务器地址是54.4.4.4” 4、202.96.209.5收到上面的查询结果后,于是询问负责net.域的DNS服务器54.4.4.4 :“您能告诉我负责www.seebod.com.的IP地址吗?我这是一个跌代查询。” 5、负责net.域的DNS服务器54.4.4.4把查询后的结果返回给202.96.209.5:“负责seebod.com.域的dns服务器的ip地址是 211.152.17.58” 6、202.96.209.5收到上面的查询结果够,于是询问负责seebod.com.域的DNS服务器211.152.17.58:“您能告诉我www.seebod.com.所对应的IP地址吗?” 7、211.152.17.58把查询后的结果返回给202.96.209.5:“www.seebod.com.对应的IP地址是211.100.26.123” 8、202.96.209.5把最终结果放到自己的DNS缓存里,这样以后就不用再进行上面的跌代查询了。 9、202.96.209.5把最终结果返回给最初发起请求的客户机。 10、客户机的dns client软件把最终结果返回给浏览器。 11、浏览器把目的IP地址连同http数据传递给网络层。 12、网络层根据目标地址判断路由,发现目标IP地址211.152.17.58与本机不在同一个网段(判断是否是同一个网段使用子网掩码与目的IP地址做与运算),于是决定把次包发给网关。 [...]

Wednesday, January 13th, 2010 at 00:09 | 0 comments
Categories: TODO, 技术
Tags:

在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这 就是因为DNS解析出现故障造成的。这个现象发生的机率比较大,所以本文将从零起步教给各位读者一些基本的排除DNS解析故障的方法。 一、什么是DNS解析故障? 一般来说像我们访问的www.xkq.com,这些地址都叫做域名,而众所周知网络中的任何一个主机都是IP地址来标识的,也就是说只有知道了这个站点的IP地址才能够成功实现访问操作。 不过由于IP地址信息不太好记忆,所以网络中出现了域名这个名字,在访问时我们这需要输入这个 好记忆的域名即可,网络中会存在着自动将相应的域名解析成IP地址的服务器,这就是DNS服务器。能够实现DNS解析功能的机器可以是自己的计算机也可以 是网络中的一台计算机,不过当DNS解析出现错误,例如把一个域名解析成一个错误的IP地址,或者根本不知道某个域名对应的IP地址是什么时,我们就无法 通过域名访问相应的站点了,这就是DNS解析故障。 出现DNS解析故障最大的症状就是访问站点对应的IP地址没有问题,然而访问他的域名就会出现错误。 二、如何解决DNS解析故障: 当我们的计算机出现了DNS解析故障后不要着急,解决的方法也很简单。 (1)用nslookup来判断是否真的是DNS解析故障: 要想百分之百判断是否为DNS解析故障就需要通过系统自带的NSLOOKUP来解决了。 第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。 第二步:输入nslookup命令后回车,将进入DNS解析查询界面。 第三步:命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的DNS服务器IP为202.106.0.20。 第四步:接下来输入你无法访问的站点对应的域名。例如笔者输入www.xkq.com,假如不 能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。 小提示:如果DNS解析正常的话,会反馈回正确的IP地址,例如笔者用www.xkq.com这个地址进行查询解析,会得到name:ciidnet.com,addresses:61.135.133.103,61.135.133.104的信息。 (2)查询DNS服务器工作是否正常: 这时候我们就要看看自己计算机使用的DNS地址是多少了,并且查询他的运行情况。 第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。 第二步:输入ipconfig /all命令来查询网络参数。 第三步:在ipconfig /all显示信息中我们能够看到一个地方写着DNS SERVERS,这个就是我们的DNS服务器地址。例如笔者的是202.106.0.20和202.106.46.151。从这个地址可以看出是个外网地 址,如果使用外网DNS出现解析错误时,我们可以更换一个其他的DNS服务器地址即可解决问题。 第四步:如果在DNS服务器处显示的是自己公司的内部网络地址,那么说明你们公司的DNS解析 工作是交给公司内部的DNS服务器来完成的,这时我们需要检查这个DNS服务器,在DNS服务器上进行nslookup操作看是否可以正常解析。解决 DNS服务器上的DNS服务故障,一般来说问题也能够解决。 (3)清除DNS缓存信息法: 当计算机对域名访问时并不是每次访问都需要向DNS服务器寻求帮助的,一般来说当解析工作完成 一次后,该解析条目会保存在计算机的DNS缓存列表中,如果这时DNS解析出现更改变动的话,由于DNS缓存列表信息没有改变,在计算机对该域名访问时仍 然不会连接DNS服务器获取最新解析信息,会根据自己计算机上保存的缓存对应关系来解析,这样就会出现DNS解析故障。这时我们应该通过清除DNS缓存的 命令来解决故障。 第一步:通过“开始->运行->输入CMD”进入命令行模式。 第二步:在命令行模式中我们可以看到在ipconfig /?中有一个名为/flushdns的参数,这个就是清除DNS缓存信息的命令。 第三步:执行ipconfig /flushdns命令,当出现“successfully flushed the dns resolver [...]

Wednesday, January 13th, 2010 at 00:07 | 0 comments
Categories: TODO, 技术
Tags:
TOP