O comando route é usado para exibir e manipular a tabela de roteamento IP. Para realizar a comunicação entre duas sub-redes diferentes, é necessário um roteador conectando as duas redes ou um gateway localizado nas duas redes ao mesmo tempo. Em um sistema Linux, o roteamento é geralmente definido para resolver os seguintes problemas: O sistema Linux está em uma rede local e há um gateway na rede local que permite que a máquina acesse a Internet e, em seguida, o endereço IP deste máquina precisa ser definida como o padrão de roteamento da máquina Linux. Deve-se notar que, a execução direta do comando de rota na linha de comando para adicionar uma rota não será salva permanentemente. Quando a placa de rede for reiniciada ou a máquina reiniciar, a rota se tornará inválida; se você quiser salvá-la permanentemente, existem os seguintes métodos:
1. Adicione em /etc/rc.local
2. Adicione ao final em / etc / sysconfig / network 3. / etc / sysconfig /
static-router:
any net xxxx / 24 gw yyyy
Formato:
formato de rota : / sbin / rota é
usado para imprimir a tabela de roteamento atual (exibir a tabela de roteamento atual).
Quando usado por usuários não root, você precisa usar o caminho completo para executar o comando de rota.
Parâmetros de comando
[root @ linux ~] # rota [-nee]
[root @ linux ~] # rota add [-net | -host] [ domínio ou host ] máscara de rede [máscara] [gw | dev]
[root @ linux ~] # rota del [-net | -host] [ domínio ou host ] netmask [máscara] [gw | dev]
Parâmetros observados:
-n : Não use protocolo ou nome de host, use IP ou número de porta diretamente ;
-ee : use Informações mais detalhadas para mostrar os parâmetros relevantes de
adição (adição) e exclusão ( exclusão ) de roteamento:
-net : indica que a seguinte rota é um domínio de rede;
-host : indica que a seguinte é uma rota conectada a um único host;
máscara de rede : relacionada a o domínio de rede , você pode definir a máscara de rede para determinar o tamanho do domínio de
rede ; gw : abreviação de gateway , seguido por IP O valor de é diferente de dev ;
dev : Se você deseja apenas especificar a qual placa de rede se conectar, use esta configuração, seguida por eth0, etc.
Formato: route -n
format: / sbin / route -n é
usado para imprimir a tabela de roteamento, e o parâmetro -n é para imprimir o endereço IP diretamente sem imprimir o nome do host nas informações de saída.
Formato: rota add default gw {IP-ADDRESS} {INTERFACE-NAME} é
usado para definir a rota padrão, onde o
parâmetro {IP-ADDRESS): é usado para especificar o endereço IP do roteador (gateway); o
parâmetro { INTERFACE-NAME}: é usado para especificar o nome da interface, como eth0. Use / sbin / ifconfig -a para exibir todas as informações da interface.
Exemplo: route add padrão gw mango
format: route add -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME} é
adicionado às regras de roteamento da rede especificada, onde o
parâmetro {NETWORK-ADDRESS}: é usado para especificar o
parâmetro de endereço de rede {NETMASK}: Usado para especificar a máscara de sub-rede
Parâmetro {INTERFACE-NAME}: Usado para especificar o nome da interface, como eth0.
Exemplo 1: route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
Exemplo 2: route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
Formato: route add -net {NETWORK-ADDRESS} netmask {NETMASK} rejeitar
Defina a rede designada como inacessível, para evitar que o programa espere muito ao se conectar ao endereço desta rede e saiba diretamente que a rede está inacessível.
Exemplo: route add -net 10.0.0.0 netmask 255.0.0.0 rejeitar
formato: route del -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
formato: route del -net {NETWORK-ADDRESS} netmask {NETMASK} rejeitar é
usado para excluir as configurações de roteamento. A forma de especificação de parâmetro é semelhante à adição de rota.
Saída detalhada
Campo Significado A saída do comando de rota da tabela de roteamento é a seguinte:
o destino de destino
A rede de destino ou host de destino rede de destino ou host de destino.
Gateway
O endereço do gateway ou '*' se nenhum estiver definido.O endereço do gateway, se não houver definido, serão exibidos asteriscos.
Genmask
A máscara de rede para a rede de destino; '255.255.255.255' para um
destino de host e '0.0.0.0' para a rota padrão.
Sinalizadores : há vários sinalizadores no total e seus significados são os seguintes:
o U (route is up):该路由是启动的;
o H (target is a host):目标是一部主机 (IP) 而非网域;
o G (use gateway):需要透过外部的主机 (gateway) 来转递封包;
o R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;
o D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
o M (modified from routing daemon or redirect):路由已经被修改了;
o ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
o A (installed by addrconf)
o C (cache entry)
Metric 距离、跳数。暂无用。
The 'distance' to the target (usually counted in hops). It is
not used by recent kernels, but may be needed by routing dae-
mons.
Ref 不用管,恒为0。
Number of references to this route. (Not used in the Linux ker-nel.)
Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。
Count of lookups for the route. Depending on the use of -F and
-C this will be either route cache misses (-F) or hits (-C).
Iface 接口,即eth0,eth0等网络接口名
Interface to which packets for this route will be sent.
范例一
单纯的观察路由状态
[root@linux ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.10.30 0.0.0.0 UG 0 0 0 eth0
[root@linux ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default server.cluster 0.0.0.0 UG 0 0 0 eth0
此外,观察一下上面的路由排列顺序喔,依序是由小网域(192.168.10.0/24 是 Class C),逐渐到大网域(169.254.0.0/16 Class B) 最后则是预设路由 (0.0.0.0/0.0.0.0)。然后当我们要判断某个网路封包应该如何传送的时候,该封包会经由这个路由的过程来判断喔!举例来说,我上头仅有三个路由,若我有一个传往 192.168.10.20 的封包要传递,那首先会找 192.168.10.0/24 这个网域的路由,找到了!所以直接由 eth0 传送出去;如果是传送到 Yahoo 的主机呢? Yahoo 的主机 IP 是 202.43.195.52,我通过判断
1)不是 192.168.10.0/24,
2)不是 169.254.0.0/16 结果到达
3)0/0 时, OK !传出去了,透过 eth0 将封包传给 192.168.10.30 那部 gateway 主机啊!所以说,路由是有顺序的。因此当你重复设定多个同样的路由时,例如在你的主机上的两张网路卡设定为相同网域的 IP 时,会出现什么情况?会出现如下的情况:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
也就是说,由于路由是依照顺序来排列与传送的,所以不论封包是由那个介面 (eth0, eth1) 所接收,都会由上述的 eth0 传送出去,所以,在一部主机上面设定两个相同网域的 IP 本身没有什么意义!有点多此一举就是了。除非是类似虚拟主机 (Xen, VMware 等软体 ) 所架设的多主机时,才会有这个必要~
范例二
[root@linux ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
# 上面这个动作可以删除掉 169.254.0.0/16 这个网域!
# 请注意,在删除的时候,需要将路由表上面出现的资讯都写入
# 包括 netmask , dev 等等参数喔!注意注意
[root@linux ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
# 透过 route add 来增加一个路由!请注意,这个路由必须要能够与你互通。
# 举例来说,如果我下达底下的指令就会显示错误:
route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254
# 因为我的环境内仅有 192.168.10.100 这个 IP ,所以不能与 192.168.200.254这个网段直接使用 MAC 互通!这样说,可以理解喔!?
[root@linux ~]# route add default gw 192.168.10.30
# 增加预设路由的方法!请注意,只要有一个预设路由就够了喔!
# 在这个地方如果您随便设定后,记得使用底下的指令重新设定你的网路
/etc/init.d/network restart
如果是要进行路由的删除与增加,那就得要参考上面的例子了,其实,使用 man route 里面的资料就很丰富了!仔细查阅一下囉!你只要记得,当出现『SIOCADDRT: Network is unreachable』这个错误时,肯定是由于 gw 后面接的 IP 无法直接与您的网域沟通 (Gateway 并不在你的网域内)。
WINDOWS下的route命令
简单的的操作如下,
查看路由状态:routeprint
只查看ipv4(ipv6)路由状态:route print-4(-6)
添加路由:route add 目的网络 mask 子网掩码 网关——重启机器或网卡失效
route add 192.168.20.0 mask 255.255.255.0192.168.10.1
添加永久:route -p add 目的网络 mask子网掩码网关
route -p add 192.168.20.0 mask 255.255.255.0192.168.10.1
删除路由:route delete 目的网络 mask 子网掩码
route delete 192.168.20.0 mask255.255.255.0