Для настройки виртуального интерфейса и перенаправления всего IPv6-трафика с него на конкретный хост в локальной сети на Debian, вам понадобятся права суперпользователя (`root`). Это делается в два основных этапа: создание интерфейса и настройка правил маршрутизации (NAT/порты или перенаправление на сетевом уровне).
Ниже приведено пошаговое руководство с использованием современных инструментов `iproute2` и `nftables` (стандарт для Debian).
---
## Шаг 1. Создание виртуального интерфейса
Для создания виртуального интерфейса лучше всего использовать тип `dummy`. Он ведет себя как петлевой (loopback) интерфейс, но позволяет назначать любые адреса.
1. **Создайте интерфейс** (например, с именем `dummy0`):
```bash
sudo ip link add dummy0 type dummy
```
2. **Активируйте его**:
```bash
sudo ip link set dummy0 up
```
3. **Назначьте ему ваш IPv6-адрес** (замените `2001:db8::1/64` на ваш нужный адрес):
```bash
sudo ip addr add 2001:db8::1/64 dev dummy0
```
---
## Шаг 2. Включение пересылки IPv6-трафика
По умолчанию Linux сбрасывает трафик, предназначенный для других хостов. Нужно разрешить форвардинг.
Включите пересылку IPv6 в ядре:
```bash
sudo sysctl -w net.ipv6.conf.all.forwarding=1
```
*Чтобы настройка сохранилась после перезагрузки, добавьте строку `net.ipv6.conf.all.forwarding=1` в файл `/etc/sysctl.conf`.*
---
## Шаг 3. Настройка перенаправления (DNAT) через `nftables`
В IPv6 для перенаправления всего входящего трафика на другой локальный IP используется механизм Destination NAT (DNAT).
1. **Откройте или создайте файл конфигурации `nftables**` (обычно `/etc/nftables.conf`).
2. **Добавьте следующие правила** (замените `2001:db8::1` на IP вашего виртуального интерфейса, а `fe80::target_host_ip` или `2001:db8::100` — на IPv6-адрес целевого хоста в локальной сети):
```nftables
table ip6 nat {
chain prerouting {
type nat hook prerouting priority dstnat; policy accept;
# Если трафик пришел на адрес виртуального интерфейса,
# меняем адрес назначения на целевой хост
ip6 daddr 2001:db8::1 dnat to 2001:db8::100
}
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
# Маскарадинг (SNAT), чтобы целевой хост видел пакеты от имени самого Debian
# и правильно возвращал ответный трафик
masquerade
}
}
```
3. **Примените правила**:
```bash
sudo nft -f /etc/nftables.conf
```
---
## Как сделать настройки постоянными?
Чтобы после перезагрузки сервера всё не пропало, добавьте конфигурацию интерфейса в `/etc/network/interfaces`:
```text
auto dummy0
iface dummy0 inet6 static
address 2001:db8::1
netmask 64
pre-up ip link add dummy0 type dummy
post-down ip link del dummy0
```
А службу `nftables` добавьте в автозагрузку:
```bash
sudo systemctl enable nftables
```