网络知识之路由表的那点事
上一篇我们提到了路由表这玩意儿,也许看官还不太理解路由表的含义。那么现在跟我一起动手做一次路由跟踪吧~(用Linux的大神请忽略这部分,如果实在很想的话请把tracert脑补替换为traceroute即可~)如果失败只出现一行记录说明你的路由不支持ICMP协议的time out,扔了换个Cisco路由吧哇咔咔~开个玩笑,Cisco一个几万块俺也买不起。现在市场上的路由基本上都是支持的。
先打开命令提示符(CMD),然后输入tracert xinwo.sinaapp.com回车。接下来看到了什么?一行又一行的IP是吧?(如果显示域名说明域名做了反向解析rDNS,关于反向解析等今后有空再解释,只要ping一下那个域名也能得到IP)没错,从你现在用的那条网线到你现在看到的博客所在服务器路由走向就是这样。基本99%以上的童鞋第一行都是x.x.x.1(外网)或者192.168.x.1(内网),这涉及到你们是在路由拨号还是在本机拨号。如果在本机拨号,那么你的网关直接就是电信运营商的网关。如果你在路由拨号,你的网关就是你的路由器IP。也就是告诉你的电脑全部数据包都走到你的网卡指定的网关上,至于接下来怎么走就是电信运营商的事了~反正一级一级地跳,肯定能跳到最终IP,网络连接的原理就是酱紫。在这里扯点别的,既然路由这样跳,就说明不是离出口带宽近的童鞋访问延迟低,而是到出口节点少的/离电信运营商骨干网近的童鞋访问国外延迟低。而这每一跳怎么走,取决于默认的路由器设置的网关,不过如果只能走这一个网关,那么我们的网络会需要N个路由器。因此我们需要指定某些数据包走“近路”,用来指定网关的玩意儿就是路由表。
既然明白了原理,接下来就方便进入实战环节咯。以下命令为Linux下的路由表设置:
把发送至1.1.1.1的数据包指定到网卡eth1:
route add -host 1.1.1.1 dev eth1
把发送至1.1.1.1的数据包指定到网关2.2.2.1:
route add -host 1.1.1.1 gw 2.2.2.1
添加默认网关1.1.1.1:
route add default gw 1.1.1.1
删除某个发送至1.1.1.1的路由:
route del -host 1.1.1.1
以上IP可用1.1.1.1/24之类的方式表示IP段,至于实际环境怎么部署嘛,启动童鞋们的大脑思考吧~什么?部署完了发现走向有问题?废话!你数据包是给内部的,不给数据报头化化妆怎么让外网认识?下一篇是重头戏,用IPtables给数据包化化妆!
网络知识之路由表的那点事 没有评论