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 / 问题 / 432967
Accepted
Yd Ahhrk
Yd Ahhrk
Asked: 2018-03-23 15:31:23 +0800 CST2018-03-23 15:31:23 +0800 CST 2018-03-23 15:31:23 +0800 CST

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

  • 772

我的 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 1 个回答
  • 3511 Views

1 个回答

  • Voted
  1. Best Answer
    Yd Ahhrk
    2018-03-24T14:17:14+08:002018-03-24T14:17:14+08:00

    (所有这些命令都应该在 Linux 路由器上执行。)

    第 1 步:正常创建网桥,就好像它要在两个接口之间路由所有流量一样。

    ip link add name br0 type bridge
    ip link set br0 up
    ip link set eth0 master br0
    ip link set eth1 master br0
    

    第 2 步:通过 ebtables 规则,告诉内核应该桥接 IPv4 流量,并且应该路由 IPv6 流量。

    ebtables -t broute -A BROUTING -p ipv4 -j ACCEPT
    ebtables -t broute -A BROUTING -p ipv6 -j DROP
    

    (在 BROUTING 链中,“ACCEPT”表示桥接,“DROP”表示忽略桥接。)

    Linux 路由器的所有接口都不需要 IPv4 地址。

    不应在 Virtualbox VM 上测试此解决方案,因为某处存在一些桥接错误br0,根本无法工作。

    • 4

相关问题

  • iptables:透明 tcp 流量代理

  • iptables -j REDIRECT *actually* 对数据包头做了什么?

  • 永久更改接口的指标

  • 任何为第 3 层交换/路由构建的发行版?

  • Debian 9;为 www 服务器设置网络设备

Sidebar

Stats

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

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

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

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

    • 5 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • 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
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +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
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +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