AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 948377
Accepted
kellyredbook
kellyredbook
Asked: 2019-01-10 21:11:20 +0800 CST2019-01-10 21:11:20 +0800 CST 2019-01-10 21:11:20 +0800 CST

HAProxy 源 IP 使用错误的接口/IP

  • 772

我有一个小型 Haproxy 服务器,设置了 2 个 NIC。操作系统是 CentOS7,我根据 CentOS 文档在同一个子网上配置了两个 NIC。

— 192.168.0.1, 192.168.0.2 ---- 都在 192.168.0.0/24 上 192.168.0.1 用于管理和 web gui,192.168.0.2 用于 LB 流量。

进入 LB 的流量会到达 192.168.0.2 地址,但似乎是从 192.168.0.1 地址流出到后端服务器。我尝试在配置中指定“源 IP”无济于事。

版本是 1.8.16。

如果我从 Linux 中的 LB CLI 执行 telnet,路由似乎工作正常,因此 LB 应用程序本身似乎没有在正确的接口/IP 上发出。

EDIT-1:后端服务器与 LB (192.168.0.0/24) 位于同一子网中。

ip-a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether [mac screened] brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether [mac screened] brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.2/24 brd 192.168.0.255 scope global noprefixroute eth1
           valid_lft forever preferred_lft forever

以下路由和 ip 规则已手动添加(根据指南https://access.redhat.com/solutions/30564)

# ip route show table eth0table
default via 192.168.0.0 dev eth0 
192.168.0.0/24 dev eth0 scope link src 192.168.0.1
# ip route show table eth1table
default via 192.168.0.0 dev eth1 
192.168.0.0/24 dev eth0 scope link src 192.168.0.2 

ip规则:

0:  from all lookup local 
32762:  from all to 192.168.0.2 lookup eth1table 
32763:  from 192.168.0.2 lookup eth1table 
32764:  from all to 192.168.0.1 lookup eth0table 
32765:  from 192.168.0.1 lookup eth0table 
32766:  from all lookup main 
32767:  from all lookup default 

ip ro

default via 192.168.0.0 dev eth0 proto static metric 100 
default via 192.168.0.0 dev eth1 proto static metric 101 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1 metric 100 
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.2 metric 101
centos
  • 2 2 个回答
  • 673 Views

2 个回答

  • Voted
  1. wurtel
    2019-01-12T06:03:37+08:002019-01-12T06:03:37+08:00

    如果您希望到 192.168.0.0/24 的流量来自 192.168.0.2,那么您需要添加一条规则:

    ip rule add prio 32761 to 192.168.0.0/24 lookup eth1table
    

    就像现在一样,没有规则匹配,并且路由落入具有192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1 metric 100作为第一个最具体条目的主路由表,因此 eth0 将与 IP 地址 192.168.0.1 一起使用。

    • 1
  2. Best Answer
    kellyredbook
    2019-01-14T06:18:35+08:002019-01-14T06:18:35+08:00

    问题最终与 NetworkManager 以某种方式控制路由有关。卸载了 NetworkManager,清理了界面配置文件,事情开始按预期运行,包括表格和规则。

    来源:https ://www.howtoforge.com/community/threads/first-ip-ok-second-ip-times-out.38613/

    • 0

相关问题

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • 持续监控许多服务器运行状况的简单方法?

  • Hudson 无法在 tomcat5 中启动

  • CentOS 的依赖挑战

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve