The Internet Address Architecture

The Internet Address Architecture

1. Introduction

2. Expressing IP Address

3. Basic IP Address Structure

3.1 Classful Addressintg在这里插入图片描述在这里插入图片描述
3.2 Subnet Addressing

使用子网寻址,被分配了 A类,B类,或 C 类 IP number 的站点保留一部分 host number 位,用于将来站点内的网络分配。
在这里插入图片描述
在这里插入图片描述

2.3.3 Subnet Masks

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Internet 路由系统的其他部分不需要知道子网掩码,因为站点之外的 router 依据 IP 地址的 network number 部分做出路由决定。站点的 border router 依据 IP 地址的 subnetwork number 部分决定 datagram 发往哪个子网,依据 host number 决定发往哪个 host。

2.3.4 Variable-Length Subnet Masks(VLSM)

在这里插入图片描述

2.3.5 Broadcast Address

在每个 IPv4 的子网中,一个特殊的地址被保留位 subnet broadcast address
在这里插入图片描述
保留 network number 和 subnetwork number,将 host number 所有位置为 1,得到 subnet broadcast address
历史上,使用此种类型地址作为目的地的 datagram 也被称为 directed broadcast。这样的广播能,至少在理论上,作为单个 datagram 在 Internet 上路由,直到到达目标子网,然后被递交到该子网上的所有 hosts 上。

因为安全问题,directed broadcast 如今被 Internet(router) 禁用了。

除了子网广播地址,一个特殊的地址 255.255.255.255 被保留作为 local net broadcast(也被称为 limited broadcast),它不会被 router 转发。注意,虽然 router 不能转发广播,subnet broadcast 和 local net broadcast 应当能正常使用,除非 hosts 明确禁止这项功能。这样的 broadcast 不需要 router 支持;link-layer broadcast,如果可用的话,用于支持他们。broadcast 地址通常被诸如 UDP/IP 或 ICMP 等协议使用,因为这样的协议不涉及双方会话,比如在 TCP/IP 中。IPv6 没有任何 broadcast address,它只使用 multicast addresses。

2.3.6 IPv6 Address and Interface Identifies

除了比 IPv4 的地址长了 4 倍外,IPv6 地址也有一些额外的结构。IPv6 地址使用特殊的前缀表示地址的 scope。IPv6 地址的范围指的是它能使用的网络的部分。范围包括 node-local (仅能被用于在相同的计算机上进行通讯的地址),link-local(被在相同的网络链接中节点或具有相同 IPv6 前缀的节点中使用),或global(Internet-wide)。IPv6 中,大部分节点有超过一个使用中的地址,通常在相同的 network interface。虽然这在 IPv4 中也支持,但并不常见。

Link-Local IPv6 地址 (和一些全局的 IPv6 地址) 使用 interface identifiers (IIDs) 作为单播IPv6 地址分配的基础。除了地址以二进制值 000 起始,IIDs 在其他情况下都是 IPv6 地址的低位,它们在同一网络中必须唯一。IIDs 的长度通常为 64 位,IIDs 直接从底层的 link-layer 的 network interface 的 MAC 地址直接生成,使用 modified EUI-64 format 或通过其他进程随机化一些值以提供一定程度上的隐私以对抗地址跟踪。

在 IEEE 标准中,EUI 表示 extended unique identifier。EUI-64 标识符起始于 24 位的 Organizationally Unique Identifier(OUI),随后是 40 位 extension identifier 由组织赋值,组织由前 24 位的 OUI 标识。OUIs 由 IEEE registration authority (IEEERA) 维护和分配。EUIs 可能是 “universally administered” 或 “locally administered”。在 Internet 上下文中,这样的地址通常是全球管理的。

很多符合 IEEE 标准的 interface (e.g.,Ethernet) 已经使用更短格式的地址 (48位 EUIs) 多年了。EUI-48 与 EUI-64 格式之间唯一重要的不同是它们的长度 (见图 2-7)。
在这里插入图片描述
EUI-48 和 EUI-64 的 OUI 部分的第一个字节的低两位被标记位 u 位和 g 位。当设置 u 位时,标识地址是 locally administered。当设置 g 位时,表示地址是组或多播类型的地址。

用于形成 IIDs 的 modified EUI-64 简单的翻转了 u 位用于生成 IPv6 地址。

2.3.6.1 Examples

在这里插入图片描述
此时我们可以看到 Ethernet 的硬件地址 00:30:48:2A:19:89 如何映射为 IPv6 地址。首先,它被转换为 EUI-64,生成地址 00:30:48::ff:fe:2a:19:89。接下来,u 为被反转,生成 IID 值 02:30:48:ff:fe:2a:19:89。为了完成 link-local IPv6 地址,我们使用保留的 link-local 前缀 fe80::/10。组合在一起,形成一个完整的地址,fe80:230:48ff:fe2a:1989。/64 用于标识自 IIDs 派生出来的 IPv6 地址中 subnetwork 部分和 host 部分的分界线。

另一个有趣的例子来自支持 IPv6 的 Windows 系统。在这种情况下,我们看到一个特殊的 tunnel endpoint,被用于携带 IPv6 流量通过仅支持 IPv4 的网络:
在这里插入图片描述
在这种情况下,这个特殊的 tunneling interface 被称为 ISATAP。所谓的物理地址实际上是 IPv4 地址的 16 进制编码: 0A-99-8D-87,与 10.153.141.135 相同。这里,使用的 OUI (00-00-5E) 是由 IANA 指定的。它与 16 进制值 fe 结合使用,表示一个嵌入的 IPv4 地址。与标准 link-local 前缀结合的结果是 fe80::5efe.10.153.141.135。地址尾部追加的 %2 在 Windows 中被称为 zone ID,表示 IPv6 地址相对于的 interface 索引号。IPv6 地址通常由进程自动配置生成。

4 CIDR 和 Aggregation

4.1 Prefixes

为了减轻 IPv4 地址可用性上的压力,特别是 B 类地址, 分类寻址方案推广为类似于变长子网掩码 (VLSM) 的方案,Internet 路由系统也拓展为支持 Classless Inter-Domain Routing (CIDR)。这提供了一种便利地分配连续地址范围的方法,能包含超过 255 个主机但是小于 65536。即,分配给站点的 network number 能既不是单个 B 类的 network number,也不是多个 C 类的 network number。使用 CIDR,任何地址范围都不需要预定义为某一类别的一部分,但是需要一个类似子网掩码的掩码,有时被称为 CIDR 掩码。CIDR 掩码不受限于站点,对全球路由系统可见。因此,核心的 Internet routers 必须能解释和处理掩码和 network numbers。它与 numbers 结合,被称为 network prefix,被用于 IPv4 和 IPv6 地址管理。

消除 IP 地址中 network 和 host numbers 的预定义分割使 IP 地址范围的细粒度分配成为可能。与有类寻址一样,通过将数字上连续的地址分组用作一个类型或某些特殊目的,以将地址空间划分为块。这样的分组现在通常通过使用地址空间的 prefix 来表示。一个 n 位的 prefix 表示地址的前 n 位。其表示如下:
在这里插入图片描述

4.2 Aggregation

router 检查到达的 datagram 的目的 IP 地址,找出匹配的路由表条目,从条目中提取下一跳的地址。
在这里插入图片描述
其中,圆圈表示路由器,线表示它们之间的网络链接。
在这里插入图片描述
route aggregation 减少路由表中的条目数,通过 1. 网络拓扑结构为树型,2. 依据树型有序分配 IP 地址,使每个网络节点只需要维护邻近的子节点的路由信息。

5. Special-Use Address

在这里插入图片描述
在这里插入图片描述
IPv4 私有地址常与 network address translation (NAT) 结合使用,NAT 在 IP datagram 进入 Internet 时,会重写 IP datagram 的 IP 地址。

5.1 Addressing IPv4/IPv6 Translators

在这里插入图片描述
在图中,前缀要么是 well-known 前缀,要么是对组织部署翻译人员来说唯一的前缀。64-71 位必须被设置为 0 以维持与 [RFC4291] 指定的标识符的兼容性。保留后缀的位,并将其设为 0。使用 96-位前缀选项的 IPv4-embedded IPv6 地址可能使用先前提到的约定好的 IPv6-mapped 地址来表达。例如,使用为人熟知的前缀 64:ff9b::/96 嵌入 IPv4 地址 198.51.100.16 得到 IPv6 地址 64:ff9b::198.51.100.16。

5.2 Multicast Addresses

IPv4 和 IPv6 都支持多播寻址。一个多播地址表示一组 host interfaces。单个组所覆盖的网络的部分被称为组的 scope。通常范围包括 node-local (same computer),link-local(same subnet),site-local(applicable to some site),global(entire Internet),和 administrative。Administrative scoped addresses 可能被用于已被手动配置到 router 中的网络的区域中。网站管理员可能将 router 配置为 admin-scope boundaries,这意味着相关组的多播流量不会通过 router 转发。注意 site-local 和 administrative scopes 仅能用于多播寻址。

在软件的控制下,每个 Internet host 中的协议栈都能加入会离开一个多播组。当 host 向组中发送消息时,它使用它所有的 IP 地址之一作为源地址,多播地址作为目的地址创建一个 datagram。所有加入多播组的在 scope 内的 hosts 都将收到发送向该组的 datagrams。发送方通常意识不到接收 datagram 的 hosts 的存在,除非它们显式回复。

5.3 IPv4 Multicast Address

对 IPv4 来说,D 类地址 (224.0.0.0 - 239.255.255.255) 被保留用于支持多播。
在这里插入图片描述
本地网络控制块受限于本地网络的发送方,发往这些地址的 datagram 不能被 multicast router 转发。All Hosts group (224.0.0.1) 是本地网络控制块的其中一员。互联网控制块类似于本地网络控制 range,但是它用于控制需要从本地链接中路由出去的流量。这一 block 的例子之一是 Network Time Protocol(NTP) 多播组 (224.0.1.1)[RFC5905]。

first ad hoc block 用于保存即不在 local network control block 中,也不在 internetwork control block 中的地址。

5.4 IPv6 Multicast Addresses

在这里插入图片描述
Scoped 字段用于表示地址为某一多播地址的 datagram 在分发上的限制。如下表:
在这里插入图片描述

5.5 Anycast Addresses

一个 anycast 地址是一个 unicast IPv4 地址或 IPv6 地址,用于标识不同的主机,取决于它在网络中使用的地方。通过配置 Internet 路由器从 Internet 中的多个位置公布相同的 unicast 路由来完成 anycast。因此,一个 anycast 地址指代的不是 Internet 上的单个主机,而是对应于 anycast 地址的 “最合适” 或 “最接近” 的单个主机。Anycast 寻址频繁地被用于寻找提供通用服务的计算机 [RFC4786]。例如,发往 anycast 地址的 datagram 能被用于寻找 DNS 服务器 (见第 11 章),将 IPv6 流量封装到 IPv4 tunnels 的 6to4 gateway [RFC3068],或用于多播路由的 RPs [RFC4610]。

6. Allocation

当用户注册 Internet 服务时,ISPs 通常以地址前缀的形式提供它们 ISP 地址空间的一小部分。这些地址范围由用户的 ISP 持有和管理,且被称为 provider-aggregatable (PA) 地址,因为它们由一个或多个前缀组成,这些前缀又有可能由 ISPs 所有的其他前缀组成。
一个可选的地址空间类型被称为 provider-independent (PI) 地址空间。自 PI 空间分配的地址被直接分配给用户,能和任何 ISP 一起使用。然而,因为这样的地址由 customer 所有,它们与 ISP 所有的地址数字上不相邻,因此是不可聚合的。被请求给 customer 的 PI 地址提供路由的 ISP 可能需求支持额外的服务费用,或者直接不同意这样配置。

7. Unicast Address Assignment

7.1 Single Provider/No Network/Single Address

当今能获取到的最简单类型的 Internet 服务是从 ISP 获取一个 IP 地址用于一台计算机。对于类似于 DSL 的服务,单个地址可能被指定为 point-to-point 链接的端点,且可能是暂时的。例如,如果用户的计算机在 DSL 上连接 Internet,它可能在一个特定的日子被分配一个地址 63.204.134.177。任何在计算机上运行的程序都能发送和接收 Internet 流量,任何这样的流量都会携带源 IPv4 地址 63.204.134.177。

7.2 Single Provider/Single Network/Single Address

拥有多台计算机的用户拥有 home LAN 或 WLAN 网络,并使用 router 或计算机作为 router 与 Internet 连接。router 转发来自 home network 的 packet 到 ISP,且执行 NAT 重写与用户 ISP 交换的 packet 的 IP 地址。从 ISP 的视角来看,只使用了一个 IP 地址。router 为使用 DHCP 的 home client 自动分配 IP 地址。必要的话,它们也会处理与 ISP 建立的链接的地址分配。

7.3 Single Provider/Multiple Networks/Multiple Address

很多组织发现仅分配一个单播地址,特别是临时分配,并不能满足他们的 Internet 访问需求。尤其对于打算运行 Internet 服务器(例如网络站点) 的组织来说,通常期望有一个在一段时间内不会改变的 IP 地址。这些站点通常有几个 LANs;其中一部分是内部的 (通过防火墙和 NAT 设备与 Internet 分离),其他一部分是外部的 (向 Internet 提供服务)。对于这样的网络,站点或网络管理员通常需要考虑站点需要多少个 IP 地址,如何结构化站点的子网,哪个子网是内部的,哪个是外部的。
在这里插入图片描述
在上图中,网站被分配前缀 128.32.2.64/26,提供至多 64 (减2) 个可路由的 IPv4 地址。 DMZ network (“demilitarized zone” network,在主防火墙之外) 关联能被 Internet 上的用户访问的服务器。这些计算机通常提供 web 访问,登录服务器,和其他服务。这些服务器仅被分配了前缀范围中较小的地址子集;很多站点仅有几个公开的服务器。剩下的来自站点前缀的地址用于 NAT router 的 “NAT pool”。这一 router 可以使用任一池中的地址重写进入或离开内部网络的 datdagrams。

图 2-6 的网络组织方式有两点好处。一,DMZ 和内部网络的分离有助于避免内部计算机受到 DMZ 服务器易受到的伤害;二,这一组织结构分开了 IP 地址分配。一旦 border router,DMZ,和内部 NAT router 已被设置,任何地址结构都可以在内部使用,其中包含很多 (私有) 地址。

7.4 Multiple Providers/Multiple Networks/Multiple Address (Multihoming)

一些组织的持续运行依赖 Internet 访问,它们使用多个 provider 关联 Internet 以提供冗余预防失败或其他原因。因为 CIDR,只有一个 ISP 的组织打算使用 PA IP 地址关联 ISP。
在这里插入图片描述
这里,虚构站点 S 有两个 ISPs,P1 和 P2。如果它使用来自 P1 的 block 的 PA 地址空间 (12.46.129.0/25),S 分别在点 C 和 D 向 P1 和 P2 通告这一前缀。该前缀能被 P1 聚合到 12/8 block 中,它在点 A 向 Internet 的其余部分通告该前缀,但是 P2 不能再点 B 聚合该前缀,因为它与 P2 的前缀 (137.164/16) 不在数字上连续。此外,从一些 Internet 其他部分的 hosts 的视角来看,向 12.46.129.0/25 的流量倾向于通过 ISP P2 而不是 ISP P1,因为站点 S 的 前缀长于 (“更明确”) 它通过 ISP P1 时的长度。这是基于 longest matching prefix 算法的结论。本质上,在 Internet 其他部分的 host 能通过匹配点 A 的前缀 12.0.0.0/8 或点 B 的前缀 12.46.129.0/25。因为每个前缀都匹配,掩码更长的优先,在这里是 P2。因此,P2 不能聚合来自 S 的前缀,且承担了大部分 S 的流量。

8. Attacks Involving IP Addresses

IP 地址本质上是数字,几乎没有只涉及它们的网络攻击。通常,攻击能在发送 “欺骗” datagrams 时进行,或其他相关活动。

9. Summary

IP 地址 (unicast address) 被用于标识和定位 Internet 系统中设备上的 network interfaces。它也能用于标识多个 interface (multicast,broadcast,anycast 地址)。每个 interface 都至少有一个 32 位的 IPv4 地址 (当 IPv4 被使用时),通常有几个 128 位的 IPv6 地址,如果使用 IPv6。单播地址由管理实体的分层结构化集合在块中分配。由这样的实体分配的 prefixes 表示单播 IP 地址空间块,通常是给 ISPs 的,ISPs 反过来向用户提供地址。这样的 prefixes 通常是 ISP 地址块的子范围 (称为 provider-independent 或 PI 地址)。数字相邻的地址前缀 (PA 地址) 能被聚合以节省路由表地址空间并提升 Internet 的拓展性。这一方法在 Internet 的 “分类” 网络结构,由类 A,B,C network numbers 组成,被弃置,偏向使用 classless inter-domian routing (CIDR) 时被提出。CIDR 允许不同大小的地址块被分配给组织;本质上,CIDR 使地址空间的分配更有效。Anycast 地址是引用不同 hosts 的单播地址,其地址取决于发送方位于何处;这样的地址长用于发现可能存在于多个位置的网络服务。

IPv6 的单播和多播地址都有 scope 的概念,scope 指出地址在何处合法。常见的 scope 包括 node-local,link-local,和 global。link-local 地址是标准前缀结合 IID 创建,IID 基于底层协议 (例如硬件/MAC 地址) 得到或随机值。这一方法有助于 IPv6 地址的自动配置。

IPv4 和 IPv6 都支持同时引用多个 network interface 的寻址形式。IPv4 支持广播和多播,但 IPv6 只支持多播。广播支持 one-to-all 通讯,多播支持 one-to-many 通讯。发送方向多播组 (IP 地址) 发送消息,它不知道任何关于接收方的信息,有多少接收方存在。

NAT 的广泛应用大大推迟了 IPv6 的采用,关联 Internet 的 host 不需要都有一个唯一的地址。相反,大的网络使用私有地址空间现在十分常见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值