Реализация технологии “Операторский nat” в продуктах...
TRANSCRIPT
Реализация технологии “Операторский NAT” в продуктах Cisco
Денис КоденцевСистемный инженер[email protected]
Version 1.0
3.02.2011 у IANA закончились Ipv4 адреса
RIR Pool
IANA Pool
Feb 3, 2011
Source: http://www.potaroo.net/tools/ipv4/index.html
*
Уже в 2012 году RIPE перестал выдавать оставшиеся IPv4 адреса
Вероятные шаги оператора связи1. Оценить реальный эффект на сервисы и сеть оператора2. Выбрать путь «выживания» в переходный от IPv4 к IPv6 период 3. Определить когда и как начать внедрять IPv6
1.
IPv4 адреса закончились
2011/2012Что дальше?
IPv4
IPv6
Obtain IPv4 Addresses
6rd 6rd+
CGN
DualStack
2.
3.
DualStack
+CGN
IPv4 Address SharingSolutions (e.g. CGN)
Последовательный и постепенный переход к IPv6
4
Сохранение IPv4
Готовность
Процветание
Везде IPv6Сегодня Private IP 6-over-4 Transitional 4-over-6
= IPv4 = Private IP = IPv6
CGN(NAT44) Dual stack6rd, GRE, IPv6inIPv4, 6PE/6VPE
DS-Lite
XLAT(AFT)
Почему IPv6 не внедряется повсеместно?
Network Address & Port TranslationПостановка задачи
• NATВпервые описан в 1991 (draft-
tsuchiya-addrtrans), RFC16311:1 трансляция: не уменьшает
количество используемых IPPer-flow statelessВ наши дни используется в основном
в корпоративных сетяхConnect overlapping RFC1918 address
space
• NAPTОписан в 2001 (RFC3022)1:N ТрансляцияУменьшает количество использованных
IPv4 адресовПозволяет использовать один IPv4
несколькими абонентамиТолько для TCP, UDP, ICMPИнициатор соединения должен
находится в “Inside”Per-flow statefulЧасто используется в домашних CPE
Когда говорят “NAT”, обычно подразумевают “NAPT”
Термин “NAT44” используют чтобы отличить IPv4-IPv4 NAPT отAddress Family Translation, обычно обозначаемым как NAT64 and NAT46”
Carrier Grade NAT (CGN)• Разработано для операторов
связи• Фокус на масштабируемость,
производительность и пропускную способность (1 Million conns/sec rate, 20 Million concurrent connections)
• «Облегченное» протоколирование Netflow v9
• OTT приложения просто работают (e.g. YouTube, Skype, Bitorrent, etc)
• Низкий CAPEX / OPEX на абонента
• Легко масштабируется
Классический Enterprise NAT• Для корпоративных клиентов• Фокус на ALG• Дорогое протоколирование через
Syslog• Некоторые распространненые
приложения не поддерживаются (например SunRPC, NetBIOS, итд)
• Ограниченная масштабируемость и производительность
• Высокие расходы CAPEX / OPEX в пересчете на абонента
Классический NAT vs CGN
Основные требования 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)
Application Layer Gateway (ALG)
• Осведомленность NAT механизма о транслируемом трафике приложений
• Функции ALG:1. Модификация IP адресов и портов внутри передаваемых
данных приложений2. Создание NAT соответствий
• Каждое приложение требует отдельного ALG алгоритма– FTP, SIP, RTSP, RealAudio,…
m/c=10.1.1.1/1234
Internet
m/c=161.44.1.1/5678
NAT с SIP ALG
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
Netflow v9 логирование NAT
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 value
Template 256 (создание соединения)
Field ID Attribute Value234 Incoming VRF ID 32 bit ID
8 Source IP Address IPv4 Address
7 Source Port 16 bit port
4 Protocol 8bit value
Template 257 (удаление)
CGN: Netflow v9 или Syslog
Netflow v9• Binary формат• Основан на шаблонах
(template)• Транспорт на основе UDP • Контроль через Sequence #
в заголовке• 21B для каждого NAT44
события (Add/delete)
Syslog• ASCII формат• RFC5424 соответствие• Транспорт на основе UDP• 113B для каждого NAT44
события• Для масштабирования
требуется bulk-port-allocation
Размышления о NATГде в сети размещать NAT устройство?
PGWeNB
IPv4
private IPv4
IPv4Public
public IPv4
SGW
NAT44
PGWeNB
IPv4 IPv4
private IPv4 private IPv4
IPv4Public
public IPv4
CGN/CGv6SGW
NAT
NAT44
NAT
Вариант 1: NAT на шлюзе (Распределенная модель)
Варинт 2: NAT на границе AS (Централизованная)
Преимущества:• Subscriber aware NAT
- per subscriber управление- per subscriber accounting
• Масштабируемость (за счет распреленной модели)
• Высокая доступность(включая географическоерезервирование)
Преимущества:• Единый NAT для различныхадминистративных доменов
(разделение ответственности)• Масштабируемость
Где в сети размещать NAT устройство?Сравнительная таблица
Характеристика NAT на шлюзе NAT на границе AS
Масштабируемость > 120M трансляций> 1M/sec setup-rate
~240M трансляций (CRS-16)> 1M/sec setup-rate
Точность управления NAT Per-Subscriber;Per System
Per System
Протоколирование NAT Per-Subscriber;Блоками (Bulk)
Блоками (Bulk)
Отказоустойчивость 1:1 Intrabox HA1:1 Interbox HA
1:1 Intra-box hot standby(Будущее: 1:1 Interbox HA)
Сходимость(FMC)
Зависит от шлюза и модели сервисов
NAT может использоваться для различных сегментов
Управлениераспределением IPv4
Распределенное Централизованное
Исчерпание Private IPv4 адресов
Сегментирование сети:Per-Gateway назначение локальных пулов
Сегментирование сети:- Per VPN назначение пуловБудущее: GI-DS-lite
Размышления о NATБудущее... Port Control Protocol
• Обеспечивает port forwarding при использовании LSN– Аналогично функции CPE устройств
• Резервирует порты по запросу приложения/хоста –возможность отказаться от ALG
• draft-ietf-pcp-base
Option 1: Handset/Host with PCP Client
Option 2: PCP Client,UPnP IGD proxy;NAT-PMP proxy
PCP Server
NAT-PMP
UPnP IGDOption 2:PCP clienton CPE
PCP
Продолжая использовать IPv4Варианты помимо NAT
• IP-on-demand оптимизация– Предполагает автоматическое
освобождение пула IPv4 адресов по истечении некоторого периода неиспользования
• Возможно в существующей3GPP Архитектуре
• Торговля– Необходимо установить правила
и механизмы торговли– Требует улучшения Anti IP
spoofing/hijacking технологий и технологий междоменногороутинга
Торговля адресами IPv4Уже происходит…
• Март 23, 2011:$11.25 за каждый IPv4
• http://blog.internetgovernance.org/blog/_archives/2011/3/23/4778509.html
А если завтра IPv6?
IPv4/IPv6 Address Family TranslationСценарии
IPv4Network
IPv6Network
IPv6Network
IPv4Internet
IPv4Internet
IPv6Network
IPv6Internet
IPv4Network
IPv4Network
IPv6Internet
IPv4Network
IPv6Network
Stateful Stateless
Неприменимо.Слишком мало IPv4
Address Family Translation (AFT)
• Stateful AFT64–Для каждого потока/ flowсоздается отдельное состояние;–Поддерживаются только IPv6 инициируемые соединения;–Количество состояний -O(# трансляций);–N:1 соответствие (как и в случае NAPT для NAT44) (1:1 соответствие также безусловно возможно)
• Stateless AFT64–Поток/ flow не создает никаких состояний;–Алгоритмическая операция, проводимая над заголовком пакетов;–1:1 соответствие (один IPv4 адрес используется для каждого IPv6 хоста) ;–Поддерживаются как IPv6, так и IPv4 инициируемые соединения
draft-ietf-behave-v6v4-xlate-stateful draft-ietf-behave-v6v4-xlate
6rd (IPv6 Rapid Deployment)Используем IPv6 пространство
21
6rd BR
CPE
NAT44IPv4Private IPv4
IPv4 Internet
NAT44(CGN/LSN)
6rd CE Encap/Decap
Обеспечивает работу IPv6 клиента через IPv4 сеть оператора
Автоматический “Stateless” механизм туннелирования IPv6 трафика
Не требуется развертывание DHCPv6, Neighbor Discovery, и т.п. в сети доступа
6rd Border Relay (6rd BR) обеспечивает доступ к IPv6 интернет
IPv6-in-IPv4 инкапсуляция/декапсуляция происходит на 6rd CE
Private IPv4 адресPublic IPv4 адресIPv6 адрес
IPv6IPv6
DS-Lite
22
• Обеспечивает туннелирование IPv4 трафика клиента через Ipv6-only сеть оператора - draf-ieft-softwire-dual-stack-lite
• Поддержка Bulk Port Range и протоколирование syslog в добавление к NetFlow (CGSE)
• Производительность/масштабируемость – 64 DS-Lite instances, 20Gbps, 20М сессий
Сводная таблица стратегий «выживания»
23
CGN NAT44
DS-Lite 6RD NAT64 SL NAT64 SF
CPE Без
изменений
Требуется
замена
Требуется
замена
IPv4/IPv6
hosts
Only IPv6
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
CGN на CRS (CGSE)
Carrier Grade Services Engine (CGSE) -введение
25
Платформа операторского класса: CGv6, CCN, NPS, DDoS, etc
• Создан в соответствии с высокими стандартами Cisco CRS-1/CRS-3
Cisco CRS
Cisco CGSE
• CGv6: Трансляция (NAT44, NAT64), Туннелирование (6rd, DS-Lite, 4rd)
• 20+ миллионов активных трансляций• Сотни тысяч абонентов• 1+ миллион соединений в секунду• 20Gb/s производительность одного
модуля
CGN на CGSE: Сохраняем IPv4 с NAT44 Трансляция адресов Private IPv4 Public IPv4
Соответствие CGN RFC RFC4787, RFC5382, RFC5508
CGv6 Bypass Netflow9 протоколирование Управление трафиком на основе
VRF Static Port Forwarding
26
TCP/UDP/ICMP настраиваемые таймеры
1 + 1 Warm Standby
Active FTP ALG
Lawful Intercept
CGSE функции / размещение в сети
• Пример типового использования CGSE в сценарии сохранения IPv4 в сети мобильного оператора
27
Резервирование и отказоустойчивость (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 мс
28
Резервирование active-active - Inter-chassis
Настоящее и будущее CGSE
NAT44( Dest Based Timers)NAT44 (Dynamic Port Configuration)
NAT44 (ALG RTSP)
FP 40 Support (4.1.1)
6RD BR(3.9.3)
NAT64Stateless(3.9.3)NAT64 Stateful (4.1.2)
DS Lite (4.2.1)
Syslog for NAT44
CCN –SR(Phase 1)
NPS
3.9.1 & 4.0.X
Сохранение IPv4 Сохранение IPv4IPv4/IPv6 Сосуществование
NAT44 (TCP/UDP/ICMP)End-point Independent MappingCGN Bypass
CLI – Statistics
CLI – TCP/UDP timers
CLI – Static Port Forwarding
5 > Roddicks per System
1+1 Warm StandbyExternal Logging (NetflowV9)20M Translations
10G PPS (IMIX)
1M Translation/sec.
4.1.X 4.2.x
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
CGN на ASR9000.Integrated Services Module
CGv6 NAT44 – Характеристики ISM
Характеристики для одного модуля
Количество CGN instance 1
Количество интерфейсов service infra 1
Количество интерфейсов service app 244 (на систему)
Поддерживаемый размер IP пулов /16 to /30
Максимально Static Port forwarding 6 K
Максимальное кол-во абонентов NAT 256 K
Количество NAT44 трансляций 20М трансляций
Пропускная способность (In2Out + Out2in) 10 Gbps (I-MIX и 4 ServiceApp)
Пропускная способность (In2out / Out2In) 2.5Gbps (per ServiceApp)
Скорость создания трансляций NAT44 1 M/ секунду
ASR9000: CGNДвойной NAT44
• Соответствует CGN RFC (RFC4787, RFC5382, RFC5508)• Протоколирование Netflow v9
PrivateIPv4
CGNNAT44
NAT44Edge
ASR9k
Public IPv4Internet
= public IPv4
= private IPv4
IPv4private
CPE с приватными адресамиIPv4 address on WAN
ASR 1000 в ролиCarrier Grade NAT (CGN)
ASR 1000 CGN. Реализация По умолчанию система функционирует как классический NAT
Создается 5-tuple трансляция
Для активации CGN требуется настройка в CLI
В CGN режиме увеличена масштабируемость, так как нет необходимости отслеживать Destination IP:port
CGN NAT может использоваться для Per-session NAT или в stand alone режиме
Вообще говоря, наличие PPPoX/LNS терминации не требуется
Другие таймеры по-умолчанию
Улучшенная масштабируемость
Поддержка высокой доступности (Intra & Inter-box)
Резервирование ASR 1000 поддерживает NAT Intra-box
отказоустойчивость: Вся обработка пакетов осуществляется на ESP,
включая полный анализ от L4 до L7 (ALG). NAT клиент и RP не участвуют в функционировании
CGN Между активным и резервным ESP происходит
синхронизация состояний в SSO режиме ASR 1000 поддерживает Stateful NAT Inter-Chassis
Redundancy
Новые команды 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
Интеграция CGN и BNGна ASR 1000
Per-PPP Session NATОсновные элементы
• Поддерживает CGN для PTA/LNS сессий• NAT inside активируется на virtual template interface• NAT outside активируется на внешних (интернет-) интерфейсах • Virtual-Access интерфейсы автоматически наследуют конфигурацию NAT
Internet/Core
10.0.0.1
10.0.0.2
10.0.0.3
200.1.1.1 port <x>
200.1.1.1 port <y>
200.1.1.1 port <z>
PTA or LNS
Взаимодействие с ISG• CGN и L4-Redirect
Необходимо следить через какой интерфейс происходит redirect,особенно, если на этом интерфейсе активировать nat outside
• CGN и PBHKВ случае активации PBHK трансляция не будет осуществляться итрафик будет отправляться с корректным Source IP
Протоколирование и аккаунтинг Аккаунтинг PPP сессий и трафик-классов не зависит от
протоколирования CGN (High Speed Logging) HSL не содержит типичную для аккаунтинга
информацию, как например, session-id или username
Отказоустойчивость• Поддерживается высокая доступность в режиме intra-box для
отдельных PPP сессий – в случае переключения RP/ESP, сессия не будет прервана, состояние сессий синхронизировано между активными-резервными RP/ESP, а таблица трансляций NAT синхронизирована между ESP
• Наличие режима высокой доступности не влияет на существующий HA функционал на ASR 1000
Ключевые выводы и вопросы
• Основная задача оператора – выбор стратегии «выживания»
• Какой NAT вам нужен?• Когда и как внедрять IPv6?• Cisco поддерживает любой выбранный Вами
сценарий!
44
Вопросы?
• Инновационные решения Cisco для операторов мобильной связи. Современное пакетное ядро и монетизация трафика.
• Обзор решений Cisco Prime для управления сетью оператора связи.
• Открытая дискуссия по технологиям для операторов связи– 21 ноября, среда, 18 часов, Конгресс-зал Правый– Готовьте свои вопросы !
• Демо-стенд «Решения для операторов связи» (демо-зона, комната 5)– ASR 9000 с интерфейсами 100GigabitEthernet– технология сетевой виртуализации ASR 9000 nV– Carrier Grade v6 на базе маршрутизатора Cisco ASR 9000 с модулем ISM– И многое другое !
Также рекомендуем посетить
Спасибо!
Заполняйте анкеты он-лайн и получайте подарки вCisco Shop: http://ciscoexpo.ru/expo2012/questВаше мнение очень важно для нас!
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
* source: RFC4787, RFC5382, RFC5508
QFP
NATNAT
QFP
NATNAT
STUN Server
1) User-A connects to STUN Server
1) User-B connects to STUN Server
2) STUN Serv returns User-A’s translated (src-ip, src-port) to User-B
2) STUN Serv returns User-B’s translated (src-ip, src-port) to User-A
3) User-A and User-B can communicate with each other directly.
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
* source: RFC4787, RFC5382, RFC5508
QFP
NATNAT
192.168.0.1:100020.0.0.1:1000
30.0.0.1:2000(Any:Any)
Pro Inside global Inside local Outside local Outside globaltcp 20.0.0.1:1000 192.168.0.1:1000 3.3.3.3:23 3.3.3.3:23tcp 20.0.0.1:1000 192.168.0.1:1000 --- ---
Pro Inside global Inside local Outside local Outside globaludp 20.0.0.1:1000 192.168.0.1:1000 3.3.3.3:23 3.3.3.3:23udp 20.0.0.1:1000 192.168.0.1:1000 --- ---
If TCP mapping is created
If UDP mapping is created
2) The session coming from 192.168.0.1:1000 to Y1 is mapped to 20.0.0.1:1000.
3) NAPT device creates NAT entry which has outside local and outside global as ANY.
4) With the mapping, ANY external host, such as Y2, can send UDP (TCP) packets to internal host X.
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.
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
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
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
Hairpinning Behavior
• Requirement: A NAT MUST support "Hairpinning“.*• Use Case: Allow communications between two endpoints behind the same NAT when they are trying
each other's external IP addresses• Not supported on ASR 1000 , but can be workaround via VASI on ASR 1000 (next slide)
* source: RFC4787, RFC5382, RFC5508
QFP10.1.1.1:1000
●
Hairpinning behavior 10.2.1.1:2000
NATNAT
CGv6 Solution Space: How are we doing?
IPv4Exhaustion
CG NAT44
DS-Lite
IPv4 & IPv6 Coexistence
Dual Stack
NAT64*
IPv4 over IPv6
Network
DS-Lite
MAP/dIVI*
IPv6 over IPv4
Network
6rd BR*
STUN, ICE, TURN
• 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 requestRuns over UDP (typical) or TCP, port 3478
• Think http://whatismyip.com
RFC5389
Session Traversal Utilities for NAT
STUN, ICE, TURN
• 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 addresses2. Send them to my peer3. Do connectivity checks
draft-ietf-mmusic-ice
Interactive Connectivity Establishment
STUN, ICE, TURN
• 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), orOne endpoint doesn’t implement ICE, and is behind a ‘Address and Port-Dependent Filtering’ NAT
draft-ietf-behave-turn
Traversal Using Relay NAT
Number of Sessionsfor Some Applications
•Courtesy of NTT, See Also:Hiroshi Esaki: www2.jp.apan.net/meetings/kaohsiung2009/presentations/ipv6/esaki.ppt
Some examples of major Web siteApplication # of TCP sessions
No operation 5~10Yahoo top page 10~20Google image search 30~60ニコニコ動画 50~80OCN photo friend 170~200+iTunes 230~270iGoogle 80~100楽天(Rakuten) 50~60Amazon 90HMV 100YouTube 90
Some examples of major Web siteApplication # of TCP sessions
No operation 5~10Yahoo top page 10~20Google image search 30~60ニコニコ動画 50~80OCN photo friend 170~200+iTunes 230~270iGoogle 80~100楽天(Rakuten) 50~60Amazon 90HMV 100YouTube 90
No. of Ports and Sessions consumed by popular applications
Source: Application behaviours in in terms of port/session consumptions on NAThttp://opensourceaplusp.weebly.com/experiments-results.html
Port Consumption Comparison Between Mobile and PC for Chrome
Source: Application behaviours in in terms of port/session consumptions on NAThttp://opensourceaplusp.weebly.com/experiments-results.html
Characteristics of CPE/Home-RoutersMax. Bindings
Source: “An Experimental Study of Home Gateway Characteristics”https://fit.nokia.com/lars/papers/2010-imc-hgw-study.pdfhttp://www.ietf.org/proceedings/78/slides/behave-8.pdf
IsarFlow Example
Traffic: Inside > Outside
Slot 1ISM
Slot 0GigE
PVT NW
10.10.10.210.10.10.2
PUB NW
5.5.5.25.5.5.2
s: 10.10.10.2 : 5000d: 5.5.5.2 : 5000
s: 100.2.0.192 : 23156d: 5.5.5.2 : 5000
App_
N: S
RCIP
/Por
t: 10
.10.
10.2
: 50
00->
(afte
r NAT
)100
.2.0
.192
: 23
156
Viking with 2 or 3 LCs (ingess and egress GE LCs could be different)
Default static route (VRF: ivrf1) to send traffic to ServiceApp1
s: 10.10.10.2 : 5000d: 5.5.5.2 : 5000
s: 100.2.0.192 : 23156d: 5.5.5.2 : 5000
Via FIB look-up (VRF: [ovrf1]), sends traffic to egress port on Slot 1 GE LC
TG0/0/0/0.110.10.10.1/24TG0/0/0/0.110.10.10.1/24
ServiceApp1ipv4 addr 1.1.1.1/24ServiceApp1ipv4 addr 1.1.1.1/24
ServiceApp2ipv4 addr 2.2.2.2/24ServiceApp2ipv4 addr 2.2.2.2/24
TG0/0/0/1.15.5.5.1/24TG0/0/0/1.15.5.5.1/24
Traffic: Outside > Inside
Slot 1ISM
Slot 0GigE
PVT NW
10.10.10.210.10.10.2
PUB NW
5.5.5.25.5.5.2
s: 5.5.5.2:5000d: 10.10.10.2 : 5000
s: 5.5.5.2:5000d: 100.2.0.192 : 23156
APP_
N:
DST
IP: 1
00.2
.0.1
92 :
2351
6->
(Rev
erse
NAT
) eth
1:10
.10.
10.2
:500
0
Viking with 2 or 3 LCs (ingess and egress GE LCs could be different)
Via FIB lookup (VRF: ivrf1), sends traffic to Slot 1 GE port
s: 5.5.5.2:5000d: 10.10.10.2:5000
s: 5.5.5.2 : 5000d: 100.2.0.192 : 23516
Static route (VRF: [ovrf1]) sends traffic to ServiceApp2
TG0/0/0/0.110.10.10.1/24TG0/0/0/0.110.10.10.1/24
ServiceApp1ipv4 addr 1.1.1.1/24ServiceApp1ipv4 addr 1.1.1.1/24
ServiceApp2ipv4 addr 2.2.2.2/24ServiceApp2ipv4 addr 2.2.2.2/24
TG0/0/0/1.15.5.5.1/24TG0/0/0/1.15.5.5.1/24
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)
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.
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
67
Вариант 1 – Базовый
• An IPv6 network to IPv4 Internet & vice-versa• IPv6 network to IPv4 network & vice-versa
68
CGSE
IPv6 InternetIPv4 Internet
IPv4 Server
IPv4 Client
IPv6 Server
IPv6 Client
CRS-1/CRS-3
Вариант 2 – CGSE neighboring (IGP/BGP)
• An IPv6 network to IPv4 Internet & vice-versa• OSPFv2/IS-IS between CGSE & R1• OSPFv3/IS-IS between CGSE & R2
69
CGSE
IPv4 Network IPv6 Network
OSPFv2 /IS-IS/BGP
OSPFv3/IS-IS/BGP
IPv4 Client/Server
IPv6 Client/Server
R1 R2CRS-1/CRS-3
Вариант 3 – Резервирование CGSEs ( Одно шасси)
• 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
CGSE
IPv4 Network IPv6 Network
Standby
ebgp
IPv4Client/Server
IPv6Client/Server
R1 R2CGSE
Active
Вариант 4 – Резервирование CGSEs ( несколько шасси)
• 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
CGSE
IPv4 Network IPv6 Network
Active ebgp
IPv4 Client/Server
IPv6 Client/Server
R1 R2
CGSE
Standby
Вариант 5 – Резервирование CGSEs ( несколько шасси)
• 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
CGSE
IPv4 Network IPv6 Network
Active/Standby ebgp
IPv4 Client/Server
IPv6 Client/Server
R1 R2
CGSE
CGSE
CGSE
Active/Standby
ПодключениеIPv6 сети к IPv4 Internet
IPv6/IPv4 Translator
(“NAT64”)IPv6-only клиенты
DNS64
IPv6 сеть Internet
IPv4Internet
IPv6Internet
DNS64• Синтезирует записи AAAA в случае, когда ответ не получен или пуст• Используется IPv6 префикс NAT64 устройства
Internet
AAAA?
IPv6-only host
AAAA?
Empty answer
A?
192.0.2.12001:0DB8:ABCD::192.0.2.1
(sent simultaneously)
DNS64
DNS64
• Подходит для приложений использующих DNShttp://www.example.comБолее 80%!
• Не применимо для приложения использующих IP адреса
http://1.2.3.4SIP, RTSP, H.323, etc. – IP address literals
• Варианты решения:Application-level proxy for IP address literals (HTTP proxy)IPv6 application learns NAT64’s prefix
Доступ IPv6 клиентов в IPv4 ЦОД
IPv6 клиенты IPv4 ЦОД
Private IPv4
IPv6 Stateful NAT64
Public IPv4
Вопросы к 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
Протоколирование NAT High 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
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 supported
• Physical connectivity to both member systems from adjacent routers / switches
–Need a mechanism to direct traffic to either member system in case of failover
• L1/L2 Connectivity between the two member systems for RG control traffic
–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
–Synchronization of NAT/Firewall/SBC state tables–NOTE: FIBs are NOT synchronized by RG Infra
• Possible a user data cross-connect for asymmetric routing cases
Control
App. State
RGact RGsby
Control
App. State
User data
RGact RGsby
WAN-LAN
LAN-LAN
The Toolbox for IPv4 Exhaustion and IPv6 Introduction
InternetPrivate IP
IPv4IPv6
IPv4
Large Scale IPv4 NAT IPv6/IPv4 Translation, BEHAVE working group
IPv6 over IPv4, and IPv4 over IPv6, Softwire Working Group
IPv6IPv6
Translation and Tunneling
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.
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.
Сравнение NAT44 (CGSE) и NAT44 (ISM)
Параметр CGSE ISMNAT44 CLIs Совпадает Совпадает
Использование SVI Да Да
Сетевой процессор Да (Metro) Нет
Распределение нагрузки Один уровень (NAT44 load-balancing наeMetro)
Два уровня –a) На ingress LC используя VQI, b) NAT44 балансировка через Dispatcher
Egress 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/сек
NAT64
LSN64
NAT
NAT64
LSN64
NATNAT
AFT64 Stateful Translators
• *Note: ALGs for NAT64 and NAT44 are not necessarily the same (think FTP)
IPv4Public
IPv6
IPv6UE
Any IPv6 address
IPv6 addresses representing IPv4 hosts
“IPv4 Mapped” IPv6 AddressesFormatPREFIX (/96):IPv4 Portion:(optional Suffix)
PREFIX:: announced in IPv6 IGP
N:1 Multiple IPv6 addresses map to single IPv4
LSN IPv4 addressannounced
DNS64
Responsible for SynthesisingIPv4-Mapped IPv6 addresses
“A” Records with IPv4 address
“AAAA” Records with synthesised Address: PREFIX:IPv4 Portion
Stateful AFT64• AFT keeps binding state between inner IPv6 address and outer IPv4+port
• Application dependent,ALGs might be required*
AFT64
AFT64
AFT64 Stateless Translators
• *Note: ALGs for NAT64 and NAT44 Not Necessarily the Same (Think FTP)
IPv6
IPv6 addresses assigned to IPv6 hosts“IPv4 Translatable” IPv6 addresses
FormatPREFIX:IPv4 Portion:(SUFFIX)
IPv6 addresses representing IPv4 hosts
“IPv4 Mapped” IPv6 Addresses
FormatPREFIX:IPv4 Portion:(SUFFIX)
0::0 announced in IPv6 IGP
1:1 Single IPv6 addresses map to single IPv4
ISP’s IPv4 LIR addressannounced
DNS64
Responsible for SynthesisingIPv4-Mapped IPv6 addresses
Incoming Responses: “A” Records with IPv4 address“AAAA” Records with synthesisedAddress: PREFIX:IPv4 Portion:(SUFFIX)
NAT64
StatelessLSN64
NATNAT
Outgoing Responses: “A” Records with IPv4 Portion
Stateless AFT64• AFT keeps no binding state• IPv6 <-> IPv4 mapping
computed algorithmically
• Application dependent,ALGs might be required*
AFT64
AFT64
IPv4Public
IPv6UE
6rd vs 6to4Атрибут 6rd 6to4
IPv6 адрес IPv6 префикс оператора связи
2002::/16
SP-managed service Да НетМаршрут через сеть
оператораДа (BR
управляется оператором)
Необязательно (AnycastRelay)
Поддержка Private IPv4
Да Нет
Поддержка Border Relay Support
Under development(ASR1k, CRS-1)
Supported (IOS)
CE Support Under Development(ASR1k, IOS and
Linksys)
Supported (IOS)
Doc draft-ietf-softwire-ipv6-6rd
RFC3056
86
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
NAT44 on ISM
Реализация NAT44 на модуле ISM
Inside OutsideEntry1 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.. … …
OutsideVRF
InterfaceVLAN
Private IPv4Subscribers
Public IPv4
• 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
InsideVRF
AppSVI ISM on ASR9K
AppSVI
InterfaceVLANVLAN