Centos配置双公网IP

背景:在centos服务器上配置两个公网IP,希望可以访问两个IP时,可以指向这台机器

环境:

[root@smate-yali224 conf]# cat /etc/redhat-release                               
CentOS release 6.9 (Final)

配置网卡后 ,系统只支持一个网关。由于公网IP在不同的段,所以需要两个网关。
(注意配置网关,别弄的自己远程不了)
配置两个网关后,发现有且仅且一个公网IP生效,不能两个同时联网

经上网查后,发现在一个叫“Linux内核的 反向路由检查机制” 东西

Linux默认启用了反向路由检查 当Linux IP协议栈收到一个IP包时,会找路由。
本机的包会往上层协议送,而非本机的包会根据路由转发。
为了防止非法的包被转发或送给上层协议,查找路由后Linux还会调用fib_validate_source()以 检查其来源的合法性,基本原理是根据包的源地址查找路由的出接口,然后比较包的原始入接口是 否和查到的出接口一致;如果一致则放过,如果不一致查询skb->dev的rp_filter值,为1时将丢弃这 个包,0时放过。
如果2个网卡在一个Lan里面,那么服务器可能从eth0或者eth1发现网关, 如果一个包从eth0进入了, 而网关在eth1上, 那么从eth1是出不去的, 就不通了. 反向路由检查要求从哪里来的才能回哪去.
关闭反向路由检查(根据自己的情况替换第二第三行的网卡名), rp_filter中为1,默认开启。改为0 就关闭了这个检查。

版权声明:本文为CSDN博主「LeocenaY」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/changqing1234/article/details/81068780

我的理解就是:你怎么来的 就怎么出去,如果你乱来,不好意思。rp_filter不放过你。

操作如下:
先配置/etc/sysctl.conf 添加下列两行,如果存在就将值改为0:

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

重新加载系统参数

 sysctl -p   

关闭rp_filter

echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/em3/rp_filter   #公网IP1所在网卡
echo 0 > /proc/sys/net/ipv4/conf/em1/rp_filter   #公网IP2所在网卡

这时通过SSH,两个IP都可以远程上了。设置成功。

参考链接:https://www.cnblogs.com/Cherry-Linux/p/10683525.html


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:Centos配置双公网IP

本文作者:wangzhirui

发布时间:2019-08-14, 18:28:07

最后更新:2025-02-27, 02:03:58

原始链接:https://wangzhirui.com/2019/08/14/Centos配置双公网IP/

转载请保留原文链接及作者。

目录