我有原生的IPv6连接(/ 64前缀),我一直在试图build立一个OpenWrt路由器后面的IPv6连接。 但是我发现我无法使用ebtables来通过所有IPv6stream量(固件限制)或使用ndppd来代理所有ICMPv6请求(邻居请求/通告,我无法控制的上游路由器不能以不明原因接受它们)。
看来,我现在唯一的select是隧道所有的IPv6stream量。 以下是networking拓扑结构:
互联网 - 路由器 - 电脑 wan前缀:: / 64 wan 219.242.xx 局域网10.224.0.1 10.224.36.223
我正在尝试在两个10.224.xx地址之间创build一个隧道来隧道传输所有IPv6stream量,以获得IPv6连接。
我已经search了一些教程,但我无法弄清楚在build立隧道时使用哪个地址作为参数。
PC正在运行Windows。 如果提供configuration示例,会更好。
(网关正在运行OpenWrt,但我认为它几乎就像一个Linux网关?)
隧道不是解决你面临的问题。
在通过隧道连接的两台机器之间有直接的物理连接,所以不需要隧道。 您希望在隧道上执行的任何寻址都可以直接在两个端点之间的以太网连接上完成。 而在以太网上而不是在隧道上进行这样做会消除configuration中的额外复杂性以及封装开销。
你还有另一个问题,就是你没有任何地址分配给这个连接。 但是在以太网上使用IPv6或在隧道上使用IPv6不会改变这一点。 它们都需要相同数量的地址(除非通过以太网进行,否则该前缀将被整个LAN使用)。
如果你想正确地做到这一点,你需要一个LAN的前缀,必须路由到您的路由器。 根据您的描述,您目前只有WAN的链接前缀。 这是不够的,因为你需要另一个局域网的连接前缀,它必须从路由前缀到你的路由器。
我知道一个标准化的协议来设置这个路由前缀,即DHCPv6。 路由器应在其WAN接口上发送DHCPv6请求并请求路由前缀。 路由/ 64已经足够用于你现在要做的事情,但是你也可以马上去找一个/ 48,/ 56或者/ 60,因为你可能很快就会find一个/ 64以上的用途你的局域网。 带有前缀委派的DHCPv6的替代scheme是为您的ISPconfiguration路由到路由器的前缀的静态路由。
如果您发现您的ISP没有任何DHCPv6服务器,或者它甚至不会委托一个/ 60或一个/ 64,那么您应该联系您的ISP以询问如何获取路由到您的路由器的前缀。
如果他们拒绝为您find前缀,那么现在是时候寻找解决办法了。 我知道的两个解决方法是桥接和邻居发现代理。 从互联网服务提供商的angular度来看,它们的行为都是一样的,它们会导致路由器的内存消耗上升。 他们本来可以避免额外的内存使用,通过路由前缀给你。
你说你的路由器固件不支持解决方法。 我认为这意味着你需要升级到一个支持它的固件。
你也在问6to4这是不相关的。 我认为6to4与你的设置无关。 虽然如果你可以在你的路由器固件上这样做的话,我可以在路由器上启用一个6to4中继,因为这样可以在与使用6to4的人进行通信时提供更可靠的通信。 为了完全相同的原因,我将启用Teredo中继,如果您需要在某些仅支持IPv4的networking上从笔记本电脑连接回家,则非常方便。
是否可以只将OpenWRTconfiguration为网桥,以便它只传递IPv6stream量,但将公有和专用IP添加到路由器网桥接口,以便您仍然可以拥有带有NAT的私有IPv4networking,OpenWRT可以充当单臂路由器。 否则让你的NDP代理工作可能是下一步,你确定Linux内核不消耗NDPstream量,请检查/ proc / sys / net / ipv6 / conf / * / accept_ra以查看切换路由器广告的内核处理改变行为。 我不知道你为什么要查看ebtables,除非你想在桥上过滤二层stream量,默认情况下所有的stream量都是在二层,而大部分的过滤是在三层的iptables上进行的。 如果您确实想要过滤stream量,您可以根据/ etc / ethertypes中描述的typesselect仅IPv6stream量,如果要过滤IPv4,请确保也允许ARP,这是一个不同的以太网协议。