
[root@Router ~]# ip route ls
192.168.70.0/24 dev eth0 proto kernel scope link src 192.168.70.70
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.70
169.254.0.0/16 dev eth1 scope link
default via 192.168.1.1 dev eth0
2、确认是否需要改变默认路由
[root@Router ~]# ip route replace default via 192.168.70.254 dev eth0 table main
[root@Router ~]# ip route ls
192.168.70.0/24 dev eth0 proto kernel scope link src 192.168.70.70
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.70
169.254.0.0/16 dev eth1 scope link
default via 192.168.1.1 dev eth0
3、建立特殊路由表
[root@Router ~]# vi /etc/iproute2/rt_tables
255 local
254 main
253 default
200 test
4、向test路由表中添加它自己的默认路由
[root@Router ~]# ip route add default via 192.168.1.1 table test
注意:这个table test一定不要忘了写,否则写到了主路由表中
5、先看看机器当前的ip rule
[root@Router ~]# ip rule ls
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
可以看到,规则中走了3个路由表,local、main、default
我们平常用route看到的,实际是路由表main
这些规则是按序号大小顺序走的,一个不同,则走下一个,知道通路或走完为止
6、添加路由到路由表test中
[root@Router ~]# ip rule add to 59.76.0.0/16 pref 10000 table test
这个意思是说,去向IP地址范围为59.76.0.0/16的访问,则启用test的路由表中的路由规则
而test的路由规则是什么呢?上面已经设置了,走的是202.196.x.1的路由.
现在再来看一下当前的ip rule
[root@Router ~]# ip rule ls
0: from all lookup local
10000: from all to 59.76.0.0/16 lookup test
32766: from all lookup main
32767: from all lookup default
linux route命令 用于显示和 *** 作IP路由表 。
要实现 两个不同子网之间的通信 ,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址 设置为 Linux机器的默认路由 。
格式:
[root@linux ~]# route [-nee]
[root@linux ~]# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
[root@linux ~]# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]
1、 查看相关参数:
-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee :使用更详细的资讯来显示
2、增加 (add) 、删除 (del) 路由的相关参数:
-net :表示后面接的路由为一个网域;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定 netmask 决定网域的大小;
gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
dev :如果只是要指定由那一块网卡连线出去,则使用这个设定,后面接 eth0 等
设置默认路由
格式:route add default gw {IP-ADDRESS} {INTERFACE-NAME}
其中,
参数{IP-ADDRESS): 用于指定路由器(网关)的IP地址;
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。使用/sbin/ifconfig -a可以显示所有接口信息。
例:
添加到指定网络的路由规则
格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
其中
参数{NETWORK-ADDRESS}: 用于指定网络地址
参数{NETMASK}: 用于指定子网掩码
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。
例:
屏蔽一条路由,设置到指定网络为不可达 ,避免在连接到这个网络的地址时程序过长时间的等待
格式:route add -net {NETWORK-ADDRESS} netmask {NETMASK} reject
例:
删除路由设置 ,参数指定的方式与route add相似。
格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
格式:route del -net {NETWORK-ADDRESS} netmask {NETMASK} reject
例:
注意的是 ,直接在命令行下执行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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)