为网域或主机添加路由:
route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]
注意:使用route添加的路由在机器重启后就不存在了,若想添加的路由一直可用,写入到配置文件中/etc/sysconfig/network-scripts/route-ethN
增加 (add) 与删除 (del) 路由的相关参数:
-net :表示后面接的路由为一个网域(网段)的路由;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定netmask决定网域的大小(通常配合-net使用);
gw :gateway 的简写,后续接的是 IP (必须个本机的其中一块网卡处于同一网段),与 dev 不同;
dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等
设置默认路由:
格式:
route add default gw {IP-ADDRESS} | dev {INTERFACE-NAME}
参数{IP-ADDRESS): 用于指定网关的IP地址;
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。使用/sbin/ifconfig可以显示所有接口信息。
IP-ADDRESS 和 INTERFACE-NAME只能指定其中一个
例:route add default gw 10.0.0.2
上例实际上等同于:
route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.2
默认路由可以在网卡配置里进行配置:
grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.0.0.2
添加到指定网段的路由:
格式:
route add -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
添加到指定网络的路由规则,其中
参数{NETWORK-ADDRESS}: 用于指定网络地址
参数{NETMASK}: 用于指定子网掩码
参数{INTERFACE-NAME}: 用于指定接口名称,如eth0。
例: route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0
删除:
格式:
route del -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME}
例: route del -net 10.0.0.0 netmask 255.255.255.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} reject
192.168.1.0网段(源头),192.168.1.1网关(途径)的某一服务器想连入172.16.1.0/24段(目的地),该如何添加路由???
route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.1.1
在源头主机上执行上述命令设定,数据途径哪台主机,到达目的地网段
gw(途径主机的IP)的设定必须和源头主机IP必须在同一网段,而不需要和目的地处于同一网段(由其他gw完成)
上述的配置只是临时生效,如果要永久生效必须写入到配置文件中:有3种方式
法一:
vim /etc/sysconfig/static-routes #默认不存在此文件
加入如下内容:
any net 192.168.1.0/24 gw 192.168.1.1
法二:
vim /etc/sysconfig/network-scripts/route-eth0 #默认不存在此文件
加入如下内容:
192.168.1.0/24 via 192.168.1.1
以上两种方式,重启网络服务和重启系统都会生效!
法三:
vim /etc/rc.local
加入如下内容:
route add -net 192.168.1.0/24 gw 192.168.1.1
这种方式重启网络服务将会失效,但重启机器生效
设置包转发
在 CentOS中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启Linux的路由功能可以通过调整内核的网络参数来实现。
#sysctl -w net.ipv4.ip_forward=1 #命令行执行
这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要上述配置写入配置文件/etc/sysctl.conf。
echo “net.ipv4.ip_forward=1” /etc/sysctl.conf
sysctl -p #使配置立即生效
原文地址:http://blog.51cto.com/nickfox/2089177