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
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 логирование NAT
Template 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 value
Template 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 или Syslog
Netflow 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-PMP
Option 2:
Option 2: PCP Server
PCP client UPnP IGD
on 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
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
NAT44
Private IPv4 IPv4
CPE
IPv6
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
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
NAT44
Private Public IPv4
IPv4private
IPv4 Internet
NAT44 ASR9k
Edge
• Соответствует CGN RFC (RFC4787, RFC5382, RFC5508)
• Протоколирование Netflow v9
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
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
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 other's 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 IPv4
Exhaustion Coexistence
Network Network
CG NAT44 Dual Stack DS-Lite 6rd BR*
DS-Lite NAT64* MAP/dIVI*
55. STUN, ICE, TURN
Session 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, TURN
Interactive 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, TURN
Traversal 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 Sessions
for 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 consumed
by popular applications
Source:
Application behaviours in in terms of port/session consumptions on NAT
http://opensourceaplusp.weebly.com/experiments-results.html
60. Port Consumption Comparison
Between 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-Routers
Max. 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
63. ServiceApp1
Traffic: 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
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)
64. ServiceApp1
Traffic: 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 IPv6
Client/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 Internet
IPv6-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 IPv4
IPv6 клиенты 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. Протоколирование 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
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 group
Private 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 ISM
NAT44 CLIs Совпадает Совпадает
Использование SVI Да Да
Сетевой процессор Да (Metro) Нет
Распределение нагрузки Один уровень (NAT44 Два уровня –
load-balancing на a) На ingress LC используя VQI,
eMetro) 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/сек
новых трансляций
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
89. Реализация NAT44 на модуле ISM
Inside Outside
VRF VRF
Private IPv4 Interface
Interface
Public IPv4
ISM on VLAN
Subscribers 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