我目前正在尝试了解IPv6地址是如何工作的。有链路本地地址和站点本地地址分别用于小型网络和组织网络。但是,如果其中一个客户端也可以访问互联网,那么它将需要两个IP,对吗?一个链路/站点本地地址和一个全局地址。接口和路由器如何对其进行管理?一个接口需要两个in,因为IPv6中没有NAT。
发布于 2011-02-07 14:17:42
通常,接口具有一个本地链路范围单播地址和零个或多个全局范围单播地址。(它们也可以是某个有限数量的多播组的成员。)地址可以手动分配,也可以像IPv4中那样由DHCPv6分配,但有时也可能(并非总是)在路由器通告允许的情况下自动生成地址。一些主机实现将自动地为路由器通告的每个前缀生成永久全局地址以及伴随其的辅助隐私地址c.f。RFC 4191。在使用DHCPv6分配地址的情况下,主机可能会请求一个或多个临时地址,而不是隐私地址。
不要使用站点本地地址。它们被RFC 3879弃用,主要是因为sin6_scope_id字段没有为站点本地地址定义良好。在从getifaddrs()返回的列表中看到它们的应用程序可能会丢弃它们,并向标准错误流发送诊断消息。应用程序应预期网络管理员将使用唯一本地地址(ULA),而不是站点本地地址,c.f。RFC 4941。
ULA地址的可达性通常不能由应用软件决定。您唯一可以确定的是,通过全局公共无缺省区域的任何路径都不能到达它们。它们可以从互联网上的任何地方到达,其中到ULA前缀的路由在自治系统之间的双边协议中交换。另一方面,它们通常会由IPv6家庭网关广告,仅供订户本地使用,并且在家庭之外的任何地方都无法访问。I-D.ietf-v6ops-ipv6-cpe-router。
发布于 2011-02-06 19:54:18
每个接口都有一个链路本地地址,还可以选择一个或多个公共地址或站点本地地址。看起来像这样:
$ ip -o -6 addr show dev eth0
eth0 inet6 2001:abcd:ef::1/64 scope global (..)
eth0 inet6 fe80::1234:5678:2/64 scope link (...)当发送某些内容时,所有发送到本地链路地址(即fe80::/64)的内容都从本地链路地址发送,其他所有内容都从全局地址发送。
(选择并不总是可能的:例如,如果应答ping,则无论哪个地址,应答的源IP都将是请求的目的地IP。)
https://stackoverflow.com/questions/4912966
复制相似问题