linux route命令的使用详解 添加永久静态路由 tracert traceroute

时间:2023-09-07 12:34:26

linux route命令的使用详解 添加永久静态路由  tracert  traceroute

route -n    Linux
route  print  Windows

traceroute  -n Linux
tracert  -d  Windows

--http://www.cnblogs.com/snake-hand/p/3143041.html

每天一个linux命令(53):route命令

--http://www.cnblogs.com/peida/archive/2013/03/05/2943698.html

--加路由范例

--Linux
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
或者
# route add -net 192.168.0.0/ gw 192.168.0.1

linux route命令的使用详解 添加永久静态路由  tracert  traceroute

route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是 为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为 Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;要想永久保存,有如下方法:

1.在/etc/rc.local里添加
2.在/etc/sysconfig/network里添加到末尾
3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y

格式:route 
格式:/sbin/route 
用于打印路由表(display the current routing table)。

在非root用户使用时需要使用完整路径执行route命令。

命令参数

[root@linux ~]# route [-nee]
[root@linux ~]# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
[root@linux ~]# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]
观察的参数:
   -n  :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
   -ee :使用更详细的资讯来显示
增加 (add) 与删除 (del) 路由的相关参数:
   -net    :表示后面接的路由为一个网域;
   -host   :表示后面接的为连接到单部主机的路由;
   netmask :与网域有关,可以设定 netmask 决定网域的大小;
   gw      :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
   dev     :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等

格式:route -n
格式:/sbin/route -n
用于打印路由表,加上-n参数就是在输出的信息中不打印主机名而直接打印ip地址。

格式:route add default gw {IP-ADDRESS} {INTERFACE-NAME}
用于设置默认路由,其中,
参数{IP-ADDRESS): 用于指定路由器(网关)的IP地址;
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。使用/sbin/ifconfig -a可以显示所有接口信息。

例:route add default gw mango

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
添加到指定网络的路由规则,其中
参数{NETWORK-ADDRESS}: 用于指定网络地址
参数{NETMASK}: 用于指定子网掩码
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。

例1:route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
例2:route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} reject
设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。

例:route add -net 10.0.0.0 netmask 255.0.0.0 reject

格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} reject
用于删除路由设置。参数指定的方式与route add相似。

范例一

单纯的观察路由状态

[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


GZ-IT-李建华  10:28:12 --在香港110上执行 香港110的网卡地址 :192.168.1.110

route add -p 192.168.2.0 mask 255.255.255.0 192.168.1.20

GZ-IT-李建华  11:04:28  --在深圳5上执行 深圳5的网卡地址:192.168.2.5

route add -p 192.168.1.0 mask 255.255.255.0 192.168.2.21

route ?

操作网络路由表。

ROUTE [-f] [-p] [-4|-6] command [destination]                   [MASK netmask]  [gateway] [METRIC metric]  [IF interface]

-f           清除所有网关项的路由表。如果与某个                命令结合使用,在运行该命令前,                应清除路由表。

-p           与 ADD 命令结合使用时,将路由设置为                在系统引导期间保持不变。默认情况下,重新启动系统时,                不保存路由。忽略所有其他命令,                这始终会影响相应的永久路由。Windows 95                不支持此选项。

-4           强制使用 IPv4。

-6           强制使用 IPv6。

command      其中之一:                  PRINT     打印路由                  ADD       添加路由                  DELETE    删除路由                  CHANGE    修改现有路由   destination  指定主机。   MASK         指定下一个参数为“网络掩码”值。   netmask      指定此路由项的子网掩码值。                如果未指定,其默认设置为 255.255.255.255。   gateway      指定网关。   interface    指定路由的接口号码。   METRIC       指定跃点数,例如目标的成本。

------------------------------ route --help Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables        route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.        route {-V|--version}                  Display version/author and exit.

-v, --verbose            be verbose         -n, --numeric            don't resolve names         -e, --extend             display other/more information         -F, --fib                display Forwarding Information Base (default)         -C, --cache              display routing cache instead of FIB


桦仔  23:17:18
什么意思?????
舒页  23:17:47
1.33有这个路由么?到虚拟机
还有就是那个eth1的网关也很重要。
他需要有两边的路由
桦仔  23:19:09
什么意思
什么意思
linux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  23:20:03
额。
桦仔  23:20:08
说话啊
舒页  23:20:14
我关机了,linux route命令的使用详解 添加永久静态路由  tracert  traceroute,手机不行,
我能听到你,
桦仔  23:20:32

桦仔  23:21:03
1.33有这个路由么?到虚拟机
还有就是那个eth1的网关也很重要。
他需要有两边的路由
linux route命令的使用详解 添加永久静态路由  tracert  traceroute

您发送了一个窗口抖动。
桦仔  23:21:15
快点啊
解释完我就睡觉了

您发送了一个窗口抖动。
舒页  23:22:01
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
虚拟机的网关是多少?
2.1?
桦仔  23:23:08
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  23:23:47
额。那你这个没法通,
桦仔  23:24:11
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
为什麽!
舒页  23:24:20
虚拟机那个网卡是0.1的,他不知道。
桦仔  23:24:36
添加路由不是为了两个不同网段的主机通信吗
舒页  23:24:48
回来也要有路由,
桦仔  23:25:08
虚拟机那个网卡是0.1的,他真实机不知道?
舒页  23:25:18
现在选的是桥接?
桦仔  23:25:25
你的意思是 我应该在真实机也要route add?
舒页  23:25:46
真实机配置看看。
桦仔  23:25:48
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  23:26:08
0.1是路由器?
桦仔  23:26:16
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
是的
舒页  23:26:47
要在路由器上加一条到1.33的路由,
桦仔  23:27:26
我现在抛开路由器
我将网线拔了
只有真实机跟虚拟机
怎麽把真实机跟虚拟机通信
网段不同
舒页  23:28:11
拔了网卡不灭了吗?
桦仔  23:28:42
也是
舒页  23:28:40
你用两个虚拟机嘛。
桦仔  23:28:51
两个虚拟机怎麽搞
舒页  23:28:50
都用桥接
桦仔  23:29:03
两个虚拟机都安装centos?
舒页  23:29:17
不陪路由相关的ip段
--1--配1段
--2--配2段
桦仔  23:30:00
然后呢
不写这个吗
舒页  23:30:14
双方都要路由指向对方
桦仔  23:30:16
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  23:30:30
不写,注释
有网关的就需要网关去转发。
网关要有2个段的路由也可以。
舒页  23:31:49
有空可以看下思科linux route命令的使用详解 添加永久静态路由  tracert  traceroute
华为也可以,
桦仔  23:32:51
A机器ip 192.168.1.12
B机器ip 192.168.2.12

A机器
route add -net 192.168.1.0  netmask 255.255.255.0  192.168.2.12

B机器
route add -net 192.168.2.0  netmask 255.255.255.0  192.168.1.12
这样吗
舒页  23:33:23
错了,linux route命令的使用详解 添加永久静态路由  tracert  traceroute
桦仔  23:33:29
????、
舒页  23:33:38
出接口linux route命令的使用详解 添加永久静态路由  tracert  traceroute
不是对方ip
是自己的接口
舒页  23:34:56
这个问题用pt思科模拟器来说比较好,
桦仔  23:34:58
A机器ip 192.168.1.12
B机器ip 192.168.2.12

A机器
route add -net 192.168.2.0  netmask 255.255.255.0  192.168.1.12 dev eth0

B机器
route add -net 192.168.1.0  netmask 255.255.255.0  192.168.2.12 dev eth0
舒页  23:35:25
255.255.255.0后面我记得不用ip吧?
跟出接口,或者出接口的iplinux route命令的使用详解 添加永久静态路由  tracert  traceroute吧。
桦仔  23:37:23
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  23:38:03
对啊,
桦仔  23:38:22
A机器ip 192.168.1.12
B机器ip 192.168.2.12

A机器
route add -net 192.168.2.0  netmask 255.255.255.0  dev eth0

B机器
route add -net 192.168.1.0  netmask 255.255.255.0   dev eth0
但是不知道对方的ip
舒页  23:38:54
嗯,
不需要知道linux route命令的使用详解 添加永久静态路由  tracert  traceroute
1.0/24   2.0/24包含在内
桦仔  23:39:56
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
要写的
舒页  23:40:57
不用吧。指定了出接口还要ip?
桦仔  23:42:17
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
我看见同事是这样写的
舒页  23:42:43
不用linux route命令的使用详解 添加永久静态路由  tracert  traceroute
你都没网关,要ip搞毛
桦仔  23:43:32

A机器
route add -net 192.168.2.0  netmask 255.255.255.0  dev eth0

B机器
route add -net 192.168.1.0  netmask 255.255.255.0   dev eth0
那a机器怎麽找到b机器?
舒页  23:44:50
。。。往B机器网段的数据包都是0口出去
桦仔  23:45:49
出去之后
怎麽找到192.168.2.12这台机
舒页  23:46:35
越说越长了,linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  23:48:03
会广播
广播之后就知道了呀,
桦仔  23:50:13
明天你试一下可以不
在公司
舒页  23:50:19
好啊,
你下个pt
很好模拟的,
都不用虚拟机。
思科模拟器

在ifcfg-eth0里不写网关地址,让route路由表路由,使用route add 添加路由规则


 仔  10:39:20
linux route命令的使用详解 添加永久静态路由  tracert  traceroute

您发送了一个窗口抖动。
舒页  10:45:42
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
 这是linux 都没有配置网管 指定了出口
舒页  10:47:33
linux route命令的使用详解 添加永久静态路由  tracert  traceroute 
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  10:48:44
  都是桥接没有配置网关  。  都是虚拟机。
桦仔  10:50:20
Windows和Linux都在虚拟机里面?
route add的时候都没有指定网关?
舒页  10:50:33

windows 需要指定 本机出接口ip   如果不指定无法配置静态路由。
linux route命令的使用详解 添加永久静态路由  tracert  traceroute  亮哥的机器。。
桦仔  10:52:50
就是说
linux
route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
windows
route add -p 192.168.200.0 netmask 255.255.255.0 192.168.100.22 
这样吗

您发送了一个窗口抖动。
舒页  10:53:10
嗯  
route add  192.168.200.0 mask 255.255.255.0 192.168.100.22  if 出接口
。。。windows 是这个命令。。。
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
桦仔  10:54:49
出接口其实相当于Linux 的dev eth0
舒页  10:55:00

dev eth0  这个也是表示出接口的
桦仔  10:56:16
linux
route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
windows
route add -p 192.168.200.0 netmask 255.255.255.0 192.168.100.22   IF 2
舒页  10:56:57

windows 没有 -p
桦仔  10:58:55
WINDOWS 加linux route命令的使用详解 添加永久静态路由  tracert  traceroute
表示永久路由 -p
舒页  10:59:22
   好把, 
桦仔  11:00:40
Linux要写入static-route文件才行,否则重启服务器
路由会失效
舒页  11:00:59
linux route命令的使用详解 添加永久静态路由  tracert  traceroute,我只是测试,生产没用。。。
生产肯定要考虑的-linux route命令的使用详解 添加永久静态路由  tracert  traceroute
桦仔  11:09:01
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
这里网卡填什么
舒页  11:09:15
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
桦仔  11:09:17
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  11:09:39
route print 
桦仔  11:09:41
Windows的ip和Linux的ip你都看到了
舒页  11:09:41
能看到
   那个windows 不是桥接拔
linux route命令的使用详解 添加永久静态路由  tracert  traceroute  错了
是本地ip出口
舒页  11:10:46
就是说可以不用跟网络接口 有ip就可以了
桦仔  11:10:49
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  11:11:10
往上
命令下面截图出来
桦仔  11:11:46
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
Windows
route add -p 192.168.1.0 netmask 255.255.255.0  192.168.1.2
这样?
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  11:12:12
嗯,应该也可以
桦仔  11:12:45
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒页  11:12:51
  这里的参数就是IF 后面接的参数  linux route命令的使用详解 添加永久静态路由  tracert  traceroute
mask
 不是netmask
桦仔  11:21:45
刚才问了同事
其实是因为这个
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
如果是真实环境,两个机房,其实是不能通的
舒页  11:22:38
两个机房。是不能通的呀, 要在一个交换机下面
两个机房如果有专线, 也是可以得。
桦仔  11:23:56
其实还是需要两个网卡,连接两个网段
舒页  11:24:03
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
谁说要两个网卡。 擦。
桦仔  11:25:59
好吧,听你的
舒页  11:27:09
两个机房, -专线接入-根本就不要。
就是从一个机房拉线到另一个机房。 不是说互联网专线。
桦仔  11:28:45
你的意思是:我现在拉两台真实的电脑,不是虚拟机,两个电脑直连网线,就可以了?
舒页  11:28:55
linux route命令的使用详解 添加永久静态路由  tracert  traceroute 我能说新一代有台机就是那么干的么。。

桦仔  11:29:37
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
舒总威武
舒页  11:30:40
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
我是渣渣。。还是桦总87...

Windows  192.168.66.157
route add -p 192.168.1.0 mask 255.255.255.0 192.168.1.2 IF 网卡接口编号通过route print查看
Windows的route add一定要写网关
IF=dev Linux 192.168.1.2
route add -net 192.168.66.0 netmask 255.255.255.0 dev eth0

linux route命令的使用详解 添加永久静态路由  tracert  traceroutelinux route命令的使用详解 添加永久静态路由  tracert  traceroute

linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute
linux route命令的使用详解 添加永久静态路由  tracert  traceroute

在Linux里,在添加路由规则的时候如果没有那个网卡设备,就会报错
SIOCADDRT:XXX
linux route命令的使用详解 添加永久静态路由  tracert  traceroute

Linux添加永久静态路由

实际上route命令就是控制路由器的优先级,优先级如下

直连(两个机器通过一根网线直接连接)-》静态路由(修改路由表)-》动态路由

直连我就不叙述了,一根网线只有一条路径,route命令控制的是静态路由修改机器的路由表

实现Windows和Linux主机之间不同网段通信

大家知道不同网段的两台机器是不能通信的,其实我们可以通过路由规则的方法让两台机器通信
如果两台机器都是真实机,我们只需要使用直连线,中间不经过任何交换机路由器就可以通信
如果两台真实机都连着交换机,那么就需要多买一个网卡(两台机器双网卡),一个网卡连交换机,一个网卡直接连接
示意图
linux route命令的使用详解 添加永久静态路由  tracert  traceroute

图中两个机器都只有一个网卡,通过网线直接相连

然后在Windows和Linux各自添加一条路由规则

Windows  192.168.1.100
route add -p 192.168.0.0 mask 255.255.255.0 192.168.0.106 IF //Windows添加

在cmd下执行上面命令
IF:网卡接口编号,可以通过route print查看
-p :表示添加永久路由

Linux  192.168.0.106
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 //Linux添加

dev:为网卡设备,这里是 eth0

添加完毕之后,Windows和Linux都可以互相ping通

上面的命令,Windows添加的是永久路由,而Linux只是暂时路由,重启机器或重启网络服务,路由规则就会消失
这时候需要在Linux添加永久路由

在/etc/sysconfig/  路径下新建一个static-routes 文件
添加一行

any net 192.168.1.0/  dev eth0
# cat /etc/sysconfig/static-routes
any net 192.168.1.0/ dev eth0

然后重启网络服务:service network restart

这时候,无论在Linux里重启机器或重启网络服务,路由规则都不会消失虚拟机跟真实机的做法都是一样的,并没有差异

这样,即使虚拟机跟真实机的网段不一样,我们照样可以ssh我们的Linux虚拟机
原理
centos7系统管理和运维实战  P87
直连路由(同一个局域网内)-》静态路由(修改下一跳地址)-》动态路由(OSPF,RIP,BGP,IGRP协议)

接口IP和直连路由 P87
无论使用哪种方式为网络接口配置ip地址,只要网络接口接入某个子网,路由表都会立即为子网添加相应的直连路由
可以使用route -n 命令查看路由表验证

route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.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 1002 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

命令的第一条就是和子网192.168.1.0的直连路由,这是由接口eth0的ip配置决定的
如果eth0的ip地址发生变化或有新的网卡拥有了ip地址,路由表中的直连路由也会发生变化

route命令还可以用于添加默认路由(通常称为默认网关),但更多是用于添加静态路由

同一个局域网内,有两个不同的网段的主机,两个不同网段主机通信只需要在主机上修改主机上的路由表即可,不需要修改硬件防火墙,因为内网通信不涉及到硬件防火墙
网段1:192.168.1.x
网段2:192.168.0.x

Linux 192.168.0.106
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 //Linux添加

Windows 192.168.1.100
route add -p 192.168.0.0 mask 255.255.255.0 192.168.0.106 IF 12 //Windows添加

附:在linux下设置永久路由的方法:

1.在/etc/rc.local里添加 方法,这种方法重启网络服务之后就会失效

route add -net 192.168.3.0/ dev eth0
route add -net 192.168.2.0/ gw 192.168.2.254

2.在/etc/sysconfig/network里添加到末尾  ,这种方法只能添加默认网关 
方法:

GATEWAY=gw-ip或者 GATEWAY=gw-dev 

3./etc/sysconfig/static-routes : (没有static-routes的话就手动建立一个这样的文件)

any net 192.168.3.0/ gw 192.168.3.254
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129

4.开启 IP 转发:

# echo "" >/proc/sys/net/ipv4/ip_forward (临时) 

# vi /etc/sysctl.conf --> net.ipv4.ip_forward= (永久开启) 

如果在rc.local中添加路由会造成NFS无法自动挂载问题,所以使用static-routes的方法是最好的。无论重启系统和service network restart 都会生效 
按照linux启动的顺序,rc.local里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs(NFS)之后才被执行的,

那也就是说在netfs(NFS)启动的时候,服务器上的静态路由是没有被添加的,所以netfs(NFS)挂载不能成功。 
static-routes文件又是什么呢,这个是network脚本执行时调用的一个文件,这个文件的放置在/etc/sysconfig目录下,在network脚本中的位置是

/etc/init.d/network:
# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi

route命令输出的路由表字段含义如下:
Destination :目标网络号或目标主机ip地址,default表示这是一条默认路由
Gateway 网关: 网关地址,即下一跳地址,其中0.0.0.0或"*"表示主机和该子网直接相连,无须下一跳地址(直连路由,在同一个局域网)
Genmask 网络掩码:子网对应的子网掩码
Metric 距离、跳数:这个值一般存在有多条到目标网络的路由时才起作用
Ref :路由条目引用的次数
Use :路由条目被路由软件查找的次数
Iface :到达目标网络使用的本地接口

Flags:总共有多个旗标,代表的意义如下:
U (route is up):当前路由处于活动状态
H (target is a host):路由条目的目标是主机而不是子网
G (use gateway):指向默认网关的路由
R (reinstate route for dynamic routing):恢复动态路由产生的路由
D (dynamically installed by daemon or redirect):由后台程序动态产生的
M (modified from routing daemon or redirect):这个条目经过了后台程序修改
! (reject route):拒绝路由
C 缓存的路由条目

route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.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 1002 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

第二条和第二条
当前有两个子网:192.168.1.x和169.254.x.x
网关都是0.0.0.0,表示这两个子网在同一个局域网,直连路由

第三条
Destination是0.0.0.0 表示跟第二条和第二条在同一个内网,网关是192.168.1.1

第一,第二,第三条的Iface都是eth0,表示网关,两个子网都用eth0网卡做沟通

route添加路由常用命令
添加和删除默认网关,mango-gw是网卡名,mango-gw网卡一定要跟网关也就是硬件防火墙直连, 172.16.45.1是网关ip
route add default gw mango-gw
route del default gw mango-gw
route add default gw 172.16.45.1
route del default gw 172.16.45.1

添加和删除到网络的路由
route add -net 192.168.2.0 netmask 255.255.255.0 gw mango-gw
route add -net 192.168.2.0/24 gw mango-gw
route add -net 192.168.2.0 netmask 255.255.255.0 gw 172.16.45.1
route add -net 192.168.2.0/24 gw 172.16.45.1

route del -net 192.168.2.0/24

添加和删除到主机的路由
route add -host 192.168.2.80 gw mango-gw
route add -host 192.168.2.80 gw 172.16.45.1

route del -host 192.168.2.80

linux route命令的使用详解 添加永久静态路由  tracert  traceroute

深圳机房有两条线路到香港机房,Linux防火墙里面用crontab调用一个脚本对线路一ping 100个包 丢包严重,就route命令改内核路由表做线路切换

不改内核路由表,默认走机房给你的公网IP,子网掩码,网关,路线:内网机器-》Linux防火墙(机房给你的公网ip)-》机房给你的网关


hyper-v不同网段之间虚拟机通信

同一个hyper-v母机下面5台虚拟机,不同网段,通过修改直连路由ping通
搭建alwayson测试环境,5台hyper-v虚拟机
关闭所有虚拟机的防火墙
同一个母机下面5台虚拟机
3台机器网段是192.168.6.x
2台机器网段是192.168.7.x

删除路由
route delete  192.168.6.0

我在每台机器添加网关
然后router那台机器添加多网卡 设置为网关ip  微软有个功能是软路由的
添加好功能就没问题了

linux route命令的使用详解 添加永久静态路由  tracert  traceroute

f