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 / 问题

问题[bridge](unix)

Martin Hope
YoavKlein
Asked: 2022-10-07 22:37:19 +0800 CST

net.bridge.bridge-nf-call-iptables 内核参数是什么?

  • 2

我正在按照使用 kubeadm 安装 kubernetes 的指南进行操作,作为安装过程的一部分,我需要设置以下内核参数sysctl.d/99-kuvernetes-cni.conf:

net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1

我知道这些属于br_netfilter模块,因为我只能sysctl -a在加载此模块后才能看到它们。

但它们都是关于什么的?它们对于运行 Kubernetes 真的有必要吗?

networking bridge
  • 1 个回答
  • 50 Views
Martin Hope
Binarus
Asked: 2022-10-02 01:38:16 +0800 CST

如何让 Linux 为不同 PC 上的不同桥接设备生成不同的 MAC 地址?

  • 5

我刚刚将两台服务器从Debian 10 (Buster) 升级到Debian 11 (Bullseye)。之后,我再也无法通过网络联系到他们中的任何一个。经过一番调查,发现了以下问题:

两台机器都配置了桥接设备。显然,Debian 为桥接设备分配 MAC 地址的算法已经从 10 版本更改为 11 版本。升级后,第一台服务器上的桥接设备与第二台服务器上的桥接设备具有相同的 MAC 地址,这可以肯定以前不是这样。

那里的答案之一声称网桥是纯粹的内部设备,因此网桥的 MAC 地址无关紧要。然而,这显然是错误的。至少在我的情况下,来自两台机器的数据包都是以硬件源地址作为网桥的 MAC 地址发出的,并且两台机器上的网络端口只有在它们以网桥的 MAC 地址为目的地时才处理传入的数据包。

由于两台机器上的 MAC 地址相同,因此网络变得无法使用,这是完全合乎逻辑且可以理解的。

如何让 Debian 为不同机器上的网桥设备生成不同的 MAC 地址(甚至在同一台机器上,但这不是我的问题)?

debian bridge
  • 3 个回答
  • 484 Views
Martin Hope
Mark
Asked: 2022-04-19 13:43:58 +0800 CST

具有中继端口和自桥端口的 Linux 桥接器

  • 1

我使用命令创建了可识别 VLAN 的网桥并添加了相关接口:

% ip link add br0 type bridge vlan_filtering 1
% ip link set dev eth0 master br0
...

(并对 eth1、eth2、eth3 重复此操作)

现在,我希望桥接端口能够处理具有多个标签的帧,并将这些帧从标签上剥离并传递到端口br0,我有一个监听守护进程:

% bridge vlan del dev eth0 vid 1
% bridge vlan add dev eth0 vid 2-4094
...

(并对 eth1、eth2、eth3 重复此操作)

完成所有命令后,网桥设置如下所示:

% bridge -c vlan sh
port    vlan ids
br0      1 PVID Egress Untagged

eth3     2-4094

eth2     2-4094

eth1     2-4094

eth0     2-4094

br1      1 PVID Egress Untagged

现在,当我从接口ping后面的主机发送到(具有 IP 192.168.1.1)时,我看到eth0 确实在接收标记帧(在我的情况下 ID 是 10),但是 br0 没有收到任何东西。我错过了什么?eth0br0tcpdump

vlan bridge
  • 1 个回答
  • 434 Views
Martin Hope
netsplit
Asked: 2021-09-15 06:02:30 +0800 CST

您如何将路由(broute)仅从单个接口的 ipv6 桥接到现有网桥?

  • 0

提示这个问题的设置和下面的解决方案使下一个人的生活更简单。

我有一个 dd-wrt ​​路由器。它桥接 eth1、eth2 和 vlan1。它通过具有 wan 端口的 vlan2 路由它们。我对 ipv6 或 dd-wrt ​​路由器或两者的理解绝对糟糕。我有 T-mobile 作为 isp。他们的 ipv6 很棒,直到您尝试通过自己的路由器运行它,然后 /64 他们给您打击。如果我让他们的设备处理 DHCP,一切正常:ipv4、ipv6。问题是我需要能够为某些设备配置 DHCP 地址。它没有办法做到这一点。

以更直观的格式:

vlan2 (internet)(routed) -> br0 (bridge of: eth1, eth2, vlan1)

所以解决方案似乎是桥接ipv6和路由ipv4。将此信息归功于此问题:https ://serverfault.com/questions/322718/can-i-bridge-ipv4-while-routing-ipv6-on-the-same-two-interfaces

再次以更直观的格式:

ipv4: vlan2 (internet)(routed) -> br0 (bridge of: eth1, eth2, vlan1)
ipv6: br0 (bridge of: eth1, eth2, vlan1, vlan2)

然而,试图桥接一个桥会给你这个错误:

device br0 is a bridge device itself; can't enslave a bridge device to a bridge device.
routing bridge
  • 1 个回答
  • 274 Views
Martin Hope
MikeyB
Asked: 2020-03-10 10:49:42 +0800 CST

虚拟机的 Linux 网桥不转发 IP 数据包(但正在转发 ARP)

  • 3

内核:5.5.8-arch1-1

我正在尝试使用连接到我的物理接口的网桥来使虚拟网络正常工作。这是一个典型的设置,我什至没有尝试做任何奇怪的事情。

  • 桥:br0
  • 物理接口:enp6s0f0

问题是 Linux 没有将任何 IP 流量转发出物理接口。由于 ARP 解析工作,它双向转发ARP 流量,但没有 IP 流量从 enp6s0f0 发送出去。

我尝试过的事情:

  • 添加enp6s0f1到网桥,提供enp7s0f0给虚拟机,并使用电缆链接enp7s0f0到enp6s0f1
    • 相同的结果(转发 ARP 流量,不转发 IP 流量)
  • 停止 docker 并刷新所有表
    • 没变
  • 禁用 rp_filter
    • 没变
  • 使用板载 NIC
    • 没有变化(这实际上是初始设置,我将这个四端口卡放入其中以查看板载 NIC 是否导致问题)
  • 从另一台机器 ping 虚拟机
    • 我可以看到 echo-r​​equest 进来了,我可以看到它,br0但它没有转发到 VM 端口(vnet 端口或enp6s0f1)
  • 在网桥上启用 STP(最初被禁用)
    • 没变
○ → ip addr
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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp6s0f0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether 00:10:18:85:1c:c0 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::210:18ff:fe85:1cc0/64 scope link 
       valid_lft forever preferred_lft forever
3: enp6s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:10:18:85:1c:c2 brd ff:ff:ff:ff:ff:ff
4: enp7s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:10:18:85:1c:c4 brd ff:ff:ff:ff:ff:ff
5: enp7s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:10:18:85:1c:c6 brd ff:ff:ff:ff:ff:ff
6: enp9s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether b4:2e:99:a6:22:f9 brd ff:ff:ff:ff:ff:ff
7: wlp8s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 08:71:90:4e:e9:77 brd ff:ff:ff:ff:ff:ff
8: br-183e1a17d7f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:ba:03:e1:9d brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-183e1a17d7f6
       valid_lft forever preferred_lft forever
9: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:02:61:00:66 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
10: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:10:18:85:1c:c0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.205/24 brd 192.168.1.255 scope global dynamic noprefixroute br0
       valid_lft 9730sec preferred_lft 7930sec
    inet6 fe80::210:18ff:fe85:1cc0/64 scope link 
       valid_lft forever preferred_lft forever
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:be:eb:3e brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:febe:eb3e/64 scope link 
       valid_lft forever preferred_lft forever

○ → brctl showstp br0
br0
 bridge id      8000.001018851cc0
 designated root    1000.44e4d9d88a00
 root port         1            path cost          4
 max age          19.99         bridge max age        19.99
 hello time        1.99         bridge hello time      1.99
 forward delay        14.99         bridge forward delay      14.99
 ageing time         299.99
 hello timer           0.00         tcn timer          0.00
 topology change timer     0.00         gc timer          25.78
 flags          


enp6s0f0 (1)
 port id        8001            state            forwarding
 designated root    1000.44e4d9d88a00   path cost          4
 designated bridge  1000.44e4d9d88a00   message age timer     19.21
 designated port    800d            forward delay timer    0.00
 designated cost       0            hold timer         0.00
 flags          

vnet0 (2)
 port id        8002            state            forwarding
 designated root    1000.44e4d9d88a00   path cost        100
 designated bridge  8000.001018851cc0   message age timer      0.00
 designated port    8002            forward delay timer    0.00
 designated cost       4            hold timer         0.22
 flags          

○ → bridge -d link show
2: enp6s0f0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 4 
    hairpin off guard off root_block off fastleave off learning on flood on mcast_flood on mcast_to_unicast off neigh_suppress off vlan_tunnel off isolated off enp6s0f0
8: br-183e1a17d7f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 master br-183e1a17d7f6 br-183e1a17d7f6
9: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 master docker0 docker0
10: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 br0
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100 
    hairpin off guard off root_block off fastleave off learning on flood on mcast_flood on mcast_to_unicast off neigh_suppress off vlan_tunnel off isolated off vnet0

○ → sysctl net.bridge.bridge-nf-call-iptables
net.bridge.bridge-nf-call-iptables = 1

○ → sysctl net.ipv4.conf.br0.forwarding
net.ipv4.conf.br0.forwarding = 1
linux bridge
  • 1 个回答
  • 2912 Views
Martin Hope
elbarna
Asked: 2020-02-06 08:53:01 +0800 CST

UML 和 ethertap:我想念什么?

  • 0

我想用网络运行我的 UML istance 在主机中我创建脚本

USER=myname
BRIDGENAME=br0
tunctl -t tap0 -u $USER
ip link set tap0 up
/usr/sbin/brctl addif $BRIDGENAME tap0
ip addr add 10.2.0.5/24 dev tap0

tap0 创建完成,没有报错。在此之后,我启动了 uml istance

/usr/bin/linux ubda=fsroot mem=1024M con0=fd:0,fd:1 con=pts eth0=ethertap,tap0,10.2.0.5

然后我用 minicom 进入 uml istance 并尝试配置网络

ip addr add 10.2.0.6/24 dev eth0
ip route add default via 10.2.0.5
Error: Nexthop has invalid gateway.

我想念什么?为什么不沟通?我也尝试过使用经典的 iptables 规则进行 natting

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i tap0 -o br0 -j ACCEPT
iptables -A FORWARD -i br0 -o tap0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

但没有任何改变。

bridge tap
  • 1 个回答
  • 46 Views
Martin Hope
user1595858
Asked: 2019-07-17 15:12:43 +0800 CST

如何从网桥中删除接口?

  • 0

出于某种原因,我们注意到两个物理接口 ( eth0, eth3) 在同一个网桥下vmeth0。我们需要在不影响其余配置的情况下eth3从网桥中删除。vmeth0请告知任何指示以使这成为可能?

我们正在使用 Linux (Redhat -release 6.8)

# brctl show
bridge name     bridge id               STP enabled     interfaces
vmbondeth0              8000.0010e0cdc56b       no              bondeth0
                                                        vif90.1
vmeth0          8000.0010e0cdc56a       no              eth0
                                                        eth3
                                                        vif90.0
linux bridge
  • 2 个回答
  • 6739 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
Martin Hope
sbhTWR
Asked: 2019-07-05 11:29:46 +0800 CST

打开 vSwitch 数据路径和 linux 网桥

  • 2

我试图了解 Open vSwitch 如何利用 linux 基础架构的内部机制,特别是 OVS 网桥和 br-xx(linux 网桥)之间的区别。我是这个领域的新手,所以我可能在很多方面都错了。

背景:到目前为止,我知道要创建虚拟网络,可以使用网络命名空间来模拟主机(网络的端点),并且可以使用 veth 对作为连接两个节点的链接。此外,使用 iproute2 包,可以设置网桥(br-xx)并向其添加虚拟接口,从而完成虚拟网络。

为了了解 OVS 网桥和 linux 网桥(由 iproute2 创建)之间的区别,我浏览了 mininet 代码。我可以弄清楚的一件事是 mininet 依赖 ovs-vsctl 来创建 OVS 网桥。我探索了 OVS 代码以弄清楚它们实际上是如何设置的,以及它们与 linux 网桥有何不同,但没有取得多大成功。

问题:OVS 网桥(使用 ovs-vsctl 创建)和 linux 网桥(使用 iproute2 创建)在内部有何不同?我直观地感觉它们都基于两个不同的内核模块在后面(在Open vSwitch的上下文中它称为datapath,不确定linux桥的内核模块的名称)。我的直觉对吗?如果是,我如何创建自己的内核模块并使用它作为“后端”建立一个桥接器?

networking bridge
  • 1 个回答
  • 1297 Views
Martin Hope
Yd Ahhrk
Asked: 2018-03-23 15:31:23 +0800 CST

如何同时桥接 IPv4 但路由 IPv6?

  • 2

我的 ISP 授予我一个IPv4 地址和一个 IPv6 前缀,该前缀已细分为几个网络。

              +--------------+
              |              | eth1
              |              |---------- <IPv6 network>
              |              |
         eth0 | Linux Router | eth2
ISP ----------|              |---------- <IPv6 network>
              |              |
              |              | eth3
              |              |---------- <IPv6 network>
              +--------------+

碰巧的是,连接到 IPv6 网络的节点之一eth1将受益于拥有 IPv4 地址。

看来我希望路由器桥接IPv4 流量,并路由IPv6 流量。不是吗?

我听说过代理 ARP,但据我所知,路由器需要另一个 IPv4 地址,否则它不会尝试与 ISP 的 v4 流量交互,对吧?同样,我只有一个 v4 地址。

我认为,正常的桥接也不是一种选择,因为那是第 2 层,它无法区分 IPv4 流量和 IPv6 流量。如果我桥接 IPv4,我也会桥接 IPv6,这会破坏当前的 IPv6 设置。

我是否被迫将流量 NAT 到专用网络,并从该网络为节点分配另一个地址?有没有更直接的选择?

routing bridge
  • 1 个回答
  • 3511 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