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
    • 最新
    • 标签
主页 / server / 问题 / 654981
Accepted
allo
allo
Asked: 2014-12-28 04:27:02 +0800 CST2014-12-28 04:27:02 +0800 CST 2014-12-28 04:27:02 +0800 CST

静态 ipv6 路由到 lxc 容器

  • 772

我想将一个 ipv6 ip 路由到一个 lxc 容器,但数据包没有被转发。我不想将 lxc 容器桥接到 eth0,也不想使用自动配置。此外,我只有一个/64主机,所以我需要为虚拟机使用一个较小的网络。我现在选择了一个/112,如果需要的话我可以使用更大的网络。

我想问题是路由,而不是容器。这是我的设置:

主持人:

# the host already has working ipv6, empty ip6tables FORWARD table with policy ACCEPT
ip -6 addr add prefix::1/112 dev lxcbr
ip -6 route show|grep prefix
# prefix::/112 dev lxcbr  proto kernel  metric 256
sysctl net.ipv6.conf.eth0.forwarding
# net.ipv6.conf.eth0.forwarding = 1
sysctl net.ipv6.conf.lxcbr.forwarding
# net.ipv6.conf.lxcbr.forwarding = 1

虚拟机:

ip -6 addr add prefix::2/112 dev eth0
ip -6 route add default via fe80:: dev eth0 # routing via prefix::1 does not work either
ip -6 route show
# prefix::/112 dev eth0  proto kernel  metric 256 
# fe80::/64 dev eth0  proto kernel  metric 256 
# default via fe80:: dev eth0  metric 1024

工作(虚拟机):

ping6 prefix::1 # host

工作(主持人):

ping6 prefix::2 # vm

不工作(虚拟机):

ping6 google.com
# PING google.com (2a00:1450:4001:805::1007): 48 data bytes
# --- google.com ping statistics ---
# 7 packets transmitted, 0 packets received, 100% packet los

主机上的 tcpdump:

tcpdump -i lxcbr icmp6
# 13:20:44.088814 IP6 prefix::1 > fra07s32-in-x07.1e100.net: ICMP6, echo request, seq 0, length 56
# 13:20:45.089268 IP6 prefix::1 > fra07s32-in-x07.1e100.net: ICMP6, echo request, seq 1, length 56
# [...]
tcpdump -i eth0 icmp6
# [no output]

ip6tables-A FORWARD -j LOG也不会记录任何数据包。

编辑:因为每个人都抱怨网络小于:界面上/64的问题仍然存在。问题是,当使用从一个(虚拟)接口到另一个(物理)接口的静态路由时/64,没有数据包进入iptables 队列。FORWARD

具有较小网络的设置是在其工作时希望拥有的,因为我的提供商希望为更多网络支付相当大的费用(接近服务器租金的 50%)。但是对于测试,如果它有助于测试,我可以使用整个/64或大网。fd/8

ipv6
  • 2 2 个回答
  • 1451 Views

2 个回答

  • Voted
  1. Jeff Loughridge
    2014-12-30T04:54:52+08:002014-12-30T04:54:52+08:00

    我不会在生产环境中使用您的设置。正如其他人所提到的,拆分 /64 将产生意想不到的影响。如果您无法从提供商处获得更多地址,我建议您使用 NDP 代理来允许 /112 中的容器访问 IPv6 互联网。您可以使用 NDP 代理守护程序或在命令行创建静态条目。

    我在此处详细描述了如何使用 docker 执行此操作。同样的逻辑也适用于 lxc。

    • 1
  2. Best Answer
    allo
    2015-01-08T14:59:37+08:002015-01-08T14:59:37+08:00

    我让它工作了......但它仍然很奇怪。

    为“全部”设置转发,然后为每个单独的接口禁用它:

    cd /proc/sys/net/ipv6/conf/
    echo 1 >all/forwarding;for i in */forwarding;do test $i = all/forwarding || echo 0 > $i;done
    

    相反(将所有/转发设置为 0 并将每个接口的转发设置为 1)不起作用。

    另一个有趣的问题:有时您需要在将接口添加到网桥后添加路由以使其工作,与此处相同的问题: https ://www.rivy.org/2013/02/ipv6-ping-sendmsg-network-关闭/

    感谢 jeff-loughridge 提供的 docker 链接,本方法的第一部分让我得到了这个解决方案。

    在我结束问题之前,我仍在调查这里到底发生了什么(以及它是否继续工作)。

    • 0

相关问题

  • IPv6 有哪些好的 IP 地址管理解决方案?[关闭]

  • 连接到 NAT 后启用 Teredo 的服务器

  • IPv4管理员的IPv6介绍[关闭]

  • 什么是支持 IPv6 胶水的又好又便宜的注册商?

  • 使用多少 IP V6 寻址?

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve