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
    • 最新
    • 标签
主页 / unix / 问题 / 762552
Accepted
Carve8851
Carve8851
Asked: 2023-11-28 15:24:28 +0800 CST2023-11-28 15:24:28 +0800 CST 2023-11-28 15:24:28 +0800 CST

基于策略的路由导致 NAT 无法正常工作

  • 772
echo "200 rj45" >> /etc/iproute2/rt_tables
echo "201 WIFI" >> /etc/iproute2/rt_tables
ip route add default via 192.168.5.9 dev eth0
ip rule add from 192.168.5.8/24 table rj45
ip rule add from 192.168.61.128/24 table WIFI
ip route add default via 192.168.5.9 dev eth0 table rj45
ip route add default via 192.168.61.38 dev wlan0 table WIFI
iptables -t nat -A POSTROUTING -s 10.196.0.0/16 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.196.0.0/16 -o wlan0 -j MASQUERADE
ip route flush cache

你好。上述命令是在 Linux 服务器 1 启动时输入的。

在Linux服务器1中,有3个接口。 2个接口是WAN接口,eth0具有192.168.5.8/24 IP,wlan0 具有192.168.61.128/24 IP。另一个接口是LAN ,IP为10.196.3.254/16。

Linux 服务器 1 eth0通过IP 192.168.5.9/24连接到Linux 服务器 2 eth0。

上述策略路由命令是针对Linux策略路由实现的。默认路由是 rj45,但在某些情况下默认路由更改为 WIFI。

当以下 NAT iptables 命令不生效时,我遇到问题,特别是使用命令ip Rule add from 192.168.5.8/24 table rj45。当客户端IP 10.196.3.253/16 ping 192.168.5.9时,这是Linux Server 1 eth0的子网。 如果10.196.3.253 ping 192.168.3.9哪个Linux服务器2别名IP,就可以ping通。

Linux 服务器 2 上的 tcpdump -i eth0 icmp 显示它尝试回复 10.196.3.253 的 icmp ping,这意味着 ICMP ping 很可能不是 NAT。下面是输出

12:31:14.519000 IP 192.168.5.8 > 192.168.5.9: ICMP echo request, id 4213, seq 155, length 64
12:31:14.519018 IP 192.168.5.9 > 192.168.5.8: ICMP echo reply, id 4213, seq 155, length 64
12:31:14.520018 IP 192.168.5.9 > 10.196.3.253: ICMP echo reply, id 4213, seq 155, length 64

知道为什么 NAT 在此设置中不起作用吗?为了清晰起见,下面是网络图。

在此输入图像描述

route
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    Tom Yan
    2023-11-28T16:09:48+08:002023-11-28T16:09:48+08:00

    您的 ip 规则与子网 id 而不是地址匹配,因为您在那里有前缀长度/24(而不是/32或省略)。

    前缀长度/24仅当您在接口上配置 IP 时才合适/必需,在这种情况下,它用于表示子网掩码/大小。在其他情况下,除非您确实想要匹配子网,否则不应包含它(在这种情况下,您也应该使用正确的地址,例如192.168.5.0for /24)。

    虽然192.168.5.8/24作为子网 ID 并不完全有效/有意义,但它可能会导致192.168.5.9被规则覆盖。因此,来自的“反向 DNAT”回复将通过服务器 1 上的路由192.168.5.9路由/转发回其自身,而不是路由/转发到。defaultrj4510.196.3.253

    • 0

相关问题

  • pppd 默认路由配置

  • BSD 中的等效命令“route -n”

  • 如何理解路由的输出

  • 重启后使添加的路由持久化

  • 通过 VPN 路由更多流量

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve