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
    • 最新
    • 标签
主页 / user-256238

schweik's questions

Martin Hope
schweik
Asked: 2023-02-18 00:00:23 +0800 CST

如何使用 nftables 保护 tap 接口

  • 5

Qemu 虚拟机连接局域网主要有两种方式:type=user或type=tap. 该user模式将私有网络中的虚拟机完全隔离,通过 sNAT 托管主网络堆栈。使用tap比较复杂,需要一个virtualbridge成为master一个物理接口(eth0)和虚拟接口(tap0)。这tap0就像一个管道,用于从外部世界和主机流向 VM 的数据。我花了很多时间试图调节tap0主机端接口上的网络流量iptables/nftables例如将所有 http 请求重定向到某个内部 ip 地址,但没有成功。所有的建议、论坛和 wiki 都推荐了大量的解决方案,但这些解决方案都行不通,主要原因是:来自 VM guest 的数据包永远不会到达主机内核网络堆栈。如果 IP 主机地址不是他们的目标,他们会在网桥级别选择自己的方式,并且不满足任何数据包过滤器链调整的任何防火墙规则。您可以简单地通过将主机全局策略设置为 (with host XYtables) 来尝试DROP,您可以看到:主机网络完全失效,但来宾可以继续通过网络发送和接收数据包。

好吧,问题是:有没有其他方法,如何将 VM 来宾虚拟连接到主机虚拟网络接口?为了更好地理解图表如下:

     General virtual connections for host/VM guest
    +---------------------------------------------+
    |    +-----------------------------+          |
    |    |    iptables    host kernel  |          |
    |    |    nftables   network stack |          |
    |    +-------+---------------------+          |
    |            |                                |
    |    +-------+---------+      +-----------+   |
---eth0--+    virtual      |      |    VM     |   |
    |    |    bridge       +-tap-eth0 guest   |   |
---eth1--+      br0        |      |           |   |
    |    +-----------------+      +-----------+   |
    +---------------------------------------------+


       Host became a router for VM guest
    +-------------------------------------+
    |    +----------------+  +---------+  |
---eth0-->  host kernel   |  |    VM   |  |
    |    |                <-vppp guest |  |
---eth1-->  network stack |  |         |  |
    |    +----------------+  +---------+  |
    +-------------------------------------+

要解决我的问题,必须找到一种方法来控制(例如使用 nftables)虚拟网桥本身的流量,或者如何通过虚拟线路将 VM 来宾网络接口连接到主机的虚拟网络接口。类似于 PPPoE 网络。

但最终和最明确的方法是向 Qemu 用户模式网络添加更多参数,以便能够强制将某些端口(服务)重定向到选定的目标地址,包括主机环回。是的,我向 Qemu 团队表达了这样的愿望,并得到了答复:这不是最重要的功能。

virtual-machine
  • 1 个回答
  • 15 Views
Martin Hope
schweik
Asked: 2022-03-10 07:42:09 +0800 CST

如何配置从两个子网到防火墙的静态路由

  • 1

好吧,一张图片千言万语。3 个私有子网:

                                                  +-----+    +-----+
                                                  | PC2 |    | PC3 |
                                       Linux      | .2  |    | .3  |
  __                                +----------+  +-----+    +-----+
 i  \                               |        .1|     |          |
 n   )     +-----+                  |    ------|-----+----------+-----
 t  (      |     |  192.168.0.0/24  |.1/     / |eth1  192.168.1.0/24
 e   > ----|FW .2|------------------| < LR  X  |
 r  (      |     |              eth0|  \     \ |eth2  192.168.2.0/24
 n   )     +-----+                  |    ------|-----+----------+-----
 e__/                               |        .1|     |          |
                                    +----------+  +-----+    +-----+
                                       Router     | .4  |    | .5  |
                                                  | PC4 |    | PC5 |
                                                  +-----+    +-----+

Linux路由器:

ifcace eth0 inet static
    address 192.168.0.1/24
    gateway 192.168.0.2
    dns-nameservers 8.8.8.8

ifcace eth1 inet static
    address 192.168.1.1/24

ifcace eth2 inet static
    address 192.168.2.1/24

PCx (..1.x):

ifcace eth0 inet static
    address 192.168.1.x/24
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8

PCx (..2.x):

ifcace eth0 inet static
    address 192.168.2.x/24
    gateway 192.168.2.1
    dns-nameservers 8.8.8.8

LR

# echo "1" > /proc/sys/net/ipv4/ip_forward
# ip route list
default via 192.168.0.2 dev eth0 onlink 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1 
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.1 
192.168.2.0/24 dev eth2  proto kernel  scope link  src 192.168.2.1 

Linux 路由器可以轻松 ping 到 FW 并与公共 Internet 通信。LR 也可以 ping 所有的 PC。PCx 可以 ping 到192.168.0.1地址但不能 ping 到 FW 192.168.0.2(主机不可达)

它不打算在 和 之间进行路由192.168.1.0/24,192.168.2.0/24但非常希望通过 FW 到达公共 Internet。我知道,可以用 iptables NAT 做一些事情,这意味着配置两个防火墙串联,但这不是我们需要的。首选简单的静态路由。

我用谷歌搜索了一个注释,设置“ip规则”可能会有所帮助,但不明白如何。

拜托,你能告诉我,什么该死的配置可以设置预期的路由?

ip route可能是强大的工具,但是一些带有示例的清晰教程应该非常有用。

linux configuration
  • 1 个回答
  • 79 Views
Martin Hope
schweik
Asked: 2019-07-06 13:11:18 +0800 CST

如何快速配置/启动linux box L2 switch

  • 2

我有一个完全隔离的 LAN 192.168.22.0/24,有两个硬件交换机:1Gbit 和 10Gbit。旧的 10Gbit 交换机也可以处理 1Gbit,因此将两个交换机连接在一起没有问题。上周我们得到了无法处理 1Gbit 的新 10Gbit 交换机。我必须立即连接这些突然断开的网络部分,因为在 10Gbit 上,主要是服务器(包括 dhcp)和大多数工作站连接到 1Gbit。幸运的是,我有一个连接到这两个部分的 debian linux 盒子,我可以暂时将它配置为 1/10 Gbit 交换机。我遵循了提示,但没有观察到桥接——例如,arp 表中没有效果,从 wks 到服务器没有 ping。我写了一个脚本:

#!/bin/bash
ip link add name br0 type bridge
ip link set dev  br0 up
ip link set dev eth0 master br0 #1Gb
ip link set dev eth1 master br0 #XGb

请你能回答我一些问题:

  • eth0 和 eth1 可以有(相同的)IP 地址吗?或者IP地址可以得到br0?
  • 必须禁用/刷新/卸载 iptables 吗?(未使用 iptables)
  • 是否需要设置一些“转发”启用位?
  • 这样的软件开关真的可以转发dhcp广播吗?

我的 linux 机器上有一个运行任务,因此我没有测试如何配置 /etc/network/interfaces 的提示——我很高兴我禁用了 NetworkManager,我无法重新启动。

欢迎任何帮助和提示,我很高兴在星期一早上之前重新加入 LAN。

linux bridge
  • 1 个回答
  • 2741 Views

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