IPv4/IPv6 转 换 网 关 的 数 据 模 型 研 究 张 伟 建, 张 雪 洁 河 海 大 学 计 算 机 及 信 息 工 程 学 院, 江 苏 南 京 (210098) E-mail:wjzhang@hhu.edu.cn 摘 要 : 在 IPv4 网 络 向 Ipv6 网 络 过 渡 过 程 中, 转 化 网 关 因 其 在 配 置 过 程 中 无 损 已 有 的 网 络 环 境 成 为 目 前 甚 至 是 相 当 长 一 段 时 期 内 的 最 优 选 择 本 文 对 现 有 的 三 种 IPv4/IPv6 转 换 网 关 进 行 了 深 入 分 析, 并 详 细 描 述 了 每 种 类 型 的 连 接 结 构 和 地 址 转 化 流 程, 在 此 基 础 上 提 出 了 基 于 NAT-PT 机 制 的 通 用 地 址 数 据 模 型 关 键 词 :IPv4;IPv6; 转 换 网 关 ;NAT-PT; 数 据 模 型 中 图 分 类 号 :TP393 1. 引 言 下 一 代 互 联 网 络 协 议 IPv6 正 被 加 速 认 可 和 应 用 推 广, 现 有 IPv4 网 络 向 Ipv6 网 络 过 渡 机 制 的 研 究 越 来 越 具 有 重 要 的 实 际 意 义 在 已 被 IETF 所 定 义 的 诸 多 过 渡 机 制 中, 由 于 转 化 网 关 在 配 置 过 程 中 无 损 已 有 的 网 络 环 境, 且 便 于 实 施, 因 此 成 为 目 前 甚 至 是 相 当 长 一 段 时 期 内 的 最 优 选 择 转 换 网 关 以 NAT-PT(Network Address Translation - Protocol Translation) [1] 机 制 为 基 础, 因 此 通 常 也 称 为 NAT-PT, 它 处 于 IPv4 网 络 和 IPv6 网 络 的 交 界 点 上, 同 时 接 收 来 自 IPv4 和 IPv6 两 种 网 络 的 数 据 包, 根 据 需 要 在 IPv4 地 址 与 IPv6 地 址 之 间 进 行 地 址 转 换 协 议 ( 语 义 ) 转 换 [2], 并 且 依 据 不 同 的 需 求 定 义 不 同 的 应 用 层 网 关 IPv4 网 络 实 现 向 Ipv6 网 络 的 过 渡 首 先 要 解 决 的 是 IP 地 址 异 构 问 题, 地 址 转 换 是 解 决 该 问 题 最 便 捷 最 直 接 的 办 法, 也 为 建 立 和 实 现 其 他 协 议 通 信 奠 定 基 础, 因 此 NAT-PT 中 负 责 IP 地 址 转 换 的 NAT 模 块 显 得 尤 为 重 要 本 文 在 全 面 分 析 NAT-PT 的 基 础 上, 提 出 了 一 种 通 用 地 址 数 据 模 型, 并 用 该 数 据 模 型 表 达 了 各 类 转 换 网 关 的 地 址 转 换 流 程, 最 后 阐 明 了 进 一 步 的 工 作 2. 转 换 网 关 的 分 类 转 换 网 关 NAT-PT 主 要 进 行 地 址 和 协 议 的 翻 译, 其 基 本 思 想 是 : 在 进 行 IPv4/IPv6 地 址 转 换 的 同 时, 对 IPv4 报 文 和 IPv6 报 文 进 行 报 头 格 式 和 相 应 语 义 的 翻 译 依 据 会 话 发 起 方 式 和 地 址 转 换 方 式 的 不 同, 转 换 网 关 可 以 分 为 以 下 两 大 类 : Traditional NAT-PT( 传 统 型 转 换 网 关 ), 仅 允 许 v6 的 网 络 去 访 问 v4 的 网 络, 也 就 是 说 会 话 的 建 立 是 单 向 的 具 体 可 分 为 Basic NAT-PT( 基 本 型 ) 和 NAPT-PT ( 端 口 型 ) 两 类 Bi-Directional NAT-PT( 双 向 型 转 换 网 关 ), 必 须 有 DNS-ALG 支 持 才 能 实 现 3. 转 换 网 关 地 址 数 据 模 型 3.1 概 述 与 IPv4 网 络 中 NAT 网 关 的 作 用 类 似,IPv4_IPv6 转 换 网 关 NAT-PT 通 过 自 带 的 地 址 池 完 成 IPv6 地 址 与 IPv4 地 址 的 映 射 转 换, 实 现 由 IPv6 节 点 发 起 的 对 IPv4 节 点 的 访 问 根 据 映 射 规 则 将 IPv6 节 点 地 址 和 地 址 池 中 的 某 一 空 闲 地 址 绑 定 ( 即 实 现 地 址 映 射 ), 绑 定 后 的 源 地 址 目 的 地 址 构 成 新 的 同 构 地 址 数 据 包, 完 成 会 话 NAT-PT 结 构 如 图 1 所 示 - 1 -
DNSv4 IPv4 网 络 NAT-PT IPv6 网 络 DNSv6 ( 地 址 池,Ti) R1 S1 S2 图 1 NAT-PT 模 型 完 整 结 构 图 假 定 : 节 点 S1 的 IPv6 地 址 :1080::8:800:200C:3561; 节 点 S2 的 IPv6 地 址 :1080::8:800:200C:3562; 节 点 R1 的 IPv4 地 址 :126.112.23.26; Basic NAT-PT 的 地 址 池 为 一 个 IPv4 的 子 网 :134.128.123.0/24 3.2 地 址 数 据 模 型 3.2.1 基 于 Basic NAT-PT 的 地 址 数 据 模 型 定 义 1:SA 表 示 数 据 包 中 的 源 地 址,DA 表 示 目 的 地 址 定 义 2:IPv6 网 络 节 点 用 S 表 示,IPv4 网 络 中 节 点 用 R 表 示, 地 址 池 中 地 址 用 T 表 示 定 义 3:Si.A(Ri.A) 表 示 节 点 Si(Ri) 的 地 址 ;Ti 表 示 转 换 地 址 池 的 地 址,i=1,2 定 义 4: 地 址 数 据 模 型 由 两 个 或 多 个 数 据 元 构 成, 数 据 元 包 括 一 个 或 两 个 基 本 数 据 信 息, 基 本 数 据 信 息 由 字 符 数 字 组 成, 基 本 数 据 信 息 用. 间 隔, 并 允 许 使 用 IPv4 映 像 地 址 进 行 表 达, 如 :(S6.A,PREFIX::R6.A) [3] 根 据 图 1, 节 点 S1 发 起 的 对 R1 访 问 数 据 包 的 地 址 数 据 模 型 如 下 : (SA,DA)=(S1.A,PREFIX::R1.A) 式 1 当 数 据 包 经 过 Basic NAT-PT 时, 假 设 地 址 池 中 可 用 映 射 地 址 为 T1, 则 实 行 的 地 址 映 射 规 则 如 下 : (S1.A,PREFIX: :R1.A) (T1,R1.A) 式 2 当 IPv4 地 址 池 中 的 v4 地 址 和 v6 端 节 点 的 数 目 一 样 多 时,v4 地 址 可 以 一 对 一 的 静 态 分 配 给 v6 端 节 点 的 IPv6 地 址 当 IPv4 地 址 池 中 的 地 址 个 数 少 于 v6 的 端 节 点 的 数 目 时, 至 少 [4] 需 要 对 部 分 地 址 进 行 映 射 地 址 的 动 态 分 配 [5] 假 设 IPv6 中 S1 节 点 需 要 和 IPv4 中 R1 节 点 进 行 通 信, 数 据 流 程 如 下 : (1) 根 据 式 1,S1 节 点 发 送 数 据 包 如 下 : (S1.A, PREFIX: :R1.A)= (1080::8:800:200C:3561,PREFIX: :126.112.23.26) 前 缀 PREFIX::/96 由 Basic NAT-PT 预 确 定 的, 包 含 这 个 前 缀 的 报 文 就 会 被 路 由 到 该 网 关 这 个 预 先 设 置 的 前 缀, 只 需 要 在 IPv6 网 络 内 可 路 由 即 可, 井 且 有 多 个 选 择 - 2 -
(2) 上 述 报 文 达 到 该 网 关 之 后, 根 据 式 2 映 射 成 同 构 IPv4 地 址 如 下 : (1080::8:800:200C:3561,PREFIX::126.112.23.26) (134.128.123.66,126.112.23.26) 如 果 这 个 报 文 不 是 会 话 初 始 化 时 的 报 文, 那 么 该 网 关 已 经 存 储 了 和 这 个 会 话 相 关 的 一 些 信 息, 包 括 己 绑 定 的 IPv4 地 址 和 其 它 一 些 转 换 的 参 数 否 则, 默 认 丢 弃 这 个 报 文 如 果 这 个 报 文 是 会 话 初 始 化 报 文,Basic NAT-PT 从 IPv4 地 址 池 中 选 择 一 个 可 用 IPv4 地 址 分 配 ( 比 如 : 134.128.123.12), 然 后 这 个 数 据 包 被 翻 译 成 IPv4 在 会 话 期 间 会 存 储 翻 译 的 一 些 参 数,IPv6 到 IPv4 的 映 射 由 Basic NAT-PT 来 保 存 [6] (3) 返 回 来 的 数 据 可 以 被 Basic NAT-PT 识 别 出 属 于 同 一 个 会 话 该 网 关 使 用 这 些 状 态 信 息 来 翻 译 数 据 包, 最 后 的 回 馈 数 据 包 地 址 如 下 : (SA,DA)=(PREFIX::R1.A,S1.A)=(PREFIX::126.112.23.26,1080::8:800:200C:3561) 3.2.2 基 于 NAPT-PT 的 地 址 数 据 模 型 定 义 5:Si.Pj 表 示 节 点 Si 的 TCP 端 口 地 址 Pj,i j=1,2,i j 65535 根 据 图 1, 节 点 S1 发 起 的 对 R1 访 问 数 据 包 的 地 址 数 据 模 型 如 下 : (SA,SA.Pj,DA,DA.Pk)=(S1.A,S1.P1,PREFIX::R1.A,R1.P2) 式 3 当 数 据 包 经 过 NAPT-PT 时, 假 设 地 址 池 中 可 用 映 射 地 址 为 T1, 则 实 行 的 地 址 映 射 规 则 如 下 : (S1.A,S1.P1,PREFIX::R1.A, R1.P2) (T1,T1.P3,R1.A,R1.P2) 式 4 假 设 IPv6 中 S1 节 点 需 要 和 IPv4 中 R1 节 点 进 行 通 信, 源 TCP 端 口 =2128, 目 的 TCP 端 口 =266, 映 射 地 址 134.128.123.66,TCP 端 口 =1025 数 据 流 程 如 下 [7] : (1) 根 据 式 3,S1 节 点 发 送 数 据 包 如 下 : (S1.A,S1.P1,R1.A,R1.P2)=(1080::8:800:200C:3561,2128, PREFIX::126.112.23.26,266) (2) 当 报 文 到 NAPT-PT 时,NAPT-PT 分 配 一 个 包 含 TCP 端 口 的 IPv4 地 址 为 源 地 址 和 源 TCP 端 口, 根 据 式 4 映 射 成 同 构 IPv4 地 址 如 下 : (1080::8:800:200C:3561,2128, PREFIX::126.112.23.26,266) ( 134.128.123.66, 1025, 126.112.23.26,266) (3) 返 回 来 的 数 据 可 以 被 NAPT-PT 识 别 出 属 于 同 一 个 会 话,NAPT-PT 使 用 这 些 状 态 信 息 来 翻 译 数 据 包, 最 后 回 馈 的 数 据 包 地 址 如 下 : (SA,SA.Pj,DA,DA.Pk)=(PREFIX::126.112.23.26,266,1080::8:800:200C:3561,2128) 映 射 地 址 126.112.23.26 可 以 处 理 63k TCP 和 63KUDP 会 话, 但 是 同 一 种 服 务 或 是 说 使 用 同 一 种 端 口 来 提 供 服 务 的 服 务 器 一 次 只 能 有 一 个, 因 此 IPv6 中 S2 节 点 发 起 的 访 问 的 映 射 地 址 依 然 是 126.112.23.26, 只 是 端 口 发 生 了 改 变 上 文 中 是 以 TCP 为 例 说 明 了 NAPT 的 地 址 模 型 转 换 流 程, 上 述 步 骤 也 适 用 于 UDP ICMP 在 UDP 中, 利 用 UDP 的 源 端 口 和 目 的 端 口 地 址 进 行 NAPT 操 作, 在 ICMP 中 利 用 其 协 议 头 的 标 示 符 字 段 进 行 NAPT 操 作 3.2.3 基 于 Bi-Directional NAT-PT 的 地 址 数 据 模 型 定 义 6:DNSv4 表 示 IPv4 网 络 中 DNS 服 务 器,DNSv4.A 表 示 节 点 DNSv4 的 地 址 ;DNSv6 表 示 IPv6 网 络 中 DNS 服 务 器,DNSv6.A 表 示 节 点 DNSv6 的 地 址 - 3 -
定 义 7:Di 表 示 IPv4 或 IPv6 网 络 中 的 域 名,Di.A 表 示 该 域 名 的 解 析 地 址 根 据 图 1,IPv6 节 点 S1 发 起 的 对 R1( 假 定 对 应 域 名 D1) 访 问 数 据 包 的 地 址 数 据 模 型 如 下 : (SA,Di,DNSv6.A) (SA,Di,DNSv4.A) (S1.A,PREFIX::D1.A)=(S1.A,PREFIX::R1.A) 式 5 当 数 据 包 经 过 Bi-Direction NAT-PT 时, 实 行 的 地 址 映 射 规 则 见 式 2 IPv4 节 点 R1 发 起 的 对 S1( 假 定 对 应 域 名 D2) 访 问 数 据 包 的 地 址 数 据 模 型 如 下 : (SA,Di,DNSv4.A) (SA,Di,DNSv6.A) (R1.A,Ti.A)=(PREFIX::R1.A,S1.A) 式 6 对 于 v6 to v4 的 访 问 (1)IPv6 节 点 S1 要 与 IPv4 节 点 R1 建 立 连 接, 但 是 不 知 道 R1 节 点 的 IPv6 地 址, 于 是 发 出 DNS 请 求 (Request) 问 IPv6 域 名 的 地 址,DNS 请 求 (request) 转 给 IPv6 DNS, 但 在 IPv6 DNS 中 找 不 到 R1 的 记 录 (record) [8] [9] (2) 于 是 IPv6 DNS 将 此 Request 转 发 出 去, 被 DNS-ALG 拦 截 (3)DNS-ALG 将 Request 中 的 A6 改 为 A, 往 IPv4 网 络 送 出 (4)IPv4 DNS 接 收 到 此 Request, 假 定 回 复 R1 的 地 址 为 142.125.27.8 (5)DNS-ALG 接 收 到 地 址 信 息 后, 向 NAT-PT 要 prefix, 把 它 加 上 后 变 成 IPV6 地 址 : prefix::142.125.27.8 (6)DNS-ALG 将 A 改 为 A6 之 后 继 续 把 DNS Reply 送 回 给 IPv6 DNS 再 转 给 节 点 S1 (7)S1 现 在 知 道 R1 的 IPv6 地 址 为 prefix::142.125.27.8, 所 以 送 出 数 据 包 (SA,DA)= (1080::8:800:200C:3561,prefix::142.125.27.8) (8) 途 中 经 过 NAT-PT, NAT-PT 看 到 这 是 一 个 建 立 新 连 接 的 数 据 包, 于 是 从 IPv4 地 址 池 中 找 一 个 没 有 用 掉 的 地 址 给 S1, 假 设 是 134.128.123.66, 并 且 建 立 地 址 映 射 (9)NAT-PT 透 过 将 数 据 包 改 成 IPv4 的 格 式 : (SA,DA)=(134.128.123.66,142.125.27.8) 对 于 v4 to v6 的 访 问 与 之 类 似, 只 是 在 DNS 查 询 便 进 行 了 地 址 映 射 操 作, 这 里 便 不 再 累 述 3.2.4 基 于 NAT-PT 的 通 用 地 址 数 据 模 型 通 过 对 上 述 三 种 基 于 NAT-PT 转 换 网 关 转 换 地 址 数 据 模 型 的 深 入 分 析, 不 难 看 出, 包 含 源 地 址 源 端 口 地 址 目 的 地 址 目 的 端 口 地 址 转 换 地 址 转 换 端 口 地 址 域 名 以 及 DNS 服 务 器 ( 含 IPv4 和 IPv6) 地 址 的 9 元 组 可 共 同 组 成 通 用 地 址 数 据 模 型 定 义 8: 通 用 地 址 数 据 模 型 :(Si.A,Si.Pj,Dk.A,Dk.Pl,Tm,Tm.Pn,Dx,DNSv4.A,DNSv6.A), i j k l m n x i=1,2 在 应 用 到 某 一 具 体 类 型 NAT-PT 时, 可 依 据 地 址 数 据 模 型 定 义, 将 相 应 空 缺 的 数 据 元 指 空, 这 样 便 可 实 现 上 述 的 地 址 数 据 转 化 流 程, 详 见 表 1 表 1 数 据 元 信 息 表 目 的 端 转 换 端 口 地 DNS v4 DNS v6 源 地 址 源 端 口 地 址 目 的 地 址 转 换 地 址 域 名 口 地 址 址 服 务 器 服 务 器 Si.A Si.Pj Dk.A Dk.Pl Tm Tm.Pn Dx DNSv4.A DNSv6.A - 4 -
3.3 采 用 通 用 地 址 数 据 模 型 的 优 点 通 过 上 述 分 析 可 见, 采 取 通 用 地 址 数 据 模 型 更 易 于 各 类 NAT-PT 网 关 原 理 的 表 达, 体 现 数 据 地 址 的 转 换 过 程, 并 可 直 接 筛 选 所 需 数 据 元 信 息, 直 观 表 达 三 种 网 关 的 特 点 和 异 同 基 于 Basic NAT-PT 的 地 址 数 据 模 型 实 现 了 IPv6 对 IPv4 网 络 的 稳 定 通 信, 但 由 于 要 与 转 换 地 址 一 一 对 应, 这 样 不 仅 大 量 消 耗 本 已 紧 张 的 Tm 地 址 资 源, 且 很 容 易 出 现 由 于 可 用 Tm 映 射 地 址 不 足 而 导 致 无 法 转 换 IPv6 地 址, 从 而 妨 碍 二 者 的 通 信 基 于 NAPT-PT 的 地 址 数 据 模 型 通 过 Pn( 含 TCP UDP 或 ICMP 等 ) 端 口 的 判 别, 实 现 了 大 量 IPv6 与 一 个 IPv4 地 址 的 映 射, 极 大 拓 展 了 地 址 转 换 的 范 围, 在 一 定 程 度 上 缓 解 了 IPv4 地 址 紧 张 的 矛 盾 但 由 于 Si 依 然 是 IPv6 节 点, 因 此 该 网 关 仅 仅 拓 展 了 由 Si 访 问 Dk 节 点 的 通 信 能 力, 与 Basic NAT-PT 一 样 无 法 实 现 双 向 通 信 基 于 Bi-Directional NAT-PT 的 地 址 数 据 模 型 通 过 增 加 DNSv4.A,DNSv6.A 数 据 元 的 判 别 实 现 了 IPv4/IPv6 的 双 向 访 问, 访 问 过 程 中 所 采 用 的 地 址 数 据 模 型 即 与 基 于 Basic NAT-PT 的 模 型 相 同 通 过 模 型 分 析, 可 判 断 出 一 旦 DNS-ALG 出 错 或 者 暂 时 无 法 访 问, 则 不 能 实 现 双 向 访 问 4. 结 论 本 文 针 对 现 存 的 IPv4/IPv6 转 换 网 关 的 三 种 类 型, 提 出 了 通 用 地 址 数 据 模 型, 并 从 数 据 信 息 转 换 流 程 表 达 等 各 方 面 进 行 了 全 面 阐 述 与 比 较, 说 明 了 每 种 网 关 类 型 适 用 的 范 围 和 情 形 下 一 步 的 工 作 主 要 体 现 在 以 该 数 据 模 型 为 基 础, 继 续 深 入 分 析 表 达 和 解 决 相 关 地 址 数 据 信 息 在 协 议 转 换 安 全 协 议 ( 如 DNSSEC IPSEC 等 ) 通 过 转 换 网 关 时 所 产 生 的 问 题 - 5 -
参 考 文 献 [1] Tsirt sis G. Network address translation protocol translation(nat2pt) RFC2766 [ EB/ OL ]. http :// www. faqs. org/rfcs/ rfcs2766,2005209210. [2] Nordmark E. Stateless IP/ ICMP translation algorithm(siit) RFC2765 [ EB/ OL ]. http :/ / www. faqs. org/ rfcs/rfcs2765, 2005209210. [3] Hinden R. IP Version 6,addressing architecture RFC2373[ EB/ OL ]. http :/ / www. faqs. org/ rfcs/ rfcs2373,2005209210. [4] 杨 怡, 陶 军. 基 于 NAT_PT 和 PROXY 的 HTTP 过 渡 方 案 的 研 究 与 改 进 [J]. 计 算 机 工 程 与 应 用,200604:149-154. [5] 刘 冠 蓉, 陈 爽. NAT 代 理 服 务 器 穿 透 方 法 的 研 究 [J]. 计 算 机 技 术 与 发 展,2006 年 第 16 卷 ( 第 6 期 ):74-76. [6] 陈 霄, 徐 明 伟. 基 于 随 机 Petr i 网 的 NAT-PT 协 议 的 性 能 分 析 [J]. 清 华 大 学 学 报 ( 自 然 科 学 版 ),2006 年 第 46 卷 ( 第 7 期 ):1278-1281. [7] 陈 沫, 王 春 峰, 殷 昭 印 等 (etal). 基 于 IXP2400 网 络 处 理 器 的 高 性 能 IPv4/IPv6 互 通 网 关 [J]. 计 算 机 工 程,2006 年 5 月 第 32 卷 ( 第 10 期 ):91-93. [8] 敦 亚 南, 王 振 兴, 郭 润. 利 用 NAT-PT 网 关 实 现 IPv6 与 IPv4 网 络 互 通 [J]. 计 算 机 应 用,2006 年 6 月 第 26 卷 :226-227. [9] 鹿 凯 宁, 高 磊. 基 于 NAT2PT 的 IPv4 /IPv6 综 合 组 网 技 术 研 究 与 设 计 [J]. 大 连 理 工 大 学 学 报,2005 年 10 月 第 45 卷 :S09-S11. Data Model Research of IPv4/IPv6 Translation Gateway Zhang Weijian, Zhang Xuejie Computer and Information Engineering College, Hohai University, Nanjing(210098) Abstract During the transition from IPv4 to IPv6, the translation gateway has been the best choice for its lossless configuration to network. This paper thoroughly analyses the present three categories of IPv4/IPv6 translation gateway,and the general address data model is brought forward with the description of conjunction architecture and the address translation flow for every NAT-PT. Keywords: IPv4; IPv6; Translation Gateway; Data Model; NAT-PT 作 者 简 介 : 张 伟 建 (1979-), 男, 硕 士 研 究 生, 工 程 师, 主 研 方 向 : 计 算 机 网 络 ; 张 雪 洁 (1979-), 女, 博 士 生 - 6 -