linux route路由

网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连

就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。默认网关。默认网关一般填写192.168.x.1

需要特别注意的是:默认网关必须是电脑自己所在的网段中的IP地址,而不能填写其他网段中的IP地址

直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了。永久方法:

  1. 在/etc/rc.local里添加
  2. 在/etc/sysconfig/network里添加到末尾

命令格式

# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

-net:路由为一个网域
-host:连接到主机的路由
dev:指定由哪一块网卡连线出去

-f:清除所有不是主路由(网掩码为 255.255.255.255 的路由)、环回网络路由(目标为 127.0.0.0,网掩码为 255.255.255.0 的路由)或多播路由(目标为 224.0.0.0,网掩码为 240.0.0.0 的路由)的条目的路由表

例子

# route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
# route add -host 192.56.76.11 gw 192.168.2.16

-net:必须指定netmask。否则报”Invalid argument”错误
gw:指定下一跳地址

Flags

  1. U (route is up):该路由是启动的
  2. H (target is a host):目标是一主机 (IP) 而非网域
  3. G (use gateway):需要透过外部的主机 (gateway) 来转递封包
  4. R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标
  5. D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
  6. M (modified from routing daemon or redirect):路由已经被修改了
  7. ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
  8. A (installed by addrconf)
  9. C (cache entry)

配置路由
比如,你的主机处于192.168.10.0/24,而你想访问192.168.20.0/24网的主机,当然你知道一个网关IP,例如192.168.10.1(必须和你主机处于同一子网)

# route add -net 192.168.20.0 netmask 255.255.255.0 gw 192.168.10.1

路由表

Destination     Gateway         Genmask         Flage Metric Ref Use Iface
192.168.100.0   *               255.255.255.0   U     0      0   0   eth0
127.0.0.0       *               255.255.255.0   U     0      0   0   l0
default         192.168.100.5   0.0.0.0         UG    0      0   0   eth0

第一行指192.168.100.0网段数据包通过eth0口发出
第三行指其余数据包下一跳为192.168.100.5(默认网关)

重复设定多个同样的路由

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 传送出去

下达错误指令

# route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254

系统会报”No suck process”错误。要求相连网口必须处于同一网段
因为我的环境内仅有 192.168.10.100 这个 IP ,所以不能与 192.168.200.254这个网段直接使用 MAC 互通

原文地址:https://www.cnblogs.com/zhangxuechao/p/11709853.html