shell apache Android google 编程 Python 微软 云计算 开源 java php Ubuntu 程序员 Windows Firefox centos wordpress mysql nginx linux

使用route配置静态路由

    路由是定义网络上两台主机间如何通信的一种机制。为了实现与目的主机的通信,需要告诉本地主机遵循怎样一条线路才能到达目的地。Linux内核中维护着一张路由表,每当一个数据包需要被发送时,Linux会把这个包的目的ip地址和路由表中的路由信息比较。如果找到了匹配的表项,那么这个包就会被发送到这条路由所对应的网关。网关会负责把这个包转发到目的地。
    使用netstat-r命令可以看到当前系统中的路由信息。
   内核IP路由表
   Destination Gateway  Genmask       Flags Mss Window  irtt   Iface
   10.71.84.0   *       255.255.255.0 U     0   0       0      etho
   10.250.20.0  *       255.255.255.0 U     0   0       0      wlano
   link-local   *       255.255.0.0   U     0   0       0      etho
   default   10.250.20.254 0.0.0.0.   UG    0   0       0      wlano
   default    10.71.84.254 0.0.0.0.   UG    0   0       0      etho
   在这种路由表中,地址10.71.84.0和10.250.20.0不需要网关即可到达,这意味着这两个地址和本地主机同处一个网络。default表示一条默认路由,当所有的表项都不能被匹配的时候,Linux就会把包发送到默认路由所指定的网关上。这个例子中。默认路由的网关被设置为10.250.20.254和 10.250.20.0。

 route命令用于增加或者删除一条路由。下面这条命令增加了一条默认的路由。

 其中,关键字add表示增加路由表想。关键字default指定了这是一条默认路由。关键字gw告诉Linux后面紧跟的参数是包应该被转发到那台主机。

 可以手动配置路由信息,使主机能够访问到某个网络。例如,现在希望连接到一个网络地址10.62.74.0的网络,在本地网络中有一台IP地址为10.71.84.51的主机可作为网关。那么,可以运行新的程序增加新的路由。

 其次,10.62.74.0这个ip地址看上去有一点奇怪。以前route命令应该知道要某个程序特定的网络过子网掩码可以提取一个IP地址的网络部分。那么,route命令应该要知道某个也定的网络子网掩码是什么。/XX是一种简便的表示子网掩码的方式。这里的24表示ip地址的网络部分占据24位,对应的子掩码为255.255.255.0.     

延伸阅读

评论