首页 > 编程知识 正文

能获取ip但ping不通网关,ip地址ping不通怎么办

时间:2023-05-05 07:45:15 阅读:22805 作者:4265

(一)为什么需要浮动IP

现在有在某个Linux上部署网络APP的场面。 我的APP在tomcat里跑。 Linux网卡的ip为115.239.100.120,部署关系大致如下:

用户可以通过键入IP地址访问此APP,但天有意外情况,在某些情况下可能会因为某些原因导致服务中断。 于是,开发者想到了一个方法。 在另一个Linux上部署相同的APP应用程序。 这样一来,该服务将锁定,另一个顶层将上升,体系结构如下

这种情况:

如果用户无法访问100.120,则可以访问100.121,但这导致了问题,用户需要记住两个IP,这很不方便。 所以这个时候需要浮动IP。

)2)浮动IP是什么

在上面,我们构建了两个相同的服务,但是用户需要记住两个IP,这非常麻烦,所以可以采用其他策略。 将IP添加到一台计算机上,以便用户访问此IP。 一个网卡可以添加多个IP。

例如,向100.120主机添加100.80个IP,用户访问名为115.239.100.80的IP,然后在该计算机上的服务锁定后,将该IP移动到名为100.121的计算机上。 这样,对于用户来说,始终访问的只有IP。

在上面的场景中,一个名为115.239.100.80的ip是浮动ip,当主机服务锁定时,它将移动到另一个可以提供相同服务的主机。

对用户来说,他们总是认为服务正常。 一般来说,LVS(LVS或Linux Virtual Server的简写,即Linux虚拟服务器)是虚拟服务器集群系统。 本项目由章文嵩博士于1998年5月创立,是国内出现最早的自由软件项目之一。 -百度百科(集群等,其实高可用性集群一般都有浮动IP。 如果不是的话,机器停机怎么玩?

三、如何布局

(1)关键技术点)一种可以通过单个网卡绑定多个IP地址的技术。 )2)将浮动IP放在主服务器上,将eth0作为eth0:1复制到主服务器,然后CP/etc/sys config/network-scripts/if CFG-eth0/eteg ifCFG-eth033601编辑文件if CFG network-scripts/if CFG-eth0:1将设备设为eth 0:1,将NM_CONTROLLED设为no,将IPADDR设为浮动IP 设备=' eth 0:1 ' boot proto=' static ' on boot=' yes ' nm _ controlled=' no ' type='以太网' IP addr=' 601 IP 确定是否有ifup eth0:1浮动IP地址。 ip addr或IPa现在访问浮动IP地址10.)3)在从服务器上配置浮动IP的步骤与主服务器完全相同,eth0:1的IP地址和浮动IP :10.xxp 在开始测试网卡之前,必须在“主服务器”上关闭浮动IP: ifdown eth0:1,然后在“从服务器”上启动eth0:1 )4)其他服务配置流)5)使用编写脚本自动打开/关闭浮动IP的crontab自动执行技术,定期检查IP地址的状态,启动eth0:1或关闭eth033601。 答:从服务器脚本在根目录下生成脚本文件

touch slaveFloatIP.sh创建脚本

vim slaveFloatIP.sh复制以下代码:

master _ IP=' 10.xx.1.22 ' float _ IP=' 10.xx.1.212 ' C1=$ (/usr/jadyb/ping $ master _ IP-C1|grepu nu n

   /usr/sjadyb/ifdown eth0:1 fi 说明:

ping主服务器IP地址或者ping浮动IP地址,如果ping不通,说明主服务器挂掉了或者没启动浮动IP,则在从机上启动浮动IP。

当主服务器再上线,即能够ping通主服务器且能ping通浮动IP地址,则在从机上关闭浮动IP。

备注:   如 果还有其他从服务器,只需拷贝该脚本。 b:主服务器脚本 , 在root目录下, 生成脚本文件 touch masterFloatIP.sh

        编写脚本

vim masterFloatIP.sh 复制下面的的代码进去: FLOAT_IP="10.xx.1.212"         c=$(/usr/jadyb/ping $FLOAT_IP -c 1|grep Unreachable|wc -l)         if [ $c -gt 0 ]         then                   /usr/sjadyb/ifup eth0:1 fi

说明:ping不通浮动IP地址,则启动eth0:1

(6)使用crontab每隔5秒自动执行脚本

    使用crontab -e命令

    进入文件编辑界面,“主服务器”配置如下:

* * * * * /root/masterFloatIP.sh* * * * * sleep 5; /root/masterFloatIP.sh* * * * * sleep 10; /root/masterFloatIP.sh* * * * * sleep 15; /root/masterFloatIP.sh* * * * * sleep 20; /root/masterFloatIP.sh* * * * * sleep 25; /root/masterFloatIP.sh* * * * * sleep 30; /root/masterFloatIP.sh* * * * * sleep 35; /root/masterFloatIP.sh* * * * * sleep 40; /root/masterFloatIP.sh* * * * * sleep 45; /root/masterFloatIP.sh* * * * * sleep 50; /root/masterFloatIP.sh* * * * * sleep 55; /root/masterFloatIP.sh

“从服务器”配置也是一样的,脚本路径改为 /root/slaveFloatIP.sh

四:总结

到这里就完成了浮动IP的配置和主从服务器自动开启浮动IP。

完成后就可以通过浮动IP地址访问,服务器集群内只要有一台服务器正常运行,web就能访问,实现了web高可用。

本文参考一下文章完成:

1):https://blog.csdn.net/readiay/article/details/53538085

2):https://blog.csdn.net/weixin_40006394/article/details/80451269

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。