1.97M
Категория: ИнтернетИнтернет

IPv6-трафик в сетях IPv4

1.

IPv6-трафик в сетях IPv4
Д.О. Ковалёв, Г.Р. Хазанкин
Лаборатория аналитики потоковых данных и машинного обучения
ММФ НГУ

2.

Celebrating New Year 2016 with 10% IPv6!
Projection of IPv6 %-age of IPv6-Enabled Web Browsers (courtesy Google) in World Wide
World Wide Projection ~15% (April 11, 2017)

3.

Celebrating New Year 2016 with 10% IPv6!

4.

Internet Peering Ecosystem

5.

Internet Peering Ecosystem

6.

Runet Peering Ecosystem

7.

Каким образом IPv6-трафик присутствует в IPv4-сетях?
IPv4 Header
Version IHL
Type of
Service
Identification
Time to Live
Total Length
Flags
Protocol
IPv6 Header
Fragment
Offset
Header Checksum
Version
Traffic
Class
Flow Label
Payload Length
Source Address
Destination Address
Legend
Options
Padding
Source Address
Field’s Name Kept from IPv4 to IPv6
Fields Not Kept in IPv6
Name and Position Changed in IPv6
New Field in IPv6
Destination Address
Next
Header
Hop Limit

8.

Каким образом IPv6-трафик присутствует в IPv4-сетях?
Dual-stack
IPv6
Internet
IPv6 host
IPv6 host
Идеальный мир
IPv6
Internet
Dual-stack
host
Реальный мир
Dual-stack
host
Еще более реальный мир
IPv4
Internet
IPv4
Internet
IPv6 host
IPv4 host
IPv6 host
IPv4 host

9.

Каким образом IPv6-трафик присутствует в IPv4-сетях?

10.

Многообразие механизмов перехода
Dual-stack
Tunneling
Translation
Dual-stack
Dual-stack lite
6in4
6to4
6a44
GRE tunneling
ISATAP
Teredo
6rd
LISP
IPv6 over MPLS
NAT64
и другие
Некоторые из этих механизмов инкапсулируют IPv6-пакеты внутрь
IPv4-пакетов.
Есть желание посмотреть, что на самом деле передается внутри IPv4пакета (вложенный внутрь IPv6-пакет – тоже часть IPv6-трафика,
который необходимо учитывать при анализе). Каким образом может
быть инкапсулирован IPv6 в IPv4?

11.

Каким образом IPv6-трафик присутствует в IPv4-сетях?
Tunneling
IPv4 tunnel
connecting IPv6 routers
A
B
IPv6
IPv6
flow: X
src: A
dest: F
data
A-to-B:
IPv6
IPv4
IPv4
src:B
dest: E
src:B
dest: E
Flow: X
Src: A
Dest: F
Flow: X
Src: A
Dest: F
data
data
B-to-C:
IPv6 inside
IPv4
E
F
IPv6
IPv6
B-to-C:
IPv6 inside
IPv4
flow: X
src: A
dest: F
data
E-to-F:
IPv6

12.

Обзор Dual-stack lite (DS-lite)
IPv6
IPv4
Dual-stack
host
2001::1/64
192.168.1.1/24
IPv6
network
4in6 encapsulation
Source IPv4: 1.1.1.1
IPv4
IPv4
Source IPv4: 192.168.1.1
IPv4
network
NAT
2222::1/64
1.1.1.1/24
Заполняется таблица трансляции на NAT:
192.168.1.1:XXXX == 1.1.1.1:YYYY (классический NAT44)
IPv4-пакет с IP 192.168.1.1 пришел от 2001::1

13.

Обзор 6to4
Анонсирует маршрут до 2002::/16
1
IPv4
V6 anycast
IPv6
2
IPv6
6to4 relay router
Dual-stack
host
IPv4
network
178.49.90.4/26
2002:b231:5a04::1/64
4
V6 anycast
IPv4
IPv6
IPv6
network
IPv6 host
3
IPv6
2001::1/64
6to4 relay router
192.88.99.1/24
IPv6 HDR
Src: 2002:b231:5a04::1
Dst: 2001::1
Payload
2
IPv6 HDR
Src: 2002:b231:5a04::1
Dst: 2001::1
Payload
3
IPv6 HDR
Src: 2001::1
Dst: 2002:b231:5a04::1
Payload
IPv6 HDR
Src: 2001::1
Dst: 2002:b231:5a04::1
Payload
1
4
IPv4 HDR
192.88.99.1/24
IPv4 HDR
Src: 178.49.90.4
Src: 192.88.99.1
Dst: 192.88.99.1
Dst: 178.49.90.4

14.

Обзор 6in4
Анонсирует маршрут до 2001:470:71:9b8::/64
1
IPv4
2
IPv6
IPv6
Dual-stack
host
4
178.49.90.4/26
2001:470:71:9b8::2/64
IPv4
IPv6
HurricaneElectric
tunnel broker
3
IPv6
IPv6 host
2001::1/64
216.66.80.162
IPv6 HDR
Src: 2001:470:71:9b8::2
Dst: 2001::1
Payload
2
IPv6 HDR
Src: 2001:470:71:9b8::2
Dst: 2001::1
Payload
3
IPv6 HDR
Src: 2001::1
Dst: 2001:470:71:9b8::2
Payload
IPv6 HDR
Src: 2001::1
Dst: 2001:470:71:9b8::2
Payload
1
4
IPv4 HDR
IPv6
network
IPv4
network
IPv4 HDR
Src: 178.49.90.4
Src: 216.66.80.162
Dst: 216.66.80.162
Dst: 178.49.90.4

15.

Способы инкапсуляции IPv6 в IPv4
Protocol 41
UDP
6to4, 6in4, ISATAP
Easily filtered
Teredo, 6a44
Less susceptible to filtering
Protocol: 41
IPv6 source address
IPv6 destination address

IPv4 destination address
TTL

Protocol: 17
UDP Source port
UDP Destination port

Payload
IPv6 data
IPv6 source address
IPv6 destination address

Payload
I6 D IPv6 head UDP head
IPv4 packet

IPv4 header
TTL
IPv6 head
IPv4 packet
IPv4 destination address
IPv4 header
IPv4 source address
IPv4 source address

16.

Каким образом IPv6-трафик присутствует в IPv4-сетях?
Translation
4-6 translation
IPv4
IPv6
IPv6
Internet
IPv6 host
IPv4
Internet
Translator
6-4 translation
IPv6
IPv4
IPv4 host

17.

Обзор NAT64
IPv6
network
DNS
DNS64
IPv6
IPv6 host
NAT64
ISP IPv6 ONLY
2001::1/64
1
2
IPv4
network
1.1.1.1/24
DNS64 ask IPv4 DNS:
example.com A: 2.2.2.2
example.com AAAA: none
example.com
2.2.2.2/24
DNS64 answer IPv6 host:
example.com A: 2.2.2.2
example.com AAAA: 64:ff9b::2:2:2:2
IPv6 host 2001::1 отправляет пакет для example.com:
IPv6 HDR
Src: 2001::1
IPv4 host
Dst: 64:ff9b::2:2:2:2
Payload

18.

Обзор NAT64
IPv6
network
IPv4
IPv6
IPv6 host
NAT64
ISP IPv6 ONLY
4
IPv4
network
1.1.1.1/24
2001::1/64
3
DNS
DNS64
IPv4 host
example.com
2.2.2.2/24
Заполняется таблица трансляции на NAT64:
[2001::1]:8080 == 1.1.1.1:8080
Согласно RFC6145 заголовок IPv6 конвертируется в IPv4.
Пакет IPv6 превращается в IPv4 и высылается через IPv4 интерфейс NAT64:
IPv4 HDR
Src: 1.1.1.1
Dst: 2.2.2.2
Payload

19.

Обзор статьи
Monitoring of Tunneled IPv6 Traffic
Using Packet Decapsulation and IPFIX
By Martin Elich, Matej Gregr and Pavel Celeda

20.

Кратко о IPFIX
Internet Protocol Flow Information Export
Протокол IETF, определяющий стандарт экспорта информации о потоках
данных с различных сетевых устройств.
Основан на протоколе Cisco NetFlow v9.
Информация о потоках данных может использоваться в таких задачах, как:
• Мониторинг трафика, учет использования сетевых ресурсов
• Анализ трафика
• Обнаружение/предотвращение вторжений
Flow 1:
IPv4 host 192.168.1.1 to IPv4 host 8.8.8.8
TCP src port: 1234, TCP dest port 3333
Host A
Flow 2:
IPv4 host 192.168.1.1 to IPv4 host 8.8.8.8
Protocol number = 41 (IPv6 inside)
Host B

21.

Кратко о IPFIX
Host A
Traffic copy
IP traffic
Observation point
Host B
FLOW 1

IPFIX
Metering process
Filtering
FLOW N
Exporter process
Analyzer,
Vizualizer
protocol
IPFIX Collector

22.

Суть статьи
Получение статистики по IPv6трафику, инкапсулированному в
IPv4 (разбор некоторых туннелей)
IPv6
statistics
Flowmon
collector
Сборщик IPFIX (в данном случае Flowmon) собирает
итоговую статистику по потокам со всех экспортеров и
презентует ее пользователю в том или ином виде
IPFIX protocol
Flowmon
exporter
#1
Input plugin
CPU core 1

Flowmon
exporter
#n
Input plugin
CPU core n
Информация о потоке передается сборщику при помощи
протокола IPFIX.
При обнаружении IPv6-пакета внутри IPv4, IPv6-пакет
декапсулируется из IPv4, на основании информации в
заголовке IPv6 пакет сопоставляется определенному
потоку.
Пакеты распределяются по обработчикам
На каждом ядре сидит экспортер с самописным
плагином для обнаружения IPv6 в v4
(реализовано обнаружение Teredo, ISATAP, 6to4)
libsze2 (software interface)
В сети практически нет информации по библиотеке
Скорее всего, с ее помощью делается zero-copy
10Gbps NIC (FPGA-based) with load-balancing
(HW accelerated NIC/HANIC)
Для каждого принятого пакета ставит timestamp
Некоторым образом получает хэш заголовка пакета
Далее согласно хэшу пакеты распределяются по
обработчикам
IPv4
packets

23.

Варианты новой высокопроизводительной архитектуры
IPv6
statistics
Flowmon
collector
IPFIX protocol
Flowmon
exporter
#1

Input plugin
CPU core 1
Flowmon
exporter
#n
Mellanox ConnectX-4 LX
+
Input plugin
CPU core n
Application interaction layer (zero-copy)
IPv4 parser 1
GPU core 1
40-100Gb/s
NIC
with GPUDirect
IPv4
packets
Packets
over DMA
IPv4 parser n

GPU core 1
GPU
with GPU Direct
Nvidia Tesla Kepler GPU

24.

Варианты новой высокопроизводительной архитектуры
IPv6
statistics
Flowmon
collector
IPFIX protocol

Flowmon
exporter
#1
Input plugin
Flowmon
exporter
#n
Napatech NT100-E3-1-PTP
Input plugin
CPU core n
CPU core 1
Application interaction layer (zero-copy)
NIC API
Packet parser
40-100Gb/s
intelligent NIC
IPv4
packets
Accolade ANIC-100K

25.

Основные RFC
RFC 7059 - A Comparison of IPv6-over-IPv4 Tunnel Mechanisms
RFC 4213 - Basic Transition Mechanisms for IPv6 Hosts and Routers
RFC 6145 - IP/ICMP Translation Algorithm
RFC 6146 - Stateful NAT64
RFC6147 - DNS64

26.

Спасибо за внимание
Вопросы?
English     Русский Правила