这里说到了路由,我就必须简单的介绍一下路由的作用,在TCP/IP网络中,当一个数据包从一个计算机传送到另外一个计算机的时候,这两个计算机可能是毫无关系的IP地址,但是,发送数据包的源计算机怎么知道通过正确的“道路”来发送这个数据包呢,这个就是路由的作用了。对路由的简单描述可以为,是一个预定好的IP地址,可能是一台路由器或者是一台有路由功能的计算机,能告诉你连接目标地址(或子网)的正确路径,路由目标一般有主机、子网以及默认之分。如果一个目标地址(或者是子网)没有特定的指定路由,则使用默认的路由(也就是我们说的网关)。
通常情况下,如果没有任何路由(包括默认网关),这个时候,只能通过广播方式访问同一个网段的计算机,而通过路由,则可能可以访问全世界任何计算机(只要他们网络相通,有正确的Ip地址以及路由指向),当然,还要它允许你访问。从一个IP地址到另外一个IP地址,可能会经过多层路由,如第一个路由器可能只是把信息传递个下一个路由器,而下一个路由器则把信息传向更下一层路由器,一直达到目标为止。通过unix/linux的traceroute或者是windows的tracert,我们就可以正确的知道路由的路径:
C:>tracert -d 71.5.7.191 Tracing route to 71.5.7.191 over a maximum of 30 hops 1 * * * Request timed out. 2 16 ms 16 ms 16 ms 220.191.142.165 3 17 ms 17 ms 17 ms 61.130.125.73 4 20 ms 21 ms 21 ms 61.130.126.149 5 41 ms * 41 ms 202.97.43.177 6 40 ms 41 ms 42 ms 202.97.33.138 7 231 ms * 231 ms 202.97.51.174 8 1115 ms 1111 ms 1105 ms 202.97.49.130 9 230 ms 231 ms 230 ms 205.158.79.29 10 1115 ms 1122 ms 1123 ms 65.106.5.45 11 1127 ms * 1122 ms 65.106.2.158 12 463 ms 464 ms * 205.158.60.170 13 473 ms 472 ms 473 ms 71.5.7.191
以下的内容,我将简单的介绍在AIX上查看、配置路由列表,如查询命令为:
#netstat -rn
Routing tables Destination Gateway Flags Refs Use If PMTU Exp Groups Route Tree for Protocol Family 2 (Internet): default 10.0.100.250 UGc 0 0 en0 - - - 10.0.100.0 10.0.100.150 UHSb 0 0 en0 - - - => 10.0.100/24 10.0.100.150 U 2 2 en0 - - - 10.0.100.255 10.0.100.150 UHSb 0 3 en0 - - - 127/8 127.0.0.1 U 0 353 lo0 - - - Route Tree for Protocol Family 24 (Internet v6): ::1 ::1 UH 0 0 lo0 16896 - -
其中红色部分标明了默认路由,也就是网关地址。可以用如下命令来添加默认路由:
#route add default 10.0.100.250 或者是
#route add 0 10.0.100.250
表示对没有特别指定,或者目标路径为0的地址,也就是所有地址,使用路由10.0.100.250,其实,这个IP地址也就是网关。但是,这样增加的路由只是增加在路由表中(动态路由),而不写在ODM库中,如果想写在ODM库中,可以简单的由
#smit route 来完成,或者是类似的命令
#chdev -l inet0 -a route=”net,-hopcount,0,,0,10.0.100.250″
跟上面的意思一样,表示对目标地址0,将使用路由10.0.100.250,其实就是默认路由,这样增加的路由是静态路由。
以下是增加动态路由与删除动态路由的一个例子,以下表示针对目标子网10.10.*.*/24,都使用路由10.0.100.251,其中/24是表示子网掩码
#route add -net 10.10.0.0 -netmask 255.255.255.0 10.0.100.251
可以从netstat -rn中看到如下的信息。
10.10/24 10.0.100.251 UG 0 0 en4 - -
如果想删除这个动态路由,可以用如下的命令
#route delete 10.10.0.0 10.0.100.251
以下是增加静态路由与删除静态路由的一个例子,这次我们不针对网段,只是针对主机10.10.10.100,使用路由10.0.100.251。
#chdev -l inet0 -a route=”host,-hopcount,0,,,,,,10.10.10.100,10.0.100.251″
在netstat -rn可以看到如下信息
10.10.10.100 10.0.100.251 UGH 0 0 en4 - -
我们也可以使用如下命令删除该静态路由
#chdev -l inet0 -a delroute=”host,,10.10.10.100,10.0.100.251″
如果你想清空所有的路由表,或者是刷新路由表,可以使用如下命令。注意,此命令仅仅是刷新(其实是清空)当前路由表,并不清空ODM库中的静态路由,所以,写在ODM库中的静态路由在重起后会继续生效。
另外,不要轻易执行此命令,因为如果你是不同的网段连接到该机器,清空路由表可以立即断开你的网络连接。
#route -f
default 10.0.100.250 done dbtest loopback done
#netstat -rn
Routing tables Destination Gateway Flags Refs Use If Exp Groups Route Tree for Protocol Family 2 (Internet): 10.0.100.0 10.0.100.150 UHSb 0 0 en0 - - - => 10.0.100/24 10.0.100.150 U 2 2 en0 - - - 10.0.100.255 10.0.100.150 UHSb 0 3 en0 - - - 127/8 127.0.0.1 U 0 353 lo0 - - - Route Tree for Protocol Family 24 (Internet v6): ::1 ::1 UH 0 0 lo0 - -
正确的使用路由可以减少网络跳转,甚至大大提高网络的访问速度。