CentOS添加永久静态路由

简介:
今天又有朋友问,如何在CentOS里添加永久静态路由?这里总结一下,做个备忘录。
参考RedHat Enterprise 6的官方文档:
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-networkscripts-static-routes.html
 
我们的服务器一般启用两个网卡,一个配内网地址,一个配外网地址,但我们一般只为外网卡配置默认网关。因为如果两个网卡都配置默认网关的话,数据包出去的时候会不知道该走哪个网关。
本机跟其它机器通信时,会把数据包发送到默认网关,然后默认网关把数据包转发到目的主机。由于配置了外网网卡的默认网关,所以本机与目的主机的外网IP进行通信是OK的;但是与内网IP进行通信就没办法了,因为默认网关无法到达内网网段。(当然,如果这台LINUX机器开启了路由转发就另当别论了。)
为了与内网网段中的机器进行通信,我们写一条静态路由,来指定一个通向内网网段的路径。本文讲的就是如何在CentOS中添加永久静态路由。
 
添加永久静态路由的方法是,把路由表写入/etc/sysconfig/network-scripts/route-interface配置文件中。 interface是你的网卡,如eth1的静态路由配置文件就是route-eth1。
route-interface配置文件有两种写法:ip命令格式和network/netmask格式:
ip命令格式:
 
  1. default via gateway dev interface  // gateway替换成你的默认网关,interface替换成你的网卡
  2. ip/netmask via  gateway dev interface 
  3. …  // 根据需要添加更多的静态路由
  4.   
network/netmask指令格式: 
 
  1. ADDRESS0=网段,该网段即你想要到达的网段 
  2. NETMASK0=掩码 
  3. GATEWAY0=网关地址,该网关为本网卡的出口网关,它能够到达ADDRESS0 
  4. …  // 根据需要添加更多的静态路由
  5. ...
我们以第一种ip命令格式为例进行说明。
按照官方网站的说法,路由表中的default路由可以省略,因为使用的是默认网关。
重点是第二条路由,它指向了我们所希望到达的特定网段。ip/netmask是你想要到达的网段,gateway是本网卡的出口网关,interface指定网卡。
 
我们看一段网上的示例,该配置为网卡eth0添加了两条静态路由:
 
 
  1. 10.0.0.0/8 via 10.126.40.254 
  2. 192.168.188.0/22 via 10.126.40.254
上述配置添加了两条静态路由,分别指向了10.0.0.0/8网段,以及 192.168.188.0/22网段。10.126.40.254即是eth0的出口网关。
上述配置来自于:http://www.m690.com/?p=346。
 
我自己的服务器配置示例,为网卡eth1配置了两条静态路由:
 
 
  1. GATEWAY0=10.10.14.254 
  2. NETMASK0=255.255.0.0 
  3. ADDRESS0=192.168.0.0 
  4.  
  5. GATEWAY1=10.10.14.254 
  6. NETMASK1=255.255.0.0 
  7. ADDRESS1=10.10.0.0 
  我们也是添加了两条静态路由,分别指向了10.10.0.0/16网段和192.168.0.0/16网段,使用网卡eth1的出口网关10.10.14.254。
官方提示,使用该格式时,如果有多条静态路由,每条静态路由必须按顺序编号,如ADDRESS0, ADDRESS1, ADDRESS2等,不能跳着编号。

注:网上有资料说,第二条路由中的gateway是下一跳的网关。我特地去问了网络部的同事,他说那是不对的,那个gateway实际上是本网卡的出口网关。
第一条default路由中的gateway,即是外网网卡的默认网关。
第二条路由中的gateway(网卡的出口网关)和default路由中的gateway(默认网关)有什么区别?RedHat Enterprise 6的官方文档中说:
  The X.X.X.X (指网卡的出口网关)address does not have to be the default gateway IP address。In most cases, X.X.X.X will be an IP address in a different subnet,and interface will be the interface that is connected to, or can reach, that subnet。
文档中所说的different subnet指的是与默认网关不同的子网,该子网必须与interface的IP在同一网段。这里的子网一般是指内网网卡所在子网,这里的gateway一般是指内网网卡的网关。

本文转自 li_qinshan 51CTO博客,原文链接:http://blog.51cto.com/share/753192
相关文章
|
25天前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
99 64
|
26天前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
106 61
|
18天前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
44 1
Linux系统之Centos7安装cockpit图形管理界面
|
3天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
13 3
|
4天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
9 2
|
25天前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
79 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装