⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2767.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
Network Working Group                                       K. TsuchiyaRequests for Comments: 2767                                  H. HiguchiCategory: Informational                                     Y. Atarashi                                                                Hitachi                                                          February 2000     Dual Stack Hosts using the "Bump-In-the-Stack" Technique (BIS)Status of this Memo   This memo provides information for the Internet community.  It does   not specify an Internet standard of any kind.  Distribution of this   memo is unlimited.Copyright Notice   Copyright (C) The Internet Society (2000).  All Rights Reserved.Abstract   In the especially initial stage of the transition from IPv4 to IPv6,   it is hard to provide a complete set of IPv6 applications.  This memo   proposes a mechanism of dual stack hosts using the technique called   "Bump-in-the-Stack" in the IP security area. The mechanism allows the   hosts to communicate with other IPv6 hosts using existing IPv4   applications.1. Introduction   RFC1933 [TRANS-MECH] specifies transition mechanisms, including dual   stack and tunneling, for the initial stage. Hosts and routers with   the transition mechanisms are also developed. But there are few   applications for IPv6 [IPV6] as compared with IPv4 [IPV4] in which a   great number of applications are available. In order to advance the   transition smoothly, it is highly desirable to make the availability   of IPv6 applications increase to the same level as IPv4.   Unfortunately, however, this is expected to take a very long time.   This memo proposes a mechanism of dual stack hosts using the   technique called "Bump-in-the-Stack" [BUMP] in the IP security area.   The technique inserts modules, which snoop data flowing between a   TCP/IPv4 module and network card driver modules and translate IPv4   into IPv6 and vice versa, into the hosts, and makes them self-   translators. When they communicate with the other IPv6 hosts, pooled   IPv4 addresses are assigned to the IPv6 hosts internally, but the   IPv4 addresses never flow out from them. Moreover, since the   assignment is automatically carried out using DNS protocol, users doTsuchiya, et al.             Informational                      [Page 1]RFC 2767               Dual Stack Hosts using BIS          February 2000   not need to know whether target hosts are IPv6 ones. That is, this   allows them to communicate with other IPv6 hosts using existing IPv4   applications; thus it seems as if they were dual stack hosts with   applications for both IPv4 and IPv6. So they can expand the territory   of dual stack hosts.  Furthermore they can co-exist with other   translators because their roles are different.   This memo uses the words defined in [IPV4], [IPV6], and [TRANS-MECH].2. Components   Dual stack hosts defined in RFC1933 [TRANS-MECH] need applications,   TCP/IP modules and addresses for both IPv4 and IPv6. The proposed   hosts in this memo have 3 modules instead of IPv6 applications, and   communicate with other IPv6 hosts using IPv4 applications. They are a   translator, an extension name resolver and an address mapper.   Figure 1 illustrates the structure of the host in which they are   installed.         +----------------------------------------------------------+         |  +----------------------------------------------------+  |         |  | IPv4 applications                                  |  |         |  +----------------------------------------------------+  |         |  +----------------------------------------------------+  |         |  | TCP/IPv4                                           |  |         |  |        +-------------------------------------------+  |         |  |        |  +-----------+  +---------+  +------------+  |         |  |        |  | extension |  | address |  | translator |  |         |  |        |  | name      |  | mapper  |  +------------+  |         |  |        |  | resolver  |  |         |  +------------+  |         |  |        |  |           |  |         |  | IPv6       |  |         |  +--------+  +-----------+  +---------+  +------------+  |         |  +----------------------------------------------------+  |         |  | Network card drivers                               |  |         |  +----------------------------------------------------+  |         +----------------------------------------------------------+         +----------------------------------------------------------+         |    Network cards                                         |         +----------------------------------------------------------+               Figure. 1 Structure of the proposed dual stack hostTsuchiya, et al.             Informational                      [Page 2]RFC 2767               Dual Stack Hosts using BIS          February 20002.1 Translator   It translates IPv4 into IPv6 and vice versa using the IP conversion   mechanism defined in [SIIT].   When receiving IPv4 packets from IPv4 applications, it converts IPv4   packet headers into IPv6 packet headers, then fragments the IPv6   packets (because header length of IPv6 is typically 20 bytes larger   than that of IPv4), and sends them to IPv6 networks. When receiving   IPv6 packets from the IPv6 networks, it works symmetrically to the   previous case, except that there is no need to fragment the packets.2.2 Extension Name Resolver   It returns a "proper" answer in response to the IPv4 application's   request.   The application typically sends a query to a name server to resolve   'A' records for the target host name. It snoops the query, then   creates another query to resolve both 'A' and 'AAAA' records for the   host name, and sends the query to the server. If the 'A' record is   resolved, it returns the 'A' record to the application as is. In the   case, there is no need for the IP conversion by the translator.  If   only the 'AAAA' record is available, it requests the mapper to assign   an IPv4 address corresponding to the IPv6 address, then creates the   'A' record for the assigned IPv4 address, and returns the 'A' record   to the application.   NOTE: This action is similar to that of the DNS ALG (Application   Layer Gateway) used in [NAT-PT]. See also [NAT-PT].2.3 Address mapper   It maintains an IPv4 address spool. The spool, for example, consists   of private addresses [PRIVATE]. Also, it maintains a table which   consists of pairs of an IPv4 address and an IPv6 address.   When the resolver or the translator requests it to assign an IPv4   address corresponding to an IPv6 address, it selects and returns an   IPv4 address out of the spool, and registers a new entry into the   table dynamically. The registration occurs in the following 2 cases:   (1) When the resolver gets only an 'AAAA' record for the target host       name and there is not a mapping entry for the IPv6 address.   (2) When the translator receives an IPv6 packet and there is not a       mapping entry for the IPv6 source address.Tsuchiya, et al.             Informational                      [Page 3]RFC 2767               Dual Stack Hosts using BIS          February 2000   NOTE: There is only one exception. When initializing the table, it   registers a pair of its own IPv4 address and IPv6 address into the   table statically.3. Action Examples   This section describes action of the proposed dual stack host called   "dual stack," which communicates with an IPv6 host called "host6"   using an IPv4 application.3.1 Originator behavior   This subsection describes the originator behavior of "dual stack."   The communication is triggered by "dual stack."   The application sends a query to its name server to resolve 'A'   records for "host6."   The resolver snoops the query, then creates another query to resolve   both 'A' and 'AAAA' records for the host name, and sends it to the   server. In this case, only the 'AAAA' record is resolved, so the   resolver requests the mapper to assign an IPv4 address corresponding   to the IPv6 address.   NOTE: In the case of communication with an IPv4 host, the 'A' record   is resolved and then the resolver returns it to the application as   is. There is no need for the IP conversion as shown later.   The mapper selects an IPv4 address out of the spool and returns it to   the resolver.   The resolver creates the 'A' record for the assigned IPv4 address and   returns it to the application.   NOTE: See subsection 4.3 about the influence on other hosts caused by   an IPv4 address assigned here.   The application sends an IPv4 packet to "host6."   The IPv4 packet reaches the translator. The translator tries to   translate the IPv4 packet into an IPv6 packet but does not know how   to translate the IPv4 destination address and the IPv4 source   address. So the translator requests the mapper to provide mapping   entries for them.Tsuchiya, et al.             Informational                      [Page 4]RFC 2767               Dual Stack Hosts using BIS          February 2000   The mapper checks its mapping table and finds entries for each of   them, and then returns the IPv6 destination address and the IPv6   source address to the translator.   NOTE: The mapper will register its own IPv4 address and IPv6 address   into the table beforehand. See subsection 2.3.   The translator translates the IPv4 packet into an IPv6 packet then   fragments the IPv6 packet if necessary and sends it to an IPv6   network.   The IPv6 packet reaches "host6." Then "host6" sends a new IPv6 packet   to "dual stack."   The IPv6 packet reaches the translator in "dual stack."   The translator gets mapping entries for the IPv6 destination address   and the IPv6 source address from the mapper in the same way as   before.   Then the translator translates the IPv6 packet into an IPv4 packet   and tosses it up to the application.Tsuchiya, et al.             Informational                      [Page 5]RFC 2767               Dual Stack Hosts using BIS          February 2000   The following diagram illustrates the action described above:   "dual stack"                                            "host6"   IPv4    TCP/  extension  address  translator  IPv6   appli-  IPv4  name       mapper   cation        resolver     |      |       |         |       |           |         |   <<Resolve an IPv4 address for "host6".>>       |         |     |      |       |         |       |           |         |     |------|------>|  Query of 'A' records for "host6".    | Name     |      |       |         |       |           |         | Server     |      |       |---------|-------|-----------|---------|--->|     |      |       |  Query of 'A' records and 'AAAA' for "host6"     |      |       |         |       |           |         |    |     |      |       |<--------|-------|-----------|---------|----|     |      |       |  Reply only with 'AAAA' record.       |     |      |       |         |       |           |         |     |      |       |<<Only 'AAAA' record is resolved.>>    |     |      |       |         |       |           |         |     |      |       |-------->|  Request one IPv4 address   |     |      |       |         |  corresponding to the IPv6 address.     |      |       |         |       |           |         |     |      |       |         |<<Assign one IPv4 address.>> |     |      |       |         |       |           |         |     |      |       |<--------|  Reply with the IPv4 address.     |      |       |         |       |           |         |     |      |       |<<Create 'A' record for the IPv4 address.>>     |      |       |         |       |           |         |     |<-----|-------|  Reply with the 'A' record. |         |     |      |       |         |       |           |         |                  Figure 2 Action of the originator (1/2)Tsuchiya, et al.             Informational                      [Page 6]RFC 2767               Dual Stack Hosts using BIS          February 2000   "dual stack"                                           "host6"   IPv4    TCP/  extension  address  translator  IPv6   appli-  IPv4  name       mapper   cation        resolver     |      |       |         |       |           |         |   <<Send an IPv4 packet to "host6".>>|           |         |     |      |       |         |       |           |         |     |======|=======|=========|======>|  An IPv4 packet.    |     |      |       |         |       |           |         |     |      |       |         |<------|  Request IPv6 addresses     |      |       |         |       |  corresponding to the IPv4     |      |       |         |       |  addresses.         |     |      |       |         |       |           |         |     |      |       |         |------>|  Reply with the IPv6|     |      |       |         |       |  addresses.         |     |      |       |         |       |           |         |     |      |       |         |       |<<Translate IPv4 into IPv6.>>     |      |       |         |       |           |         |     |      |       |An IPv6 packet.  |===========|========>|     |      |       |         |       |           |         |     |      |       |         |     <<Reply an IPv6 packet to     |      |       |         |       "dual stack".>>       |     |      |       |         |       |           |         |     |      |       |An IPv6 packet.  |<==========|=========|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -