linux和win32路由条目添加方法
2010-08-04 22:14:28 阿炯

Internet协议第4版(IPv4)中的默认路由在CIDR表示法中被指定为零地址0.0.0.0/0,通常称为四零(quad-zero)路由。子网掩码为/0,它有效地指定了所有网络,是可能的最短匹配。

0.0.0.0/0 refers to all IPv4 addresses and ::/0 refers All IPv6 addresses. /0 is for the IPv4 whereas ::/0 is for IPv6 is known as CIDR.

0.0.0.0意味着来自本地系统或互联网上任何地方的任何IP都可以访问。它是路由表中已指定的以外的所有内容。

Ranges for IPv4 is from 0.0.0.0 to 255.255.255.255 where as IPv6 have 2^128 addresses.

--------------------------------

在windows添加一条静态路由

1、添加一条路由表
route add 60.232.142.25 mask 255.255.255.248 192.168.100.250 metric 3 if 2
添加一条路由记录,所有到60.232.142.25/29网段的数据包,都通过2号网络接口卡走192.168.100.250的网关,优先级为3。

route add -p 60.232.142.25 mask 255.255.255.248 192.168.100.250 metric 3 if 2
作用同上,只是这是一条长久路由,不会因为重启机器而丢失。

2、删除一条路由表
route delete 60.232.142.25
route delete 60.232.*
请留心:如果有两条路由记录有着相同的“目的网络号”,则会将两条记录同时删除。如果只想删除其中某一条的话,请在删除后用route add命令再添加上其中一条。

3、修改一条路由记录
route change 157.0.0.0 mask 255.0.0.0 157.55.80.254 metric 2 if 2
change参数只能修改“网关”和“跳数”

--------------------------------

linux下添加路由的方法
一:使用 route 命令添加使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了。
//添加到主机的路由
# route add -host 192.168.168.110 dev eth0
# route add -host 192.168.168.119 gw 192.168.168.1

//添加到网络的路由
# route add -net IP netmask MASK eth0
# route add -net IP netmask MASK gw IP
# route add -net IP/24 eth1

//添加默认网关
# route add default gw IP
# ip route add default via 192.168.3.2
# route add default gw 192.168.3.2 eth0

//删除路由
# route del -host 192.168.168.110 dev eth0
route add -net 192.168.9.253 netmask 255.255.255.255 gw 192.168.31.254
ip route delete {IP/SUBNET} dev {INTERFACE}
ip route delete 192.168.1.0/24 dev eth0

二:在linux下设置永久路由的方法:
1.在/etc/rc.local里添加方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254
route add -net 192.168.34.0/24 gw 192.168.31.254

2.在/etc/sysconfig/network里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y

linux路由的添加对于我们来说很重要,有的时候网络不通,也许就是你路由没加。

服务器ip(eth0)
[root@localhost net]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:E3:9A:15
inet addr:172.16.2.205 Bcast:172.16.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee3:9a15/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4776 errors:0 dropped:0 overruns:0 frame:0
TX packets:3348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:439384 (429.0 KiB) TX bytes:390425 (381.2 KiB)
Interrupt:11 Base address:0x1400

查看原始路由信息
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.2.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

# netstat -r
# ip route list

==============================================

添加默认网关
[root@localhost net]# route add default gw 172.16.2.50
[root@localhost net]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.2.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 172.16.2.50 0.0.0.0 UG 0 0 0 eth0

==============================================

添加一个ip(eth0:1)
[root@localhost net]# ifconfig eth0:1 192.168.168.119 netmask 255.255.255.0 up
[root@localhost net]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:E3:9A:15
inet addr:172.16.2.205 Bcast:172.16.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee3:9a15/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5071 errors:0 dropped:0 overruns:0 frame:0
TX packets:3569 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:466532 (455.5 KiB) TX bytes:416538 (406.7 KiB)
Interrupt:11 Base address:0x1400

eth0:1 Link encap:Ethernet HWaddr 00:0C:29:E3:9A:15
inet addr:192.168.168.119 Bcast:192.168.168.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:11 Base address:0x1400

在查看路由信息
[root@localhost net]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.168.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 172.16.2.50 0.0.0.0 UG 0 0 0 eth0

==================================

添加一条到主机192.168.168.110的路由(通过eth0:1)
[root@localhost net]# route add -host 192.168.168.110 dev eth0:1
[root@localhost net]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.168.110 * 255.255.255.255 UH 0 0 0 eth0
172.16.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.168.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 172.16.2.50 0.0.0.0 UG 0 0 0 eth0

==================================

添加一条到主机192.168.168.120的路由(通过ip192.168.168.119)
[root@localhost net]# route add -host 192.168.168.120 gw 192.168.168.119
[root@localhost net]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.168.120 192.168.168.119 255.255.255.255 UGH 0 0 0 eth0
192.168.168.110 *

路由配置问题集

1、centos添加默认路由不成功的解决方法
正确配置'ifcfg-ethn',但重置或重启后,就是没有网关。手动添加默认路由也不能成功。
# route add default gw gaip
SIOCADDRT: Network is unreachable

用下面的方法可以添加成功:
route add -net ipnet netmask 255.255.255.252 dev eth0
route add default gw gaip

可以将这两条加入到'/etc/rc.local'中,以使其可以开机启动。但还的找到出现这种问题的根本原因:
这台机器是在公司使用pxe方式从网络进行的安装,在拿到机房配置ip时出现了上面的问题。
#cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=yourhostname
GATEWAY=192.168.1.1

这个文件里记录了公司'dhcp'所记录的信息,问题就在这里,可以将'gateway'改为现在的网关,或者直接去掉这一行。


Linux操作系统下Route命令详细使用说明

使用 Route 命令行工具查看并编辑计算机的 IP 路由表,其命令语法如下所示:
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。

Command 指定您想运行的命令(Add/Change/Delete/Print)。
Destination 指定该路由的网络目标。
mask Netmask 指定与网络目标相关的网络掩码(也被称作子网掩码)。
Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点 IP 地址。
metric Metric 为路由指定一个整数成本值标(从 1 至 9999),当在路由表(与转发的数据包目标地址最匹配)的多个路由中进行选择时可以使用。
if Interface 为可以访问目标的接口指定接口索引。若要获得一个接口列表和它们相应的接口索引,使用 route print 命令的显示功能。可以使用十进制或十六进制值进行接口索引。

/? 在命令提示符处显示帮助,有如下示例:

若要显示 IP 路由表的全部内容,请键入:
route print

若要显示以 10. 起始的 IP 路由表中的路由,请键入:
route print 10.*

若要添加带有 192.168.12.1 默认网关地址的默认路由,请键入:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1

若要向带有 255.255.0.0 子网掩码和 10.27.0.1 下一跃点地址的 10.41.0.0 目标中添加一个路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1

若要向带有 255.255.0.0 子网掩码和 10.27.0.1 下一跃点地址的 10.41.0.0 目标中添加一个永久路由,请键入:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1

若要向带有 255.255.0.0 子网掩码、10.27.0.1 下一跃点地址且其成本值标为 7 的 10.41.0.0 目标中添加一个路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7

若要向带有 255.255.0.0 子网掩码、10.27.0.1 下一跃点地址且使用 0x3 接口索引的 10.41.0.0 目标中添加一个路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3

若要删除到带有 255.255.0.0 子网掩码的 10.41.0.0 目标的路由,请键入:
route delete 10.41.0.0 mask 255.255.0.0

若要删除以 10. 起始的 IP 路由表中的所有路由,请键入:
route delete 10.*

若要将带有 10.41.0.0 目标和 255.255.0.0 子网掩码的下一跃点地址从 10.27.0.1 修改为 10.27.0.25,请键入:
route change 10.41.0.0 mask 255.255.0.0 10.27.0.25

在网络基础的时候谈过关于路由的问题,两台主机之间一定要有路由才能够互通 TCP/IP 的协议,否则就无法进行联机啊!一般来说,只要有网络接口,该接口就会产生一个路由,例如在常见主机有一个 eth0 及 lo ,所以:
[root@freeoa ~]# route [-nee]
[root@freeoa ~]# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
[root@freeoa ~]# 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 等

范例一:单纯的观察路由状态
[root@freeoa ~]# 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@freeoa ~]# 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

由上面的例子当中仔细观察 route 与 route -n 的输出结果,你可以发现有加 -n 参数的主要是显示出 IP ,至于使用 route 而已的话,显示的则是主机名称;也就是说,在预设的情况下,route 会去找出该 IP 的主机名称,如果找不到呢?就会显示的钝钝的(有点小慢),所以说,鸟哥通常都直接使用 route -n 啦! 由上面看起来,我们也知道 default = 0.0.0.0/0.0.0.0 , 而上面的信息有哪些你必须要知道的呢?

* Destination, Genmask:这两个玩意儿就是分别是 network 与 netmask 啦!所以这两个咚咚就组合成为一个完整的网域啰!

* Gateway:该网域是通过那个 gateway 连接出去的? 如果显示 0.0.0.0 表示该路由是直接由本机传送,亦即可以透过局域网络的 MAC 直接传讯; 如果有显示 IP 的话,表示该路由需要经过路由器 (通讯闸) 的帮忙才能够传送出去。

* Flags:总共有多个旗标,代表的意义如下:
    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):这个路由将不会被接受(用来抵挡不安全的网域!)
* Iface:这个路由传递封包的接口。

此外,观察一下上面的路由排列顺序喔,依序是由小网域 (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@freeoa ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0
# 上面这个动作可以删除掉 169.254.0.0/16 这个网域!
# 请注意,在删除的时候,需要将路由表上面出现的信息都写入
# 包括  netmask , dev 等等参数喔!注意注意

[root@freeoa ~]# 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@freeoa ~]# route add default gw 192.168.10.30
# 增加预设路由的方法!请注意,只要有一个预设路由就够了喔!
# 在这个地方如果您随便设定后,记得使用底下的指令重新设定你的网络
# /etc/init.d/network restart

如果是要进行路由的删除与增加,那就得要参考上面的例子了,其实使用 man route 里面的数据就很丰富了!仔细查阅一下啰!只要记得当出现『SIOCADDRT: Network is unreachable』 这个错误时,肯定是由于 gw 后面接的 IP 无法直接与您的网域沟通 (Gateway 并不在你的网域内), 所以赶紧检查一下是否输入有误。

Linux中增加软路由的两种方法/删除的方法
第一种:
route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0
/* 增加一条网络172.16.6.0/24 经过172.16.2.254 eth0 */
/* -net增加网络 -host增加主机 netmask 子网掩码 gw 网关 dev 装置,设备,这里是你的网卡名*/
route del gw 172.16.2.254 /* 删除默认网关172.16.2.254 */
route del -net 172.16.86.0/24 /* 删除默认网络172.16.86.0 */
route /* 显示当前路由表 */
常用的是这种方式,但有时你在删除或一条软路由时会不起作用,会有什么提示:
SIOCADDRT: 無法接觸網路
所以这时用如下的这种方法就可以了

第二种:
实现的功能和上面的一样
ip route add 172.16.6.0/24 via 172.16.2.254 dev eth0
ip route del gw 172.16.2.254
ip route del 172.16.6.0/24 dev eth0
ip route
 
删除的方法:
添加路由:
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0

删除路由:
route del -net 10.0.0.0 netmask 255.0.0.0 dev eth0

添加默认路由:
route add default gw 10.0.0.1

删除默认路由:
route del default gw 10.0.0.1
或者
route del default

Linux下添加路由的方法快览:

一:使用 route 命令添加
使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:
//添加到主机的路由
# route add –host 192.168.168.110 dev eth0
# route add –host 192.168.168.119 gw 192.168.168.1

//添加到网络的路由
# route add –net IP netmask MASK eth0
# route add –net IP netmask MASK gw IP
# route add –net IP/24 eth1

//添加默认网关
# route add default gw IP

//删除路由
# route del –host 192.168.168.110 dev eth0

二:在linux下设置永久路由的方法:
1.在/etc/rc.local里添加
方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254

2.在/etc/sysconfig/network里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y


该文章最后由 阿炯 于 2024-02-23 10:09:10 更新,目前是第 3 版。