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 / 问题 / 716926
Accepted
Binarus
Binarus
Asked: 2022-09-12 08:13:16 +0800 CST2022-09-12 08:13:16 +0800 CST 2022-09-12 08:13:16 +0800 CST

在 nftables 中,如果相应的接口分配了多个 IP 地址,我们如何获取数据包进入的 IP 地址?

  • 772

2022 年 9 月 15 日更新:

事实证明,我试图实现的目标没有多大意义。因此,实际上这个问题应该被删除。但是,有一些非常有启发性的评论;因此,我暂时将其保留原样,并将有关其命运的决定留给社区。

原始问题:

我目前正在努力学习nftables并取得了一些进展。现在我有以下问题(如果问题很愚蠢,请多多包涵,但所有引用都链接到 wiki.netfilter.org,目前已关闭(我通常的运气:-)):

我有一个 IPv4 网络,其中包含一些客户端 PC 和正在运行的路由器/防火墙 PC nftables。路由器有两个IP地址,192.168.20.253和192.168.20.254。前者仅用于管理路由器(例如,SSH 守护程序正在该地址上侦听路由器),而后者是客户端应使用的网关地址。

在路由器的nftables规则集中,我希望能够区分传入的数据包(对于此类数据包,当(目标地址)实际上是.253时,我将只允许 SSH )和传入的数据包(对于此类数据包,我如果在本地网络之外,则只允许它们)。daddr.253.254daddr

.253如果和.254被分配给两个不同的接口,我知道如何实现这一点。但这种情况并非如此; 两个路由器 IP 地址都分配给同一个接口。

有人可以给我小费吗?我没有找到提示man nft。ip它提到了or之类的路由表达式nexthop,但这显然没有帮助。我是否需要创建两个接口(在同一个 NIC 上)并分配.253给其中一个和.254另一个?

nftables
  • 1 1 个回答
  • 104 Views

1 个回答

  • Voted
  1. Best Answer
    gapsf
    2022-09-12T09:11:29+08:002022-09-12T09:11:29+08:00

    路由器有两个IP地址,192.168.20.253和192.168.20.254 ...都...分配给同一个接口

    所以我们有类似的东西:

    # ip addr
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:f8:ed:0e brd ff:ff:ff:ff:ff:ff
        inet 192.168.20.254/24 brd 192.168.20.255 scope global enp0s8
           valid_lft forever preferred_lft forever
        inet 192.168.20.253/24 brd 192.168.20.255 scope global secondary enp0s8
           valid_lft forever preferred_lft forever
    

    因此,两者都在相同的物理以太网端口(L1)和相同的 MAC 地址(L2)上。

    我想阻止客户通过 .253 访问互联网

    也就是说,客户端可以将其计算机上的网关配置192.168.20.253为192.168.20.254

    在路由器的 nftables 规则集中,我希望能够区分通过.253 传入的数据包

    让我们看看这里有什么问题。

    ...

    原因之一是我希望以后能够轻松地将 .253 更改为其他内容(而 .254 是“固定的”)。

    运行简单的 DNS 服务器并让客户端使用 DNS 名称而不是 IP 进行连接。

    但我明白我无法以正常方式实现这一目标

    您的场景中的正常方法是检查 dst IP 并设置 DNS。看上面。

    我将尝试创建第二个接口,我将其分配给 .253;这将解决问题。

    如果您想在物理层和数据链路层分离用户,您只需要一个单独的接口。

    此外,您使用的 IP 地址来自同一个 IP 子网,因此即使使用两个接口也没有任何意义,而且当通过两个接口访问同一个子网时,您也会遇到路由问题。

    您不能使 192.168.20.253 和 192.168.20.254 位于大于 /31 前缀的不同子网中。

    • 1

相关问题

  • nftables:更改或创建新表时刷新/删除

  • nftables 不工作,我做对了吗?

  • 我可以在 nftables 中匹配一组负数吗?

  • 如何在 nftables 中按名称创建一组命名接口?

  • 重启后 Nftables 规则消失了!

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