linux route路由
网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连
就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。默认网关。默认网关一般填写192.168.x.1
需要特别注意的是:默认网关必须是电脑自己所在的网段中的IP地址,而不能填写其他网段中的IP地址
直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了。永久方法:
- 在/etc/rc.local里添加
- 在/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
- U (route is up):该路由是启动的
- H (target is a host):目标是一主机 (IP) 而非网域
- G (use gateway):需要透过外部的主机 (gateway) 来转递封包
- R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标
- D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
- M (modified from routing daemon or redirect):路由已经被修改了
- ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
- A (installed by addrconf)
- 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 互通