• Like
 Реализация технологии “Операторский NAT” в продуктах Cisco.
Upcoming SlideShare
Loading in...5
×

Реализация технологии “Операторский NAT” в продуктах Cisco.

  • 3,262 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,262
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
27
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Реализация технологии“Операторский NAT” впродуктах Cisco Денис Коденцев Системный инженер dkodents@cisco.com Version 1.0
  • 2. 3.02.2011 у IANA закончились Ipv4 адресаУже в 2012 году RIPE перестал выдавать оставшиеся IPv4 адреса Feb 3, 2011 IANA Pool RIR Pool * Source: http://www.potaroo.net/tools/ipv4/index.html
  • 3. Вероятные шаги оператора связи1. Оценить реальный эффект на сервисы и сеть оператора2. Выбрать путь «выживания» в переходный от IPv4 к IPv6 период3. Определить когда и как начать внедрять IPv6 3. IPv6 6rd 6rd Dual Dual + Stack Stack CGN + IPv4 адреса CGN закончились 2011/2012 2. IPv4 Address Sharing Что дальше? Solutions (e.g. CGN) IPv4 1. Obtain IPv4 Addresses
  • 4. Последовательный и постепенный переход к IPv6 Сегодня Private IP 6-over-4 Transitional 4-over-6 Везде IPv6 CGN(NAT44) 6rd, GRE, Dual stack DS-Lite IPv6inIPv4, 6PE/6VPE XLAT(AFT) Процветание Готовность Сохранение IPv4 = IPv4 = Private IP = IPv6 4
  • 5. Почему IPv6 не внедряется повсеместно?
  • 6. Network Address & Port Translation Постановка задачи Когда говорят “NAT”, обычно подразумевают “NAPT”• NAT • NAPT Впервые описан в 1991 (draft- Описан в 2001 (RFC3022) tsuchiya-addrtrans), RFC1631 1:N Трансляция 1:1 трансляция: не уменьшает Уменьшает количество использованных количество используемых IP IPv4 адресов Per-flow stateless Позволяет использовать один IPv4 В наши дни используется в основном несколькими абонентами в корпоративных сетях Только для TCP, UDP, ICMP Connect overlapping RFC1918 address Инициатор соединения должен space находится в “Inside” Per-flow stateful Часто используется в домашних CPE Термин “NAT44” используют чтобы отличить IPv4-IPv4 NAPT от Address Family Translation, обычно обозначаемым как NAT64 and NAT46”
  • 7. Классический NAT vs CGNКлассический Enterprise NAT Carrier Grade NAT (CGN)• Для корпоративных клиентов • Разработано для операторов• Фокус на ALG связи• Дорогое протоколирование через • Фокус на масштабируемость, Syslog производительность и• Некоторые распространненые пропускную способность (1 приложения не поддерживаются Million conns/sec rate, 20 Million (например SunRPC, NetBIOS, concurrent connections) итд) • «Облегченное»• Ограниченная протоколирование Netflow v9 масштабируемость и • OTT приложения просто производительность работают (e.g. YouTube, Skype,• Высокие расходы CAPEX / OPEX Bitorrent, etc) в пересчете на абонента • Низкий CAPEX / OPEX на абонента • Легко масштабируется
  • 8. Основные требования CGN (NAT44)Любая CGN-NAT44 платформа должна поддерживать: Соответствие NAT RFC (RFC4787, RFC5382, RFC5508) • Endpoint Independent Mapping/Filtering • Paired IP address pooling behavior • Port Parity preservation for UDP • Hairpinning behavior • Static Port Forwarding • Active FTP ALG Управление • Port Limit per subscriber • Mapping Refresh • NAT logging Отказоустойчивость (Intra-box Active/Standby, Inter-box Active/Active)
  • 9. Application Layer Gateway (ALG)• Осведомленность NAT механизма о транслируемом трафике приложений• Функции ALG: 1. Модификация IP адресов и портов внутри передаваемых данных приложений 2. Создание NAT соответствий• Каждое приложение требует отдельного ALG алгоритма – FTP, SIP, RTSP, RealAudio,… Internet m/c=10.1.1.1/1234 NAT с SIP ALG m/c=161.44.1.1/5678
  • 10. CGN. Как выглядят трансляции?• Default show ip nat translation Pro Inside global Inside local Outside local Outside global tcp 26.1.1.6:1024 27.1.1.10:29439 26.1.1.2:23 26.1.1.2:23 Total number of translations: 1• CGN show ip nat translation Pro Inside global Inside local Outside local Outside global tcp 26.1.1.6:1024 27.1.1.10:11806 --- --- Total number of translations: 1
  • 11. Netflow v9 логирование NATTemplate 256 (создание соединения) Field ID Attribute Value 234 Incoming VRF ID 32 bit ID 235 Outgoing VRF ID 32 bit ID 8 Source IP Address IPv4 Address 225 Translated Source IP Address IPv4 Address 7 Source Port 16 bit port 227 Translated Source Port 16 bit port 4 Protocol 8bit valueTemplate 257 (удаление) Field ID Attribute Value 234 Incoming VRF ID 32 bit ID 8 Source IP Address IPv4 Address 7 Source Port 16 bit port 4 Protocol 8bit value
  • 12. CGN: Netflow v9 или SyslogNetflow v9 Syslog• Binary формат • ASCII формат• Основан на шаблонах • RFC5424 соответствие (template) • Транспорт на основе UDP• Транспорт на основе UDP • 113B для каждого NAT44• Контроль через Sequence # события в заголовке • Для масштабирования• 21B для каждого NAT44 требуется bulk-port- события (Add/delete) allocation
  • 13. Размышления о NAT Где в сети размещать NAT устройство?Вариант 1: NAT на шлюзе (Распределенная модель) Преимущества: • Subscriber aware NAT - per subscriber управление NAT44 - per subscriber accounting private IPv4 NAT public IPv4 • Масштабируемость (за счет распреленной модели) IPv4 IPv4 Public • Высокая доступность SGW PGW (включая географическое eNB резервирование)Варинт 2: NAT на границе AS (Централизованная) Преимущества: • Единый NAT для различных NAT44 административных доменов (разделение ответственности) private IPv4 private IPv4 NAT public IPv4 • Масштабируемость IPv4 IPv4 IPv4 Public SGW PGW CGN/ eNB CGv6
  • 14. Где в сети размещать NAT устройство?Сравнительная таблицаХарактеристика NAT на шлюзе NAT на границе ASМасштабируемость > 120M трансляций ~240M трансляций (CRS-16) > 1M/sec setup-rate > 1M/sec setup-rateТочность управления NAT Per-Subscriber; Per System Per SystemПротоколирование NAT Per-Subscriber; Блоками (Bulk) Блоками (Bulk)Отказоустойчивость 1:1 Intrabox HA 1:1 Intra-box hot standby 1:1 Interbox HA (Будущее: 1:1 Interbox HA)Сходимость Зависит от шлюза и модели NAT может использоваться(FMC) сервисов для различных сегментовУправление Распределенное Централизованноераспределением IPv4Исчерпание Private IPv4 Сегментирование сети: Сегментирование сети:адресов Per-Gateway назначение - Per VPN назначение пулов локальных пулов Будущее: GI-DS-lite
  • 15. Размышления о NATБудущее... Port Control Protocol Option 1: Handset/Host with PCP Client PCP NAT-PMPOption 2: Option 2: PCP ServerPCP client UPnP IGDon CPE PCP Client, UPnP IGD proxy; NAT-PMP proxy • Обеспечивает port forwarding при использовании LSN – Аналогично функции CPE устройств • Резервирует порты по запросу приложения/хоста – возможность отказаться от ALG • draft-ietf-pcp-base
  • 16. Продолжая использовать IPv4Варианты помимо NAT• IP-on-demand оптимизация – Предполагает автоматическое освобождение пула IPv4 адресов по истечении некоторого периода неиспользования • Возможно в существующей 3GPP Архитектуре• Торговля – Необходимо установить правила и механизмы торговли – Требует улучшения Anti IP spoofing/hijacking технологий и технологий междоменного роутинга
  • 17. Торговля адресами IPv4Уже происходит… • Март 23, 2011: $11.25 за каждый IPv4 • http://blog.internetgov ernance.org/blog/_arch ives/2011/3/23/477850 9.html
  • 18. А если завтра IPv6?
  • 19. IPv4/IPv6 Address Family TranslationСценарии Stateful Stateless IPv6 IPv4 Network Internet IPv4 IPv6 Internet Network IPv6 IPv4 Internet Network IPv6 Неприменимо. IPv4 Network Internet Слишком мало IPv4 IPv6 IPv4 Network Network IPv4 IPv6 Network Network
  • 20. Address Family Translation (AFT)• Stateful AFT64 • Stateless AFT64 –Для каждого потока/ flow –Поток/ flow не создает создается отдельное никаких состояний; состояние; –Алгоритмическая операция, –Поддерживаются только проводимая над заголовком IPv6 инициируемые пакетов; соединения; –1:1 соответствие (один IPv4 –Количество состояний - адрес используется для O(# трансляций); каждого IPv6 хоста) ; –N:1 соответствие (как и в –Поддерживаются как IPv6, случае NAPT для NAT44) так и IPv4 инициируемые (1:1 соответствие также соединения безусловно возможно) draft-ietf-behave-v6v4-xlate-stateful draft-ietf-behave-v6v4-xlate
  • 21. Private IPv4 адрес6rd (IPv6 Rapid Deployment) Public IPv4 адресИспользуем IPv6 пространство IPv6 адрес NAT44 (CGN/LSN) IPv4 Internet NAT44Private IPv4 IPv4 CPEIPv6 6rd CE Encap/ IPv6 Decap 6rd BR Обеспечивает работу IPv6 клиента через IPv4 сеть оператора Автоматический “Stateless” механизм туннелирования IPv6 трафика Не требуется развертывание DHCPv6, Neighbor Discovery, и т.п. в сети доступа 6rd Border Relay (6rd BR) обеспечивает доступ к IPv6 интернет IPv6-in-IPv4 инкапсуляция/декапсуляция происходит на 6rd CE 21
  • 22. DS-Lite • Обеспечивает туннелирование IPv4 трафика клиента через Ipv6-only сеть оператора - draf-ieft-softwire-dual-stack-lite • Поддержка Bulk Port Range и протоколирование syslog в добавление к NetFlow (CGSE) • Производительность/масштабируемость – 64 DS-Lite instances, 20Gbps, 20М сессий 22
  • 23. Сводная таблица стратегий «выживания» CGN DS-Lite 6RD NAT64 SL NAT64 SF NAT44 CPE Без Требуется Требуется IPv4/IPv6 Only IPv6 изменений замена замена hosts hosts IPv4 сохранение ○ ○ Наличие LSN - - необязательно Переход IPv6 IPv6 можно ○ Still requires ○ ○ внедрять IPv4 address. постепенно Требования к IPv4/v6 IPv6 IPv4 IPv6 IPv6 доступу Stateful /Stateless Stateful Stateful Stateless Stateful Stateful См. draft-wing-nat-pt-replacement-comparison 23
  • 24. CGN на CRS (CGSE)
  • 25. Carrier Grade Services Engine (CGSE) - введениеПлатформа операторского класса: CGv6, CCN, NPS, DDoS, etc • CGv6: Трансляция (NAT44, NAT64), Туннелирование (6rd, DS-Lite, 4rd) • 20+ миллионов активных трансляций • Сотни тысяч абонентов Cisco CGSE • 1+ миллион соединений в секунду • 20Gb/s производительность одного модуля • Создан в соответствии с высокими стандартами Cisco CRS-1/CRS-3 Cisco CRS 25
  • 26. CGN на CGSE:Сохраняем IPv4 с NAT44 Трансляция адресов Private IPv4  TCP/UDP/ICMP настраиваемые Public IPv4 таймеры Соответствие CGN RFC  1 + 1 Warm Standby  RFC4787, RFC5382, RFC5508  Active FTP ALG CGv6 Bypass  Lawful Intercept Netflow9 протоколирование Управление трафиком на основе VRF Static Port Forwarding 2
  • 27. CGSE функции / размещение в сети • Пример типового использования CGSE в сценарии сохранения IPv4 в сети мобильного оператора 2
  • 28. Резервирование и отказоустойчивость (HA)Выводы для CGSE • Резервирование Intra-chassis – 1:1 warm standby – Модель Active/Active с несколькими CGSE • Резервирование Inter-chassis – HSRP, IGPs, BGP, IPSLA, etc • Управление отказами и отказоустойчивость (HA) – Несколько встроенных точек мониторинга: – - MSC CPU -> Octeon CPU – - Data Path (Octeon CPU -> Fabric -> Octeon CPU) – Для стандартных keep-alive таймеров отказы обнаруживаются в интервале 500 мс 2
  • 29. Резервирование active-active - Inter-chassis
  • 30. Настоящее и будущее CGSE Сохранение IPv4 Сохранение IPv4 IPv4/IPv6 Сосуществование 3.9.1 & 4.0.X 4.1.X 4.2.x NAT44 (TCP/UDP/ICMP) NAT44( Dest Based End-point Independent Timers) DS Lite (4.2.1) Mapping NAT44 (Dynamic CGN Bypass Port Configuration) CLI – Statistics Syslog for NAT44 (ALG RTSP) NAT44 CLI – TCP/UDP timers CLI – Static Port Forwarding FP 40 Support CCN –SR(Phase (4.1.1) 1) 5 > Roddicks per System 1+1 Warm Standby 6RD BR(3.9.3) External Logging NPS NAT64 (NetflowV9) Stateless(3.9.3) 20M Translations NAT64 Stateful 10G PPS (IMIX) (4.1.2) 1M Translation/sec.
  • 31. CGSE ссылки• Домашняя страница CGSE – http://www.cisco.com/en/US/prod/collateral/iosswrel/ ps6537/ps6553/brochure_c02- 560497_ns1017_Networking_Solutions_Brochure.html• Домашняя страница Cisco CGv6 – http://www.cisco.com/go/CGv6• Домашняя страница Cisco Ipv6 – http://www.cisco.com/go/ipv6• Домашняя страница Cisco CRS http://www.cisco.com/go/crs 31
  • 32. CGN на ASR9000.Integrated Services Module
  • 33. CGv6 NAT44 – Характеристики ISMХарактеристики для одного модуляКоличество CGN instance 1Количество интерфейсов service infra 1Количество интерфейсов service app 244 (на систему)Поддерживаемый размер IP пулов /16 to /30Максимально Static Port forwarding 6KМаксимальное кол-во абонентов NAT 256 KКоличество NAT44 трансляций 20М трансляцийПропускная способность (In2Out + Out2in) 10 Gbps (I-MIX и 4 ServiceApp)Пропускная способность (In2out / Out2In) 2.5Gbps (per ServiceApp)Скорость создания трансляций NAT44 1 M/ секунду
  • 34. ASR9000: CGN = public IPv4Двойной NAT44 = private IPv4 CPE с приватными адресами IPv4 address on WAN CGN NAT44Private Public IPv4 IPv4privateIPv4 Internet NAT44 ASR9k Edge • Соответствует CGN RFC (RFC4787, RFC5382, RFC5508) • Протоколирование Netflow v9
  • 35. ASR 1000 в ролиCarrier Grade NAT (CGN)
  • 36. ASR 1000 CGN. Реализация  По умолчанию система функционирует как классический NAT  Создается 5-tuple трансляция  Для активации CGN требуется настройка в CLI  В CGN режиме увеличена масштабируемость, так как нет необходимости отслеживать Destination IP:port  CGN NAT может использоваться для Per-session NAT или в stand alone режиме  Вообще говоря, наличие PPPoX/LNS терминации не требуется  Другие таймеры по-умолчанию  Улучшенная масштабируемость  Поддержка высокой доступности (Intra & Inter-box)
  • 37. Резервирование ASR 1000 поддерживает NAT Intra-box отказоустойчивость:  Вся обработка пакетов осуществляется на ESP, включая полный анализ от L4 до L7 (ALG).  NAT клиент и RP не участвуют в функционировании CGN  Между активным и резервным ESP происходит синхронизация состояний в SSO режиме ASR 1000 поддерживает Stateful NAT Inter-Chassis Redundancy
  • 38. Новые команды CLI для CGN ASR1000 <no> ip nat settings mode {cgn | default}  Для включения/выключения CGN режима – "Default" для классического NAT <no> ip nat settings support mapping outside  Отключение outside mappings  Обязательно при активации CGN режима  Автоматически удаляет outside настройки NAT  Не восстанавливает outside настройки при активации «default» режима NAT
  • 39. Интеграция CGN и BNGна ASR 1000
  • 40. Per-PPP Session NATОсновные элементы 200.1.1.1 port <x> 10.0.0.1 200.1.1.1 port <y> Internet/Core 10.0.0.2 PTA or LNS 200.1.1.1 port <z> 10.0.0.3 • Поддерживает CGN для PTA/LNS сессий • NAT inside активируется на virtual template interface • NAT outside активируется на внешних (интернет-) интерфейсах • Virtual-Access интерфейсы автоматически наследуют конфигурацию NAT
  • 41. Взаимодействие с ISG• CGN и L4-Redirect Необходимо следить через какой интерфейс происходит redirect, особенно, если на этом интерфейсе активировать nat outside• CGN и PBHK В случае активации PBHK трансляция не будет осуществляться и трафик будет отправляться с корректным Source IP
  • 42. Протоколирование и аккаунтинг Аккаунтинг PPP сессий и трафик-классов не зависит от протоколирования CGN (High Speed Logging) HSL не содержит типичную для аккаунтинга информацию, как например, session-id или username
  • 43. Отказоустойчивость• Поддерживается высокая доступность в режиме intra-box для отдельных PPP сессий – в случае переключения RP/ESP, сессия не будет прервана, состояние сессий синхронизировано между активными-резервными RP/ESP, а таблица трансляций NAT синхронизирована между ESP• Наличие режима высокой доступности не влияет на существующий HA функционал на ASR 1000
  • 44. Ключевые выводы и вопросы• Основная задача оператора – выбор стратегии «выживания»• Какой NAT вам нужен?• Когда и как внедрять IPv6?• Cisco поддерживает любой выбранный Вами сценарий! 44
  • 45. Вопросы?
  • 46. Также рекомендуем посетить• Инновационные решения Cisco для операторов мобильной связи. Современное пакетное ядро и монетизация трафика.• Обзор решений Cisco Prime для управления сетью оператора связи.• Открытая дискуссия по технологиям для операторов связи – 21 ноября, среда, 18 часов, Конгресс-зал Правый – Готовьте свои вопросы !• Демо-стенд «Решения для операторов связи» (демо-зона, комната 5) – ASR 9000 с интерфейсами 100GigabitEthernet – технология сетевой виртуализации ASR 9000 nV – Carrier Grade v6 на базе маршрутизатора Cisco ASR 9000 с модулем ISM – И многое другое !
  • 47. Спасибо!Заполняйте анкеты он-лайн и получайте подарки вCisco Shop: http://ciscoexpo.ru/expo2012/questВаше мнение очень важно для нас!
  • 48. Endpoint-Independent Mapping• Requirement: The NAT reuses the port mapping for subsequent packets sent from the same internal IP address and port (X:x) to any external IP address and port. *• Use Case: This is for Session Traversal Utilities for NAT (STUN) and is used by P2P apps to advertise themselves such that others can contact from outside-in 2) STUN Serv returns 2) STUN Serv returns User-B’s translated (src- User-A’s translated (src- ip, src-port) to User-A ip, src-port) to User-B STUN Server 3) User-A and User-B can communicate NAT NAT with each other directly. QFP QFP 1) User-A connects 1) User-B connects to STUN Server to STUN Server * source: RFC4787, RFC5382, RFC5508
  • 49. Endpoint-Independent Filtering• Requirement: The NAT filters out only packets not destined to the internal address and port X:x, regardless of the external IP address and port source (Z:z). The NAT forwards any packets destined to X:x. In other words, sending packets from the internal side of the NAT to any external IP address is sufficient to allow any packets back to the internal endpoint.*• Use Case: This is aimed at maximizing application transparency; in particular, for applications that receive media simultaneously from multiple locations (e.g., gaming), or applications that use rendezvous techniques 1) Internal host X has 192.168.0.1. Host X sends UDP (TCP) packets to external host Y1 using the 192.168.0.1:1000. 2) The session coming from 192.168.0.1:1000 to NAT Y1 is mapped to 20.0.0.1:1000. 192.168.0.1:1000 20.0.0.1:1000 30.0.0.1:2000 3) NAPT device creates NAT entry QFP (Any:Any) which has outside local and outside global as ANY. If TCP mapping is created 4) With the mapping, ANY external host, such as Y2, can send UDP (TCP) packets to Pro Inside global Inside local Outside local Outside global internal host X. tcp 20.0.0.1:1000 192.168.0.1:1000 3.3.3.3:23 3.3.3.3:23 tcp 20.0.0.1:1000 192.168.0.1:1000 --- --- If UDP mapping is created Pro Inside global Inside local Outside local Outside global udp 20.0.0.1:1000 192.168.0.1:1000 3.3.3.3:23 3.3.3.3:23 udp 20.0.0.1:1000 192.168.0.1:1000 --- --- * source: RFC4787, RFC5382, RFC5508
  • 50. Paired IP Address Pooling Behavior• Requirement: NATs use the same external IP address mapping for all sessions associated with the same internal IP address. These NATs have an "IP address pooling" behavior of "Paired.*• Use Case: This is for apps that use multiple ports originating from same internal IP to also have same external IP. This is important for P2P apps that are not able to negotiate the IP address for RTP and RTCP separately. * source: RFC4787
  • 51. No Port Overloading• Requirement: A NAT MUST NOT have a "Port assignment" behavior of "Port overloading". Some NATs use "Port overloading", i.e., they always use port preservation even in the case of collision (i.e., X1=X2 and x1=x2=x1=x2). Most applications will fail if the NAT uses "Port overloading".• Use Case: This requirement must be met in order to enable two applications on the internal side of the NAT both to use the same port to try to communicate with the same destination * source: RFC4787, RFC5382
  • 52. Port Parity Preservation for UDP• Requirement: It is RECOMMENDED that a NAT have a "Port parity preservation" behavior of "Yes". Such as preserve the parity of the UDP port, i.e., an even port will be mapped to an even port, and an odd port will be mapped to an odd port.• Use Case: This behavior respects the [RFC3550] rule that RTP use even ports, and RTCP use odd ports. * source: RFC4787
  • 53. Hairpinning Behavior • Requirement: A NAT MUST support "Hairpinning“.* • Use Case: Allow communications between two endpoints behind the same NAT when they are trying each others external IP addresses • Not supported on ASR 1000 , but can be workaround via VASI on ASR 1000 (next slide) 10.2.1.1:2000 Hairpinning behavior ● NAT QFP 10.1.1.1:1000 * source: RFC4787, RFC5382, RFC5508
  • 54. CGv6 Solution Space: How are we doing? IPv4 over IPv6 over IPv4 IPv4 & IPv6 IPv6 IPv4Exhaustion Coexistence Network Network CG NAT44 Dual Stack DS-Lite 6rd BR* DS-Lite NAT64* MAP/dIVI*
  • 55. STUN, ICE, TURNSession Traversal Utilities for NAT • Request/response protocol, used by: STUN itself (to learn IP address) ICE (for connectivity checks) TURN (to configure TURN server) • The response contains IP address and port of request Runs over UDP (typical) or TCP, port 3478 • Think http://whatismyip.com RFC5389
  • 56. STUN, ICE, TURNInteractive Connectivity Establishment • Procedure for Optimizing Media Flows • Defines SDP syntax to indicate ‘candidate addresses’ • Uses STUN messages for connectivity checks Sent to RTP peer, using same ports as RTP • First best path wins • Basic steps: 1. Gather all my IP addresses 2. Send them to my peer 3. Do connectivity checks draft-ietf-mmusic-ice
  • 57. STUN, ICE, TURNTraversal Using Relay NAT • Media Relay Protocol and Media Relay Server • Only used when: Both endpoints are behind ‘Address and Port-Dependent Filtering’ NATs (rare, about 25% of NATs), or One endpoint doesn’t implement ICE, and is behind a ‘Address and Port-Dependent Filtering’ NAT draft-ietf-behave-turn
  • 58. Number of Sessionsfor Some Applications Some examples of major Web site Application # of TCP sessions No operation 5~10 Yahoo top page 10~20 Google image search 30~60 ニコニコ動画 50~80 OCN photo friend 170~200+ iTunes 230~270 iGoogle 80~100 楽天(Rakuten) 50~60 Amazon 90 HMV 100 YouTube 90 •Courtesy of NTT, See Also: Hiroshi Esaki: www2.jp.apan.net/meetings/kaohsiung2009/presentations/ipv6/esaki.ppt
  • 59. No. of Ports and Sessions consumedby popular applications Source: Application behaviours in in terms of port/session consumptions on NAT http://opensourceaplusp.weebly.com/experiments-results.html
  • 60. Port Consumption ComparisonBetween Mobile and PC for Chrome Source: Application behaviours in in terms of port/session consumptions on NAT http://opensourceaplusp.weebly.com/experiments-results.html
  • 61. Characteristics of CPE/Home-RoutersMax. Bindings Source: “An Experimental Study of Home Gateway Characteristics” https://fit.nokia.com/lars/papers/2010-imc-hgw-study.pdf http://www.ietf.org/proceedings/78/slides/behave-8.pdf
  • 62. IsarFlow Example
  • 63. ServiceApp1Traffic: Inside > Outside ipv4 addr 1.1.1.1/24 Slot 0 Slot 1 TG0/0/0/0.1 10.10.10.1/24 GigE ISM 10.10.10.2 App_N: SRC IP/Port: 10.10.10.2 : 5000 PVT -> (after NAT) 100.2.0.192 : 23156 NW s: 10.10.10.2 : 5000 d: 5.5.5.2 : 5000 Default static route (VRF: ivrf1) to send traffic to ServiceApp1 s: 10.10.10.2 : 5000 d: 5.5.5.2 : 5000 Via FIB look-up (VRF: [ovrf1]), sends traffic to egress port on Slot 1 GE LC s: 100.2.0.192 : 23156 s: 100.2.0.192 : 23156 PUB d: 5.5.5.2 : 5000 d: 5.5.5.2 : 5000 NW5.5.5.2 TG0/0/0/1.1 ServiceApp2 5.5.5.1/24 ipv4 addr 2.2.2.2/24 Viking with 2 or 3 LCs (ingess and egress GE LCs could be different)
  • 64. ServiceApp1Traffic: Outside > Inside ipv4 addr 1.1.1.1/24 Slot 0 Slot 1 TG0/0/0/0.1 10.10.10.1/24 GigE ISM 10.10.10.2 -> (Reverse NAT) eth1:10.10.10.2 :5000 APP_N: DST IP: 100.2.0.192 : 23516 PVT NW s: 5.5.5.2:5000 Via FIB lookup (VRF: ivrf1), d: 10.10.10.2 : 5000 sends traffic to Slot 1 GE port s: 5.5.5.2:5000 d: 10.10.10.2:5000 Static route (VRF: [ovrf1]) sends traffic to ServiceApp2 s: 5.5.5.2:5000 s: 5.5.5.2 : 5000 d: 100.2.0.192 : 23156 d: 100.2.0.192 : 23516 PUB NW 5.5.5.2 TG0/0/0/1.1 ServiceApp2 5.5.5.1/24 ipv4 addr 2.2.2.2/24 Viking with 2 or 3 LCs (ingess and egress GE LCs could be different)
  • 65. CGN: Problem Statement for Logging• Any Stateful NAT technology (NAT44, NAT64, DS-Lite AFTR,…) requires logging • The entries in the NAT table are of temporary nature • Logging preserves the information when which internal subscriber was mapped to an external resource• The # of events to log and the event rate in a SP network is relatively high • In average in a SP network each subscriber generates 0.5 – 1 session per sec, which need to be logged• System needs to cope with peak load (Network events or Failover), i.e. • 1 Million connections / sec • 1 Million NAT records per sec • 176 Mbps towards collector (using Netflow v9) • 15kpps towards collector (using Netflow v9)
  • 66. CGN: What about syslog?• Syslog logs translation using ASCII• Message needs to comply to RFC5424 format• Example: • 1 2011 May 31 10:30:45 192.168.2.3 - - NAT44 – [UserbasedA - 10.1.32.45 INVRFA – 100.1.1.28 – 12544 12671]• Compare 113 (251) byte for syslog and 21 byte for Netflow v9.• Logging of individual NAT sessions create huge amounts of data• Bulk port allocation (4.2.1) may be used to alleviate this • When subscriber create first session, N contiguous outside ports are pre-allocated (security risk?) • New pool created only if subscriber exceeds N sessions. • We only need to log per N ports allocated instead of per port.
  • 67. CGSE обзор• CGv6 function resides on CGSE PLIM• Paired with CRS-MSC-40G-B, CRS-MSC-20G-B, CRS-MSC and FP-40 ( R4.1.1 Onwards),• Does not Support Pairing with MSC-140, or FP-140• No external interfaces• Four 16-core Octeon MIPs CPUs, 64 CPU cores• Standard interface to MSC, 20 Gbps of throughput (per CGSE)• IOS XR on MSC, Linux on Octeon CPUs 6
  • 68. Вариант 1 – Базовый IPv4 Internet IPv6 Internet CGSE IPv4 Server IPv6 Server CRS-1/CRS-3 IPv4 Client IPv6 Client• An IPv6 network to IPv4 Internet & vice-versa• IPv6 network to IPv4 network & vice-versa 68
  • 69. Вариант 2 – CGSE neighboring (IGP/BGP) IPv4 Network IPv6 Network OSPFv2 /IS- OSPFv3/IS- CGSE IS/BGP IS/BGP R1 CRS-1/CRS- R2 IPv4 IPv6 Client/Server 3 Client/Server• An IPv6 network to IPv4 Internet & vice-versa• OSPFv2/IS-IS between CGSE & R1• OSPFv3/IS-IS between CGSE & R2 69
  • 70. Вариант 3 – Резервирование CGSEs( Одно шасси) IPv4 Network IPv6 Network Active CGSE ebgp CGSE R1 R2 IPv6 IPv4 Client/Server Client/Server Standby • An IPv6 network to IPv4 Internet & vice-versa • Subscriber traffic follows best IP path. • Static routes to IPv4 /IPv6 destination with metric assigned for Serviceapp interfaces • Same NSP Prefix for both CGSEs 70
  • 71. Вариант 4 – Резервирование CGSEs( несколько шасси) IPv4 Network IPv6 Network CGSE Active ebgp R1 R2 CGSE IPv4 IPv6 Client/Server Client/Server Standby• An IPv6 network to IPv4 Internet & vice-versa• Subscriber traffic follows best IP path.• Same NSP prefix needs to be configured, since it is stateless synchronization is not required. 71
  • 72. Вариант 5 – Резервирование CGSEs( несколько шасси) IPv4 Network IPv6 Network CGSE CGSE Active/Standby ebgp R1 R2 CGSE CGSE IPv4 IPv6Client/Server Client/Server Active/Standby• An IPv6 network to IPv4 Internet & vice-versa• Subscriber traffic follows best IP path.• Same NSP prefix needs to be configured, since it is stateless synchronization is not required. 72
  • 73. ПодключениеIPv6 сети к IPv4 Internet IPv6 Internet DNS64 IPv6/IPv4 Translator IPv4 Internet (“NAT64”)IPv6-only клиенты IPv6 сеть Internet
  • 74. DNS64• Синтезирует записи AAAA в случае, когда ответ не получен или пуст• Используется IPv6 префикс NAT64 устройства DNS64 InternetIPv6-only host AAAA? AAAA? Empty answer (sent simultaneously) A? 192.0.2.1 2001:0DB8:ABCD::192.0.2.1
  • 75. DNS64• Подходит для приложений использующих DNS http://www.example.com Более 80%!• Не применимо для приложения использующих IP адреса http://1.2.3.4 SIP, RTSP, H.323, etc. – IP address literals• Варианты решения: Application-level proxy for IP address literals (HTTP proxy) IPv6 application learns NAT64’s prefix
  • 76. Доступ IPv6 клиентов в IPv4 ЦОД IPv6 Stateful NAT64 Public IPv4 Private IPv4IPv6 клиенты IPv4 ЦОД
  • 77. Вопросы к NAT64 в сценарии IPv4 ЦОД• IPv4 сервера ЦОД становятся доступны для IPv6 Internet• Требует stateful translation Так как IPv6 Internet «больше» чем IPv4 (невозможно транслировать все возможные IPv6 в IPv4)• Все соединения формируются от имени IPv4 адреса NAT64 Излишнее логирование Lack of X-Forwarded-For: header• Возможно прокси для приложений более эффективен? например, lighthttpd But has poor TLS interaction
  • 78. Протоколирование NATHigh Speed Logging (HSL) • ASR 1000 support high speed logging of all NAT translations or only translations for specific VPNs • Logging can be export to external device in Netflow v9 format • Support logging at rate of 40K sessions creations/deletions per second. • See ASR 1000 NAT monitoring and maintaining for HSL template • IsarFlow is the official certified HSL collector for ASR 1000 • IsarFlow Whitepaper on CEC
  • 79. Stateful Application Inter-chassis Redundancy• 2 ASR 1000 chassis with single RP / single ESP –Co-existence of inter-chassis and intra-chassis redundancy currently NOT supported –Clusters with more than 2 members currently NOT Control supported• Physical connectivity to both member systems from adjacent User data routers / switches –Need a mechanism to direct traffic to either member RGact App. State RGsby system in case of failover• L1/L2 Connectivity between the two member systems for RG control traffic WAN-LAN –Used by the 2 RG instances to exchange control traffic (RG hellos, RG state, fail-over signaling etc.) –Need guaranteed communication between the two member systems to avoid split-brain condition• L1/L2 Connectivity between the two member systems for Application state data Control –Synchronization of NAT/Firewall/SBC state tables –NOTE: FIBs are NOT synchronized by RG Infra• Possible a user data cross-connect for asymmetric routing RGact App. State RGsby cases LAN-LAN
  • 80. The Toolbox for IPv4 Exhaustion and IPv6 Introduction Translation and Tunneling Large Scale IPv4 NAT IPv6/IPv4 Translation, BEHAVE working groupPrivate Internet IPv4 IP IPv6 IPv6 over IPv4, and IPv4 over IPv6, Softwire Working Group IPv6 IPv4 IPv6
  • 81. Flow and Translation In overload configuration, there is 1 translation/flow. In non-overload (Static & dynamic), there is 1 translation entry for the actual host and 1 entry for each unique flow. In traditional NAT, a basic flow is defined by the following 6 tuples: {SrcAddr, SrcPort, DstAddr, DstPort, Proto, VRFID} In CGN NAT, a basic flow is defined by the following 4 tuples: {SrcAddr, SrcPort, Proto, VRFID} Per-PPP Session NAT is only supported in CGN mode If any one of the tuple is changed, it is considered a new flow and a new NAT entry is created. Default TCP translation entry timeout is: 15 min. Default UDP translation entry timeout is: 5 min.
  • 82. Dual-stack For dual-stack PPP session, if NAT is applied, only v4 traffic is subject to NAT rule, v6 traffic is transparent from NAT point of view. NAT64 is not supported for per-PPP session.
  • 83. Сравнение NAT44 (CGSE) и NAT44 (ISM)Параметр CGSE ISMNAT44 CLIs Совпадает СовпадаетИспользование SVI Да ДаСетевой процессор Да (Metro) НетРаспределение нагрузки Один уровень (NAT44 Два уровня – load-balancing на a) На ingress LC используя VQI, eMetro) b) NAT44 балансировка через DispatcherEgress FIB Lookup На iMetro Приложение CGv6 AppКоличество CGv6 64 (4 octeon) 8 (2 Westmere)контекстовПропускная способность 20 Gbps (I2O + O2I) 10 Gbps (I2O + O2I)Max. Количество 20M 20MтрансляцийСкорость установки 1M/сек 1M/секновых трансляций
  • 84. AFT64 Stateful Translators Stateful AFT64 IPv6 addresses representing IPv4 hosts • AFT keeps binding state between inner IPv6 address “IPv4 Mapped” IPv6 Addresses and outer IPv4+port Format Any IPv6 address PREFIX (/96):IPv4 Portion:(optional Suffix) • Application dependent, ALGs might be required* NAT64 LSN IPv4 address AFT64 IPv6 announced IPv4 NAT PREFIX:: Public IPv6 announced in AFT64 LSN64 UE IPv6 IGP N:1 Multiple IPv6 addresses Responsible for Synthesising map to single IPv4 IPv4-Mapped IPv6 addresses “A” Records with IPv4 address “AAAA” Records with synthesised Address: PREFIX:IPv4 Portion DNS64• *Note: ALGs for NAT64 and NAT44 are not necessarily the same (think FTP)
  • 85. AFT64 Stateless Translators IPv6 addresses representing IPv4 hosts Stateless AFT64 IPv6 addresses assigned to IPv6 hosts • AFT keeps no binding state “IPv4 Translatable” IPv6 addresses • IPv6 <-> IPv4 mapping “IPv4 Mapped” IPv6 Addresses computed algorithmically Format Format PREFIX:IPv4 Portion:(SUFFIX) • Application dependent, PREFIX:IPv4 Portion:(SUFFIX) ALGs might be required* ISP’s IPv4 LIR AFT64 address NAT64 IPv6 announced NAT IPv4 0::0 Stateless Public IPv6 announced in AFT64 LSN64 UE IPv6 IGP 1:1 Single IPv6 addresses map Responsible for Synthesising to single IPv4 IPv4-Mapped IPv6 addresses Incoming Responses: “A” Records with IPv4 address “AAAA” Records with synthesised Outgoing Responses: “A” Records with IPv4 Portion Address: PREFIX:IPv4 Portion:(SUFFIX) DNS64• *Note: ALGs for NAT64 and NAT44 Not Necessarily the Same (Think FTP)
  • 86. 6rd vs 6to4 Атрибут 6rd 6to4 IPv6 адрес IPv6 префикс 2002::/16 оператора связи SP-managed service Да Нет Маршрут через сеть Да (BR Необязательно (Anycast оператора управляется Relay) оператором) Поддержка Private Да Нет IPv4 Поддержка Border Under development Supported (IOS) Relay Support (ASR1k, CRS-1) CE Support Under Development Supported (IOS) (ASR1k, IOS and Linksys) Doc draft-ietf-softwire- RFC3056 ipv6-6rd 86
  • 87. ASR 1000 CGN  CGN is just a large scale NAT – deployed typically in SP networks  Functionally is very similar to traditional NAT  Defined in IETF as LSN (large scale NAT)  http://tools.ietf.org/html/draft-ietf-behave-lsn- requirements-05  ASR 1000 begin to support CGN in XE3.6.0, but still not 100% compliant with the above draft  Paired address pooling is not supported  Bulk port logging are not supported
  • 88. NAT44 on ISM
  • 89. Реализация NAT44 на модуле ISM Inside Outside VRF VRFPrivate IPv4 Interface Interface Public IPv4 ISM on VLANSubscribers VLAN AppSVI AppSVI ASR9K VLAN Inside Outside Entry1 10.12.0.29 : 3341 100.2.0.192 : 18808 Entry2 10.12.0.29 : 8562 100.2.0.192 : 40582 Entry3 10.12.1.56 : 9167 100.2.0.65 : 17649 Entry.. … … • VRFs to Separate the Private and Public Routing Table. • Interfaces are associated with a VRF. • Service Application SVI is used to send packets to/from ISM