我使用Ubuntu服务器作为路由器,NATing路由器和networking服务器。 服务器通过公共/ 29子网连接到ISP。 另外,我还托pipe了一些重要的网站。 我要求ISP提供ipv6地址块。 他们说,我的链路终止在ISP的路由器没有ipv6的支持。 所以他们说如果我准备通过一个专用的172.16.xx / 30子网连接到他们的边缘路由器,他们可以提供给我ipv6块。 然而,他们会给我一个公共ipv4 / 29通过172.16.xx / 30路由给我,我可以用来托pipe我的网站。 但我的问题是,我不想购买另一台路由器,以便我可以将面向ISP的接口上的172.16.xx / 30和面向我的服务器和NATing路由器的另一个接口上的public / 29上。
我想知道的是,如果我可以使用172.16.xx / 30连接到ISP,也可以在同一台Ubuntu服务器上使用public / 29来托pipe网站和进行NAT。 我的路由器有5个以上的网卡,我也可以使用vlans。
ISP的边缘路由器支持ipv6,但他们不能直接给我一个公共子网的原因是这样的 。 目前我的链接终止于通过172.16.xx连接到边缘的开关
如果路由器到路由器连接使用RFC1918地址,则在公共互联网上使用RFC1918地址时,尤其是在ISP和客户之间的接口(而不是在ISPnetworking中的两个路由器之间)上使用时,这种地址是不受欢迎的。 这是因为它们降低了traceroute的有效性,这是由于某些站点阻止了所有的数据包到达或来自这些地址,并且因为它们不可能通过DNS PTRlogging将有意义的名称附加到这些地址上,这是因为它们导致路由器发起不可能的ICMP消息追溯到他们的来源,可能还有其他原因。 但是,这听起来像你的ISP设置使用RFC1918 / 30来为他们和你之间的接口编号。 尽pipebuild议不要这样做,但它实际上可以正常工作,只有一个困难就可以适应这种情况(见下文)。
ISP对大于/ 30的子网ARP问题的抱怨听起来很虚伪。 确实,路由器的性能可能会受到大量稀疏子网接口上不存在的地址的无用ARP请求的影响,但是子网必须既大又稀疏(包含很多未使用的地址)才会发生。 这是因为只有在子网上没有使用的地址的ARP请求必须无休止地超时和重复,这就是路由器如何陷入困境。 如果他们把你的界面升级到(公共)/ 29,它将不会很大也不稀疏(我假设你实际上会使用/ 29上的全部或几乎全部地址)。 人们有理由担心ARP / 64个IPv6子网的问题(由于子网上的主机数量不会达到最大,因此这个子网显然很大,并且总是很稀疏),但是对于一个29的担心听起来很荒谬。
这个configuration有个好消息:因为ISP没有在任何接口上configuration你的public / 29,所以不需要保留块的第一个和最后一个IP地址作为广播地址,也不需要ISP在自己的路由器上使用其中一个地址。 所以你可以使用全部8个地址,而不是5个。
这是你做的:
使用ISP提供的172.16.xx / 30地址configuration面向ISP的接口。
将/ 29块添加到lo接口: /etc/network/interfaces :
iface lo inet loopback up ip addr add abcd/29 dev lo
将您的默认网关设置为该链接的ISP侧172.16.x.otherside。
现在出现了我之前提到的困难:默认情况下,当您的服务器启动出站连接(DNS请求,电子邮件出去,软件更新检查,到数据库的出站连接,或者其他服务器自身发起的任何事情,而不是客户端联系服务器)时,服务器将使用172.16.xx作为数据包的源地址,因为这是连接到数据包要通过的接口的地址。 当服务器尝试使用这个源地址联系Internet上的目的地时,它显然不起作用。 您需要给route命令一个选项来安装具有自定义源地址的默认路由。
省略正常的gateway 172.16.x.otherside条目,并在/etc/network/interfaces :
iface ethSOMETHING inet static [other configuration directives] up ip route add default via 172.16.x.otherside src abcd
对于abcd ,请从/ 29中select一个您认为是服务器“主”地址的地址。
我要求ISP提供ipv6地址块。 他们说,我的链路终止在ISP的路由器没有ipv6的支持。
我们都期待着这一天消失的那一天,但不幸的是,这仍然是我所知道的大部分世界。
所以他们说如果我准备通过一个专用的172.16.xx / 30子网连接到他们的边缘路由器,他们可以提供给我ipv6块。 然而,他们会给我一个公共ipv4 / 29通过172.16.xx / 30路由给我,我可以用来托pipe我的网站。 但我的问题是,我不想购买另一台路由器,以便我可以将面向ISP的接口上的172.16.xx / 30和面向我的服务器和NATing路由器的另一个接口上的public / 29上。
哎哟,或多或less。 以下是我所读到的情况:他们的路由器将在私有IP空间上为您提供6到4个隧道 ,并在其networking中使用其他路由器的下一跳。 它还将使用一个内部路由协议,声明你的私有空间系统是公共地址空间的下一跳地址。
我想知道的是,如果我可以使用172.16.xx / 30连接到ISP,也可以在同一台Ubuntu服务器上使用public / 29来托pipe网站和进行NAT。 我的路由器有5个以上的网卡,我也可以使用vlans。
ISP的边缘路由器支持ipv6,但他们不能直接给我一个公有子网的原因是这样的。 目前我的链接终止于通过172.16.xx连接到边缘的开关
这听起来像你应该做的是把所有你想要服务器的外部地址通过一个外部接口连接到路由器。 将所有内容分配给eth0和各种子接口(eth0:0,eth0:1等),并将您的默认网关设置为其路由器的接口。