`

linux 重启网络服务后路由表丢失问题的解决方案

 
阅读更多

服务器多块网卡,需要访问多个网段,因此需要手动添加路由信息到路由表。

 -----------------------------操作-----------------------------------------

一:使用 route 命令添加
使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:
//添加到主机的路由(针对单个主机添加)
# route add –host 192.168.1.11 dev eth0
# route add –host 192.168.1.12 gw 192.168.1.1
//添加到网络的路由(针对某个网段添加)
# route add –net 192.168.1.11  netmask 255.255.255.0 eth0
# route add –net 192.168.1.11  netmask 255.255.255.0 gw 192.168.1.1
# route add –net 192.168.1.0/24 eth1
//添加默认网关
# route add default gw 192.168.2.1
//删除路由
# route del –host 192.168.1.11 dev eth0

 

 后来发现每次重启路由信息都会丢失,需要再次手动添加,于是把路由信息添加到rc.local里面的,服务器重启之后,执行"route -n" 命令查看,需要添加的路由表信息都有了,一切看似非常完美。

 

-----------------操作------------------------

在/etc/rc.local里添加

 

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

 

 但是。。。。

 

后来发现时不时的服务器还是无法访问某个网段,自己技术不精,只能非常艰难的通过各种方式去查找原因。后来发现,是因为其中一块网卡故障,造成网卡重启了。因为有4快网卡,所以当时想法很简单,那就重新换一块。

 

之后又风平浪静了一段时间,但是(这两个字太可怕了。。。),某一天一个网段又访问不到了,查看message日志,果真,网卡服务又自动重启了。看来这种临时解决方案是不行的,需要保证在网卡重启以后要添加的路由信息能够自动添加上,rc.local里面的脚本写入只会在服务器重启的时候有效,看来还得找其他的路由表写入切入点。

 

一番搜索,发现需要在”/etc/sysconfig/static-routes“里头写入要添加的路由信息即可,static-routes这个文件就是保存静态路由表,重启后不会掉,如果文件目录下没有这个文件,自己手动建立一个。但是刚开始尝试使用这种方案,发现没有效果,要么语法写错了,要么是路由添加错了。

 

---------------------------------以下是引用-------------------

根据网上的说法,static-routes其实在被network这个脚本调用的,打开这个脚本:

/etc/rc.d/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

network在执行的时候到static-routes里面寻找any开头的行,然后执行

/sbin/route add -$args 相当于手动执行了route add脚本,那后面事情就简单了,回到了手动执行的方式,根据前面的说明,正确的脚本就是:

any host 10.0.0.10 gw 192.168.1.1

any net 192.168.3.0/24 gw 192.168.3.254 dev em2

network执行的时候把any去掉,获取后面的参数:host 10.0.0.10 gw 192.168.1.1

然后执行route add -host 10.0.0.10 gw 192.168.1.1

 

注意这里host前面的-是network自带的,不需要配置到static-routes文件中。

 ---------------------------------------------end----------------------------------

 在这位朋友的指导下,问题得到了解决,

也尝试了一下any net 192.168.3.0/24 gw 192.168.3.254的另外一种写法:

any net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.254  em2

此种写法也是正确的,因此可以理解为192.168.3.0/24=192.168.3.0 netmask 255.255.255.0

  

现在,好像万事大吉了,但是还有个疑问,那块内网网卡为什么会不定时重启呢?

 

 

最后也确认了另外一个问题,就是之前添加路由的时候,有时候会报错:

 

SIOCADDRT: No such process

 

这个问题是出在自己添加时候的网管号段写错了,应该是10.254,一直写成11.254。。。

 

另外,也发现网上对这个问题的另外一种解决方案:

 

1:一般是配置的IP地址有问题,注意检查ip与gateway是不是在一个网段内,还有是不是有拼写错误

2:如果你添加/修改默认网关时遇到这个问题。原因:你要添加的网关不在你主机所在的网段。比如你要添加的网关是10.57.50.1      

route add 10.57.50.1/32 dev em2(这句尝试没问题)

然后再     

route add default gw 10.57.50.1(尝试后好像直接把默认网关修改了,造成外网无法访问,远程无法操作了。。。,default gw 与外网映射,失误。。。)

 

 

参考网页地址;

http://www.sannet.net/about-sannet/jishu-jieda/241-linux-static-routes.html

http://zhidao.baidu.com/link?url=D8jEqUnbaOkjMxUF2gVBPBBCRKSzjpRnOF_lY15q1Wp_MfhIwf9W4aqsYLsX2qzAqdi46neT3LUCNwHx5XYQx_

分享到:
评论

相关推荐

    Linux路由表的结构与算法分析

    在Linux操作系统中,路由表是网络通信的核心组件,它决定...理解这些原理对优化网络性能、解决网络问题以及实现复杂路由策略至关重要。在实际操作中,可以根据需求灵活运用各种路由工具和方法,以实现高效的数据传输。

    Linux接入局域网配置路由表.ppt

    Linux 网络基础知识包括网络协议、网络接口、路由表、网络命令等。 Linux 网络基础知识可以通过学习Linux操作系统的网络部分来获得。例如,学习Linux网络协议、网络接口、路由表等。 Linux 网络基础知识也可以...

    linux路由表详解

    linux路由表详解,详细的路由结构和linux系统路由的设置等内容

    linux自动写路由表脚本

    针对suse linux定制开发,主要解决手动添加路由信息重启后丢失的问题,使用该脚本增加修改路由可以一劳永逸,试用下吧,欢迎交流。 Usage: proute {add|del|refresh|show|sync} HOST Netmask Gateway Modify routing...

    Linux网络管理与网络服务

    ### Linux网络管理与网络服务详解 #### 知识点一:端口与网络通信 端口在计算机网络中扮演着至关重要的角色,它作为特定应用程序或进程的通信端点,与主机的IP地址和通信协议紧密关联。在互联网协议簇中,传输控制...

    路由表中的metric

    路由表中的`metric`是网络路由决策中的核心概念,它是一种衡量到达目标网络路径质量的度量标准。路由算法利用`metric`来决定数据包应该通过哪个接口转发,以达到最优的传输效果。以下是关于路由表中`metric`的一些...

    ROS路由表ROS路由表ROS路由表ROS路由表ROS路由表ROS路由表

    同时,了解网络拓扑和通信模型也是解决此类问题的关键。 总的来说,ROS路由表是ROS网络的核心组件,它决定了节点间的通信路径和方式。深入理解并熟练掌握ROS路由表的配置和管理,对进行高效的ROS开发和维护具有重大...

    linux-Graphpath从UnixLinux的路由表中生成一个ASCII网络图

    使用Graphpath,你可以清晰地看到这些路由条目的相互关系,这对于排查网络问题、优化路由策略或者理解网络布局都有很大帮助。例如,你可以看到哪些接口连接到外部网络,哪些接口连接到内部网络,以及数据包是如何在...

    Linux网络体系结构 Linux内核中网络协议的设计与实现

    《Linux网络体系结构:Linux内核中网络协议的设计与实现》这本书深入探讨了Linux操作系统内核中的网络架构和协议栈的实现。Linux网络体系结构是理解操作系统如何处理网络通信的关键,它涉及到网络协议的各个层次,...

    linux 路由表功能解析.pdf

    Linux 路由表是 Linux 操作系统中的一种网络路由管理机制,用于管理和维护网络路由信息。路由表是一个数据结构,存储着网络路由信息,包括destination IP地址、网关 IP 地址、子网掩码、flags 等信息。 Linux ...

    linux 路由表功能解析.docx

    Linux 路由表功能解析 Linux 路由表是指Linux 操作系统中管理路由器的功能模块。路由器是网络中的枢纽,负责将数据包从源主机传输到目的主机。Linux 路由表功能解析是指对Linux 路由表的解析和管理,包括路由表的...

    四大运营商路由表

    路由表是网络通信中的核心元素,它决定了数据包在网络中的传输路径。在互联网的世界里,四大运营...对于网络管理员和IT专业人士来说,掌握路由表的知识能帮助他们在问题排查、网络规划和性能优化方面做出更明智的决策。

    网络工程师教你如何读懂路由表

    ### 如何读懂路由表:网络工程师的深度解析 在IT行业,尤其是网络工程领域,理解路由表对于确保网络数据高效、准确地传输至关重要。本文旨在深入解析路由表的关键概念及其工作原理,帮助读者掌握如何阅读并解读...

    Linux DHCP网络故障排除一例.pdf

    解决方法是卸载缺省的 DHCP 客户端程序,安装其他兼容的客户端程序,重新启动网络和 DHCP 客户机,最终解决了 Linux 客户机无法取得 IP 地址的问题。 知识点一:DHCP 服务器和 DHCP 客户机的交互过程 DHCP...

    深入理解LINUX网络内幕和LINUX网络栈实现源代码分析合本

    《深入理解LINUX网络内幕和LINUX网络栈实现源代码分析合本》是一本结合理论与实践,专门探讨Linux操作系统网络层实现的书籍。通过详细分析Linux网络协议栈的源代码,读者可以深入理解Linux网络工作的核心机制。本书...

    中国移动宽带全网路由表

    【中国移动宽带全网路由表】是网络管理员和IT专业人员在进行多线路由配置和BGP(边界网关协议)设置时的重要参考资料。这个路由表包含了中国移动宽带网络的所有路由信息,用于指导网络流量如何在互联网上高效、稳定...

    中国电信宽带全网路由表

    同时,当网络出现故障时,路由表可以帮助迅速找出问题并恢复服务。 总的来说,【中国电信宽带全网路由表】不仅是中国电信网络基础设施的核心组成部分,也是保障网络稳定性和服务质量的关键工具。对于专业网络技术...

    2022年优秀-Linux网络服务Linux基础网络设置.pptx

    Linux网络服务是指在Linux操作系统上运行的网络服务,包括网络参数设置、文件服务器构建、DNS域名解析服务器构建、LAMP企业网站平台构建、Postfix电子邮件系统构建等。为了构建这些服务,需要对Linux基础网络设置有...

    路由表详解(网络技术)

    - **故障排查**:通过检查路由表可以帮助定位网络问题。 - **性能优化**:调整路由表可以提高网络的整体性能。 总之,理解路由表及其工作机制对于确保网络的稳定性和可靠性至关重要。通过对路由表的深入分析,网络...

    windows路由表

    在 Windows 操作系统中,路由表是一个重要的组件,它负责将数据包路由到正确的网络目标。路由表是 Windows 的 TCP/IP 协议栈的一个重要部分,但它不是 Windows 操作系统向普通用户显示的东西。如果你要查看这个...

Global site tag (gtag.js) - Google Analytics