# Настройка IPv6 в pfSense - полное руководство

> Полное руководство по настройке IPv6 в pfSense - типы WAN, DHCPv6, SLAAC, Router Advertisements, dual-stack, правила файрвола и NPt

Source: https://opennix.org/docs/pfsense/ipv6/pfsense-ipv6-setup/


IPv6 в pfSense работает параллельно с IPv4 в режиме dual-stack: оба протокола функционируют одновременно на одних и тех же интерфейсах. Настройка IPv6 включает три основных этапа: конфигурацию WAN-интерфейса для получения IPv6-адреса и префикса от провайдера, настройку LAN-интерфейса для раздачи адресов клиентам и создание правил файрвола для IPv6-трафика.

Перед началом настройки убедитесь, что ваш интернет-провайдер предоставляет IPv6-подключение и вы знаете тип подключения (native DHCPv6, PPPoE с IPv6, туннель). Проверьте также, что IPv6 не отключен глобально в pfSense: System - Advanced - Networking, опция **Allow IPv6** должна быть включена.

## Типы WAN-подключений IPv6

### Static IPv6

Используется при получении фиксированного IPv6-адреса и префикса от провайдера. Настройка:

1. Перейдите в **Interfaces - WAN**
2. В разделе **IPv6 Configuration Type** выберите **Static IPv6**
3. Укажите:
   - **IPv6 Address** - адрес WAN-интерфейса (например, 2001:db8::2/64)
   - **IPv6 Upstream Gateway** - адрес шлюза провайдера (например, 2001:db8::1)
4. Сохраните и примените изменения

Статическая конфигурация подходит для серверных площадок и организаций с выделенным IPv6-префиксом (/48 или /56).

### DHCPv6

Наиболее распространенный тип подключения для домашних и корпоративных пользователей. pfSense запрашивает IPv6-адрес и делегированный префикс через DHCPv6:

1. Перейдите в **Interfaces - WAN**
2. В разделе **IPv6 Configuration Type** выберите **DHCPv6**
3. Настройте параметры DHCPv6:
   - **DHCPv6 Prefix Delegation size** - размер запрашиваемого префикса. Типичные значения: /56 (256 подсетей /64), /60 (16 подсетей /64), /64 (одна подсеть). Установите значение, соответствующее предложению вашего провайдера
   - **Send IPv6 prefix hint** - включите, чтобы запросить конкретный размер префикса
   - **Do not wait for a RA** - включите, если провайдер не отправляет Router Advertisement перед DHCPv6

> **Важно**: размер Prefix Delegation должен точно совпадать с тем, что выделяет провайдер. Если провайдер выделяет /56, а вы запрашиваете /48 - делегация не произойдет. При неизвестном размере попробуйте /64, затем /60 и /56.

### SLAAC

Stateless Address Autoconfiguration - pfSense формирует IPv6-адрес на основе Router Advertisement от вышестоящего маршрутизатора:

1. Перейдите в **Interfaces - WAN**
2. В разделе **IPv6 Configuration Type** выберите **SLAAC**

SLAAC не поддерживает prefix delegation, поэтому LAN-клиенты не получат глобальные IPv6-адреса автоматически. SLAAC на WAN подходит для сценариев, когда pfSense является конечным устройством, а не маршрутизатором IPv6.

### 6to4

Механизм туннелирования IPv6 через IPv4. Используется при отсутствии нативного IPv6 у провайдера:

1. Перейдите в **Interfaces - WAN**
2. В разделе **IPv6 Configuration Type** выберите **6to4 Tunnel**

pfSense автоматически сформирует IPv6-адрес на основе WAN IPv4-адреса. Префикс 2002::/16 зарезервирован для 6to4.

> **Ограничение**: 6to4 считается устаревшим механизмом (RFC 7526). Производительность зависит от ближайшего 6to4-реле и может быть нестабильной. Используйте tunnel broker как более надежную альтернативу.

### 6rd (IPv6 Rapid Deployment)

Расширение 6to4, управляемое провайдером. Провайдер предоставляет параметры 6rd-туннеля:

1. Перейдите в **Interfaces - WAN**
2. В разделе **IPv6 Configuration Type** выберите **6rd Tunnel**
3. Укажите параметры, предоставленные провайдером:
   - **6rd Prefix** - IPv6-префикс от провайдера
   - **6rd Border Relay** - адрес реле провайдера
   - **6rd IPv4 Prefix Length** - длина IPv4-префикса

### Tunnel Broker

Hurricane Electric (tunnelbroker.net) и другие провайдеры туннелей предоставляют бесплатные IPv6-туннели:

1. Зарегистрируйтесь на tunnelbroker.net и создайте туннель
2. В pfSense перейдите в **Interfaces - Assign - GIFs**
3. Создайте GIF-интерфейс:
   - **Parent Interface** - WAN
   - **GIF Remote Address** - IPv4-адрес сервера HE
   - **GIF Tunnel Local Address** - ваш IPv6-адрес туннеля (Client IPv6 Address)
   - **GIF Tunnel Remote Address** - IPv6-адрес сервера HE (Server IPv6 Address)
4. Назначьте созданный GIF-интерфейс как новый интерфейс (Interfaces - Assign)
5. Настройте шлюз IPv6 через этот интерфейс
6. Routed /48 или /64 от HE используйте для LAN-подсетей

## Настройка LAN IPv6

### Router Advertisements (RA)

Router Advertisements - основной механизм автоконфигурации IPv6 на LAN. Настройка:

1. Перейдите в **Services - Router Advertisements**
2. Выберите LAN-интерфейс
3. Настройте режим RA:

| Режим | Описание | Когда использовать |
|---|---|---|
| Router Only | Только маршрутизатор, без раздачи адресов | Когда адреса назначаются статически |
| Unmanaged | SLAAC без DHCPv6 | Простые сети без необходимости в DNS/NTP от DHCPv6 |
| Managed | Только DHCPv6, без SLAAC | Полный контроль адресации через DHCPv6 |
| Assisted | SLAAC + DHCPv6 для дополнительных параметров | Рекомендуемый для большинства сетей |

Для режима **Assisted** (наиболее универсальный):

- Клиенты получают IPv6-адрес через SLAAC
- DNS-серверы и другие параметры передаются через DHCPv6
- Обеспечивается совместимость с Android-устройствами (которые не поддерживают DHCPv6 для адресации)

### Track Interface

Если WAN получает делегированный префикс через DHCPv6, используйте Track Interface для автоматического назначения подсети на LAN:

1. Перейдите в **Interfaces - LAN**
2. В разделе **IPv6 Configuration Type** выберите **Track Interface**
3. Настройте:
   - **IPv6 Interface** - выберите WAN (или интерфейс с DHCPv6)
   - **IPv6 Prefix ID** - идентификатор подсети (0 для первой, 1 для второй и т.д.)

При делегированном префиксе /56 на WAN, каждый LAN-интерфейс получит подсеть /64 из этого префикса. Prefix ID определяет, какая именно подсеть /64 будет назначена.

### DHCPv6 Server

Для управляемой адресации (Managed RA) или передачи дополнительных параметров (Assisted RA):

1. Перейдите в **Services - DHCPv6 Server & RA**
2. Выберите LAN-интерфейс
3. Включите DHCPv6 Server
4. Настройте диапазон адресов и параметры:
   - **Range** - диапазон адресов для динамической раздачи
   - **DNS Servers** - адреса DNS-серверов IPv6 (оставьте пустым для использования адреса pfSense)
   - **Domain Search List** - список доменов для поиска

## Конфигурация dual-stack

В режиме dual-stack pfSense обрабатывает IPv4 и IPv6 трафик одновременно. Ключевые аспекты:

- **Каждый интерфейс** имеет независимые настройки IPv4 и IPv6
- **Правила файрвола** разделены: отдельные вкладки для IPv4, IPv6 и IPv4+IPv6
- **NAT** применяется только к IPv4. Для IPv6 используется NPt (Network Prefix Translation), если необходимо
- **DNS Resolver** обслуживает запросы по обоим протоколам автоматически
- **Шлюзы** IPv4 и IPv6 настраиваются независимо

Для корректной работы dual-stack убедитесь, что:

1. Оба протокола настроены на WAN и LAN
2. Шлюзы по умолчанию настроены для обоих протоколов (System - Routing)
3. DNS-серверы указаны для обоих протоколов (System - General Setup)
4. Правила файрвола разрешают необходимый трафик для обоих протоколов

## Правила файрвола для IPv6

Правила файрвола IPv6 управляются на тех же вкладках интерфейсов, но фильтруются отдельно. При создании правила выберите **Address Family**:

- **IPv4** - правило применяется только к IPv4-трафику
- **IPv6** - правило применяется только к IPv6-трафику
- **IPv4+IPv6** - правило применяется к обоим протоколам

### Обязательные правила IPv6

Для корректной работы IPv6 на LAN создайте следующие правила:

1. **Разрешить ICMPv6**: IPv6 критически зависит от ICMPv6 (NDP, Path MTU Discovery). Блокировка ICMPv6 нарушает работу IPv6

```
Action: Pass
Interface: LAN
Address Family: IPv6
Protocol: ICMPv6
Source: LAN net
Destination: any
```

2. **Разрешить исходящий трафик**: базовое правило для доступа LAN-клиентов в интернет по IPv6

```
Action: Pass
Interface: LAN
Address Family: IPv6
Protocol: any
Source: LAN net
Destination: any
```

> **Предупреждение**: в IPv6 нет NAT по умолчанию. Каждое устройство в LAN получает глобально маршрутизируемый адрес. Файрвол - единственный уровень защиты. Тщательно продумайте правила для IPv6, особенно на WAN-интерфейсе.

### Блокировка входящего IPv6

По умолчанию pfSense блокирует весь входящий трафик на WAN (implicit deny). Для IPv6 это означает, что внешние хосты не смогут инициировать подключения к вашим LAN-устройствам, несмотря на наличие глобальных адресов. Это поведение аналогично NAT в IPv4, но реализовано через файрвол.

## NPt (Network Prefix Translation)

NPt выполняет трансляцию IPv6-префиксов аналогично NAT 1:1 в IPv4. Используется для:

- Маскировки внутреннего IPv6-префикса при смене провайдера
- Обеспечения стабильных внутренних адресов при использовании динамических префиксов от провайдера
- Multihoming с несколькими провайдерами

Настройка NPt:

1. Перейдите в **Firewall - NAT - NPt**
2. Добавьте правило:
   - **Interface** - WAN
   - **Internal IPv6 Prefix** - ULA-префикс вашей внутренней сети (например, fd00:1::/64)
   - **Destination IPv6 Prefix** - глобальный префикс от провайдера

NPt не изменяет содержимое пакетов за пределами адресов, поэтому не нарушает работу протоколов, чувствительных к NAT.

## Диагностика проблем IPv6

### Нет IPv6-подключения

Если клиенты LAN не получают IPv6-адреса или не имеют IPv6-связности:

1. **Проверьте WAN**: Status - Interfaces. Убедитесь, что WAN-интерфейс получил IPv6-адрес и шлюз
2. **Проверьте prefix delegation**: Status - Interfaces - WAN, найдите строку Delegated Prefix. Если префикс отсутствует - проблема с DHCPv6 от провайдера
3. **Проверьте RA**: Services - Router Advertisements. Убедитесь, что режим не установлен на Disabled
4. **Проверьте правила**: убедитесь, что ICMPv6 разрешен на LAN
5. **Тестируйте с pfSense**: Diagnostics - Ping, выберите WAN IPv6-адрес как источник, выполните ping до 2001:4860:4860::8888 (Google DNS IPv6)

### Проблемы с Prefix Delegation

Если WAN получает IPv6-адрес, но prefix delegation не работает:

- Проверьте размер запрашиваемого префикса - он должен совпадать с предложением провайдера
- Включите опцию **Send IPv6 prefix hint** на WAN
- Попробуйте включить **Do not wait for a RA** - некоторые провайдеры не отправляют RA
- Проверьте журналы DHCPv6: Status - System Logs - DHCPv6
- Обратитесь к провайдеру для уточнения поддерживаемого размера Prefix Delegation

### Клиенты получают адрес, но нет связности

Если клиенты имеют IPv6-адрес, но не могут выйти в интернет:

1. **Проверьте маршрут по умолчанию IPv6**: Diagnostics - Routes, вкладка IPv6. Убедитесь, что маршрут по умолчанию (`::/0`) присутствует и указывает на WAN-шлюз
2. **Проверьте правила на LAN**: убедитесь, что правила разрешают IPv6-трафик от LAN net
3. **Проверьте MTU**: Path MTU Discovery зависит от ICMPv6 Packet Too Big. Если ICMPv6 заблокирован, MTU не согласуется и пакеты теряются

Дополнительные сведения о правилах файрвола доступны в разделе [файрвол pfSense](/docs/pfsense/firewall/pfsense-firewall-rules/). Для диагностики общих проблем обратитесь к [руководству по устранению неполадок](/docs/pfsense/troubleshooting/pfsense-general-troubleshooting/). Настройка VLAN с IPv6 рассмотрена в разделе [VLAN](/docs/pfsense/vlans/).

