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 / 问题 / 1164890
Accepted
DBCL
DBCL
Asked: 2024-09-07 00:56:55 +0800 CST2024-09-07 00:56:55 +0800 CST 2024-09-07 00:56:55 +0800 CST

伪装回应有错吗?

  • 772

描述

10.223.0.7我的目标是从机器 A ( 10.101.0.40) ping 机器 C ( )

我有 2 个网络和 3 台机器

  • 网络A:10.223.0.0/24

  • 网络B:10.101.0.0/16

  • 机器 A(“pinger”):(10.101.0.40在 eth5 上)

  • 机器 B(“路由器”):(10.101.2.97在 ens7 上)和10.223.0.1(在 wg0 上)

  • 机器 C(“被 ping 的”):(10.223.0.7在 wg0 上)

  • 我已在机器 B 上全局启用 IP 转发,并在 ens7 和 wg0 接口上启用

  • 我的防火墙正在接受机器 B 上的转发规则。

  • 我在机器 B 上添加了这条规则:iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE以启用伪装

  • 我在机器 A 上添加了此规则ip route add 10.223.0.0/24 via 10.101.2.97 dev eth5来路由数据包

测试

当我启动 ping 时,我可以看到以下内容tcpdump -nni any icmp:

机器 A:

18:16:12.976724 eth5  Out  IP 10.101.1.40 > 10.223.0.7: ICMP echo request, id 7373, seq 1065, length 64

机器B:

18:16:12.977241 ens7  In  IP 10.101.1.40 > 10.223.0.7: ICMP echo request, id 7373, seq 1065, length 64
18:16:12.977287 wg0   Out IP 10.223.0.1 > 10.223.0.7: ICMP echo request, id 7373, seq 1065, length 64
18:16:12.978201 wg0   In  IP 10.223.0.7 > 10.223.0.1: ICMP echo reply, id 7373, seq 1065, length 64
18:16:12.978217 ens7  Out IP 10.223.0.7 > 10.101.1.40: ICMP echo reply, id 7373, seq 1065, length 64

机器 C

18:16:12.977754 wg0   In  IP 10.223.0.1 > 10.223.0.7: ICMP echo request, id 7373, seq 1065, length 64
18:16:12.977767 wg0   Out IP 10.223.0.7 > 10.223.0.1: ICMP echo reply, id 7373, seq 1065, length 64

并且机器 A 没有收到任何响应。

我认为问题出在机器 B 日志的第 4 行。SRC IP 是,10.223.0.7但在我看来应该是10.101.2.97,ens7 网络上机器 B 的 IP。我完全不知道为什么会这样。

我尝试添加这个伪装规则iptables -t nat -A POSTROUTING -o ens7 -j MASQUERADE但正如预期的那样:它不起作用。

问题

为什么伪装对请求起作用(参见机器 B 的第二行),而对响应不起作用(参见机器 B 的第 4 行)?

routing
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    DBCL
    2024-09-09T16:58:51+08:002024-09-09T16:58:51+08:00

    找到了。

    第四行对我来说看起来很奇怪,但多亏@larsks 的设置,我意识到它很好。

    ens7 网络背后的技术是 openstack。私有网络正在阻止数据包。

    我已经在我的 OpenStack 堡垒上运行了这些命令:

    openstack port set --no-security-group a1a[...]669
    openstack port set --disable-port-security a1a[...]669
    

    其中,beinga1a[...]669为MachineB的ens7对应的端口号

    并且 ping 很快就恢复正常。

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • 将路由永久添加到 Solaris 10

  • Quagga 套件中的 ./configure --disable-zebra 代表什么?

  • 使用特定接口进行出站连接(Ubuntu 9.04)

  • Linux TC/策略路由工具

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