Одновременно с развитием и усложнением сервисов сети видоизменялась и несущая технология – Интернет-протокол (IP). Со временем IP претерпевал множество модификаций, которые существенно улучшили многие его параметры. Однако быстрота и перспективы дальнейшего роста сети поставили перед IP-протоколом, который используется в настоящее время, ряд неразрешимых проблем:
К настоящему моменту протокол IPv6 является рабочим стандартом (Draft Standart) — остался всего один шаг до его принятия в качестве официального стандарта Интернет. Это означает, что основные спецификации [6, 7, 8, 9, 10, 11] протокола IPv6 уже вряд ли изменятся в процессе стандартизации. Другие спецификации пока еще находятся либо на начальном этапе процедуры стандартизации (Proposed Standard) [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], либо в стадии разработки [33, 34, 35, 36, 37, 38, 39, 40, 41]. Стабильность спецификаций создает все необходимые условия для появления IPv6 продуктов на рынке [42]:
Значение FP задает структуру оставшейся части адреса: наличие определенных полей, их формат и назначение [6, 7, 26, 35]. К примеру, агрегируемый глобальный индивидуальный адрес имеет следующую структуру [53]:
Рис. 3. Структура агрегируемого глобального индивидуального адреса Не вдаваясь в детали, заметим лишь, что такая структура адреса позволяет, в частности, реализовать схему иерархической маршрутизации. Эта схема призвана положить предел неограниченному росту таблиц маршрутизации (см. раздел 4.3). Все вышеизложенное свидетельствует, что архитектура адресации в IPv6 существенно отличается от адресации в IPv4. Однако отличия между двумя версиями протокола IP не сводятся только к различиям в размере и структуре используемых адресов. Другие части протокола также были существенно модифицированы. В частности, сама структура пакета IPv6 была сильно оптимизирована.
Вышеуказанные особенности строения пакета IPv6 позволяют удешевить и ускорить обработку IPv6-пакетов в промежуточных узлах сети. С другой стороны, они позволяют сильно ослабить ограничения на размер той части пакета, которая может быть отведена для реализации дополнительных опций. Кроме того, строение пакета IPv6 обладает большой гибкостью и позволяет легко добавлять новые опции в будущем. Пакет IPv6 содержит следующие поля:
Помимо существенных требований к объему памяти это сильно замедляет поиск в таблицах и, соответственно, быстродействие маршрутизаторов вплоть до полного нарушения работы. Как уже отмечалось выше, сама структура агрегируемого глобального индивидуального адреса в IPv6 специально разработана так, чтобы обеспечить агрегирование маршрутов. В IPv6 поддерживаются два типа агрегирования [7]: «операторский» (provider based) и «узловой» (exchange-based). Это делает возможным эффективное агрегирование маршрутов как тех потребителей, что подключаются к узлу доступа определенного оператора, так и тех, сети которых подключены непосредственно к публичному узлу обмена данными. Потребитель свободен в выборе типа подключения своей сети. Агрегируемые адреса образуют трехуровневую иерархическую структуру:
Идентификаторы (под)агрегата верхнего уровня занимают верхнюю ступень в иерархии маршрутов. Маршрутизаторы, не использующие «маршрут по умолчанию», обязаны содержать в своей таблице маршрутизации записи, отвечающие каждому TLA ID, и, возможно, еще записи, соответствующие более специфичным маршрутам внутри того TLA ID, к которому относится данный маршрутизатор. Таблица маршрутизации может содержать некоторое количество дополнительных записей в целях оптимизации маршрутизации для данной конкретной топологии [39], но при планировании сети следует стремиться к тому, чтобы свести количество таких записей к минимуму. Идентификаторы агрегата следующего уровня используются операторами и организациями, которым был выделен TLA ID, для создания иерархии адресов внутри данного TLA ID. Идентификаторы агрегата уровня сайта используются потребителем для создания локальной иерархии адресов и идентификации подсетей в пределах конкретного сайта. Информация о маршрутах уровня SLA локальна для данного конкретного сайта и никогда не попадает на маршрутизаторы сети общего пользования. Идентификаторы интерфейсов используются для адресации конкретных интерфейсов в масштабах данного конкретного канала связи (или ЛВС). Идентификатор интерфейса должен быть уникальным в пределах данного канала связи. Согласно требованиям стандарта, этот идентификатор должен иметь длину 64 бита и формат, соответствующий IEEE EUI-64 [55]. Вкратце правило агрегирования таково: на каждом уровне, кроме самого верхнего, присутствуют только маршруты, локальные для данного уровня и «маршрут по умолчанию». На самом верхнем уровне таблица содержит TLA-маршруты, соответствующие всем «чужим» активным TLA, и NLA-маршруты, локальные для «домашнего» TLA. Таким образом, в IPv6 появляется возможность избежать того катастрофического роста таблицы маршрутов, который мы наблюдаем в IPv4-сетях. 4.4. Механизмы автоконфигурации хостов IPv6
На первом этапе, пока большая часть Интернета работает по протоколу IPv4, реализация связности по протоколу IPv6 будет осуществляться методом туннелирования. Такое туннелирование достигается путем инкапсуляции IPv6-пакета внутри пакета IPv4. Передача информации при этом осуществляется следующим образом: IPv6-узел создает IPv6-пакеты, которые инкапсулируются в пакеты IPv4 и передаются через IPv4-сеть. Узел на другом конце туннеля разворачивает IPv4-пакет, извлекает IPv6-пакет и затем передает его в узел назначения. Существуют туннели разных типов, причем тип используемого туннеля зависит от того, какое устройство производит инкапсуляцию и декапсуляцию пакетов. Туннели «маршрутизатор-маршрутизатор» могут использоваться для связывания двух «чистых» IPv6-сетей, разделенных IPv4-сетью. Туннели «хост-маршрутизатор» позволяют изолированным двухпротокольным хост-машинам преодолевать участки IPv4-сети, связываясь с IPv6-сетями через двухпротокольный IP-маршрутизатор. Туннели «маршрутизатор-хост» связывают изолированные двухпротокольные узлы c IPv6-сетями, тогда как туннели «хост-хост» позволяют изолированным двухпротокольным узлам взаимодействовать по протоколу IPv6 через IPv4-сети. Может различаться и порядок определения конечных пунктов туннелей. IPv6-туннели могут конфигурироваться вручную, автоматически или путем многоадресной (групповой) передачи сквозь IPv4-сети [27]. В каждом сконфигурированном вручную туннеле конечный пункт определяется независимо от пункта назначения IPv6-пакета. Это обычно означает, что кто-нибудь должен конфигурировать систему, занимающуюся инкапсуляцией данных в протокол IPv4, таким образом, чтобы был указан пункт назначения получающихся IPv4-пакетов. Автоматические туннели создаются, когда IPv6-пакет использует IPv4-совместимый адрес и адресован двухпротокольному узлу. Автоматическое туннелирование распространяет всю таблицу IPv4-маршрутизации внутри инфраструктуры IPv6-маршрутизации и не помогает решить проблему истощения резерва IPv4-адресов. Многоадресная туннельная передача по протоколу IPv4 возможна только в пределах той инфраструктуры IPv4-сети, которая поддерживает многоадресную передачу. Узел, инкапсулирующий IPv6-пакет в IPv4-пакет, определяет конечную точку туннеля путем использования многоадресной передачи по протоколу IPv4 для «обнаружения соседа» (neighbor discovery). Этот механизм позволяет IPv6-узлу «обнаружить» другие узлы, относящиеся к тому же каналу связи, определить их адреса на уровне канала связи, найти маршрутизаторы, а также поддерживать информацию о маршрутах к активным соседним узлам. Данный вариант позволяет не конфигурировать туннель и не использовать IPv4-совместимые адреса – но, к сожалению, многие операторы Интернета еще не поддерживают маршрутизацию многоадресных пакетов. Конечно, наличие большого количества туннелей не способствует повышению производительности сети и улучшению управляемости всей системы. К счастью, по мере роста IPv6-инфраструктуры количество туннелей будет сокращаться, так как останутся лишь отдельные скопления (так называемые облака) «чистых» IPv4-сетей. Если же учесть, что протокол IPv6, в сравнении с IPv4, является более эффективным, то окажется, что снижением производительности при туннельной передаче можно пренебречь.
Литература
1. S. King, R. Fax, D. Haskin, W. Ling, T. Meehan, R. Fink, C. E. Perkins. The Case for IPv6. Internet Draft, Internet Architecture Board, draft-ietf-iab-case-for-ipv6–06.txt, December 1999. 2. http://www.isc.org/ds/host-count-history.html. 3. Сети и системы связи. 2000, № 2 (52), С. 23. 4. Сетевой журнал Data Communications, 2000, № 1, С. 63.5. S. Bradner, A. Mankin. The Recommendations for the IP Next Generation Protocol // RFC 1752, Jan. 1995. 6. R. Hinden, S. Deering. IP Version 6 Addressing Architecture // RFC 2373, July 1998. 7. R. Hinden, M. O’Dell, S. Deering. An IPv6 Aggregatable Global Unicast Address Format // RFC 2374, July 1998. 8. S. Deering, R. Hinden. Internet Protocol, Version 6 (IPv6) Specification // RFC 2460, Dec. 1998. 9. T. Narten, E. Nordmark, W. Simpson. Neighbor Discovery for IP Version 6 (IPv6) // RFC 2461, Dec. 1998. 10. S. Thomson, T. Narten. IPv6 Stateless Address Autoconfiguration // RFC 2462, Dec. 1998. 11. A. Conta, S. Deering. Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification // RFC 2463, Dec. 1998. 12. S. Thomson, C. Huitema. DNS Extensions to support IP version 6 // RFC 1886, Dec. 1995. 13. Y. Rekhter, T. Li. An Architecture for IPv6 Unicast Address Allocation // RFC 1887, Dec. 1995. 14. J. McCann, S. Deering, J. Mogul. Path MTU Discovery for IP version 6 // RFC 1981, August 1996. 15. D. Haskin, E. Allen. IP Version 6 over PPP // RFC 2472, December 1998. 16. G. Malkin, R. Minnear. RIPng for IPv6 // RFC 2080, January 1997. 17. M. Daniele. IP Version 6 Management Information Base for the Transmission Control Protocol // RFC 2452, December 1998. 18. M. Daniele. IP Version 6 Management Information Base for the User Datagram Protocol // RFC 2454, December 1998. 19. M. Crawford. Transmission of IPv6 Packets over Ethernet Networks // RFC 2464, December 1998. 20. D. Haskin, S. Onishi. Management Information Base for IP Version 6: Textual Conventions and General Group // RFC 2465, December 1998. 21. D. Haskin, S. Onishi. Management Information Base for IP Version 6: ICMPv6 Group // RFC 2466, December 1998. 22. M. Crawford. Transmission of IPv6 Packets over FDDI Networks // RFC 2467, December 1998. 23. M. Crawford, T. Narten, S. Thomas. Transmission of IPv6 Packets over Token Ring Networks // RFC 2470, December 1998. 24. A. Conta, S. Deering. Generic Packet Tunneling in IPv6 Specification // RFC 2473, December 1998. 25. M. Degermark, B. Nordgren, S. Pink. IP Header Compression // RFC 2507, February 1999. 26. D. Johnson, S. Deering. Reserved IPv6 Subnet Anycast Addresses // RFC 2526, March 1999. 27. B. Carpenter, C. Jung. Transmission of IPv6 over IPv4 Domains without Explicit Tunnels // RFC 2529, March 1999. 28. P. Marques, F. Dupont. Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing // RFC 2545, March 1999. 29. A. Conta, A. Malis, M. Mueller. Transmission of IPv6 Packets over Frame Relay Networks Specification // RFC 2590, March 1999. 30. D. Borman, S. Deering, R. Hinden. IPv6 Jumbograms // RFC 2675, August 1999. 31. S. Deering, W. Fenner, B. Haberman. Multicast Listener Discovery (MLD) for IPv6 // RFC 2710, October 1999. 32. C. Partridge, A. Jackson. IPv6 Router Alert Option // RFC 2711, October 1999. 33. J. Bound, B. Carpenter, D. Harrington, J. Houldsworth, A. Lloyd. OSI NSAPs and IPv6 // RFC 1888, August 1996. 34. W. Stevens, M. Thomas. Advanced Sockets API for IPv6», RFC 2292, February 1998. 35. R. Hinden, S. Deering, «IPv6 Multicast Address Assignments», RFC 2375, July 1998 36. R. Hinden, «Proposed TLA and NLA Assignment Rules // RFC 2450, December 1998 37. R. Gilligan, S. Thomson, J. Bound, W. Stevens. Basic Socket Interface Extensions for IPv6 // RFC 2553, March 1999. 38. M. Crawford. Router Renumbering for IPv6 // Internet Draft, draft-ietf-ipngwg-router-renum-10.txt, March 2000. 39. J. Yu. IPv6 Multihoming with Route Aggregation // Internet Draft, draft-ietf-ipngwg-ipv6multihome-with-aggr-00.txt, November 1999. 40. D. Johnson, C. Perkins. Mobility Support in IPv6 // Internet Draft, draft-ietf-mobileip-ipv6–09.txt, October 1999. 41. R. Callon, D. Haskin. Routing Aspects of IPv6 Transition // RFC 2185, September 1997. 42. http://www.ipv6.ru/soft/ 43. F. Solensky. «IPv4 Address Lifetime Expectations» in IPng: Internet Protocol Next Generation (S.Bradner, A. Mankin, ed), Adddison Wesley, 1996. 44. http://www.6bone.net/ 45. http://www.6ren.net/ 46. http://www.6tap.net/ 47. http://www.ipv6forum.com/ 48. http://www.ipv6.ru/ 49. http://www.wide.ad.jp/ 50. http://www.kame.net/ 51. РБК, 14.03.2000, Москва 16:45:06. 52. РБК, 27.03.2000, Москва 17:59:02. 53. APNIC, ARIN, RIPE NCC, «IPv6 Assignment and Allocation Policy Document», RIPE-196, July 1999. 54. http://www.telstra.net/ops/bgptable.html 55. IEEE, «Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority», http://standards.ieee.org/regauth/oui/tutorials/EUI64.html, January 2000 56. S. Kent, R. Atkinson. Security Architecture for the Internet Protocol // RFC 2401, November 1998. 57. S. Kent, R. Atkinson. IP Authentication Header // RFC 2402, November 1998. 58. S. Kent, R. Atkinson. IP Encapsulating Security Payload (ESP) // RFC 2406, November 1998. 59. R. Gilligan, E. Nordmark. Transition Mechanisms for IPv6 Hosts and Routers // RFC 1933, April 1996. © Информационное общество, 2000, вып. 4, с. 11 - 22.