将单个v6 / 64范围路由到虚拟机

我正在构build一个虚拟化主机,我希望我的虚拟机通过v4和v6 IP地址可用。

我拥有的主机(Xen 4.1.3与dom0中的Debian Wheezy)有一个物理eth0接口:

10.0.0.2/30 dev eth0 default via 10.0.0.1 2000:1111:1111:11111::2/64 dev eth0 default via 2000:1111:1111:11111::1 (aka fe80::1) 

我的ISP为我分配了一个10.100.0.0/28 IPv4范围,通过10.0.0.2静态路由。

在主机上,我build了xenbr0虚拟网桥接口:

 10.100.0.1/28 dev xenbr0 

在每个访客VM上,我设置了从10.100.0.0/28开始的任何未使用的地址,即:

 10.100.0.2/28 dev eth0 default via 10.100.0.1 

正如所料(因为主机就像一个典型的路由器),虚拟机能够顺利地与v4互联网交谈。

这就是我对IPv6缺乏经验的地方。根据我的理解,v6地址与v4地址的路由非常相似,这意味着我想要完成的事情是不可能的,只有一个/ 64范围(至lesseth0&v6 gw的configuration方式)。

是否有可能使用单一的IPv6 / 64范围,以便虚拟机可以有静态的IPv6地址,而不必去问我的ISP另一个/ 64范围(我猜)将不得不通过2000:1111:1111:11111::2静态路由2000:1111:1111:11111::2

我试图在两个/ 65个networking中“拆分”这个/ 64networking,然后像这样重新configurationxenbr0:

 2000:1111:1111:11111:8000:2/65 dev xenbr0 

此外,eth0被重新configuration(只有networking大小从64更改为65):

 2000:1111:1111:11111::2/65 dev eth0 default via 2000:1111:1111:11111::1 

主机没有松动IPv6连接。 但是,当这样configuration时,访客虚拟机无法联系主机之外的任何东西:

 2000:1111:1111:11111:8000::2/65 dev eth0 default via 2000:1111:1111:11111:8000::1 

任何想法如何进行?

从您的提供商获取更大的地址块是正确的解决scheme。 使用IPv6给客户一个/56/48 (对应于256或65536个子网)是非常正常的。 这是关于IPv6的伟大的事情:总是有很多的地址! 🙂

尽pipe如此,仍然有很多人使用IPv4的思路来运行IPv6networking,并且尽可能less地给客户,他们认为“A / 64包含这么多的地址,这样就足够了”。 然后当你需要多个子网的时候遇到问题…networking运营商和服务提供商将不得不改变他们的想法,并且总是给出更大的块(像/56或者/48这样的大块,你不想问他们每个人和每个额外的子网)给想要使用它们的客户。

一旦人们开始使用它提供的大量地址空间,运行IPv6networking就变得如此简单。 没有更多的计划,要求额外的地址等只是:

  • 给每一个(是,甚至是住宅)客户至less一个/56 ,而一个/48应该是默认的商业客户。
  • 每个子网使用一个/64 。 它将超过你所需要的,而这就是它应该是的方式。
  • 即使对于每个点对点链接保留a /64 ,尽pipe可以configuration一个/127来避免ND高速caching问题。
  • 根据需要为主机提供尽可能多的地址。 没有问题,如果你想把每个网站放在一个单独的地址。 如果你想要移动东西,想要简化计费或者更容易检测和打击(D)DOS攻击,这可能是有用的。

所有这一切使您的计划和操作变得更加简单,一旦您习惯了突然可用的大数字:)