IPv6 без провайдера

Просмотров: 2903Комментарии: 0
ВкусняшкиFAQ SolutionLinuxfor Dummies
IPv6 без провайдера

Статья о том, как я поднимал у себя дома IPv6 без моего провадера. Мой провадер не предостаялет IPv6 по умолчанию, но есть обходные пути. А еще услуга IPv6 недоступна при активации статического IP. Итак, ранее я рассказывал что мной был поднят гипервизор ESXi для организации большого количесва маленьких серверов и сервисов. А раз у меня есть такой инструмент, почему не поднять себе IPv6 шлюз для Интернет. Сказано - сделано.

За основу был взят образ минимального Debian 10 (если интересна базовая подготовка, напишите комментарий и я обязательно напишу статью о установке минимального Debian).

А провайдером - IPv6 сети стал Hurricane Electric. Интерфейс простой, регистрируемся и получаем две /64 сети, аодна из которых маршрутизируемая.

Далее проложаем подготовку в системе. Первым делом нужно настроить наш Debian сервер на статический локальный IPv4 адрес. Для этого настроим файл конфигурации сетевых интерфейсов:

# nano /etc/network/interfaces

Внесем правки

# The primary network interface

allow-hotplug ens192

iface ens192 inet static

address 192.168.1.2

netmask 255.255.255.0

gateway 192.168.1.1

dns-nameservers 8.8.8.8 8.8.4.4

Перезапускаем сеть

# /etc/init.d/networking restart

и убеждаемся, что она продолжает работать выполнив простой ping запрос:

# ping olorg.ru

Пинги идут? Если да, тогда все хорошо и переходим к настройке тунельного интерфейса, правим его в файле /etc/network/interfaces

auto he-ipv6

iface he-ipv6 inet6 v4tunnel

address 2001:aaa:bbb4:682::2

netmask 64

endpoint 216.66.84.46

local 192.168.1.2

ttl 255

gateway 2001:aaa:bbb4:682::1

Можно сравнить, какой адрес указан в интерфейса брокера

Если все успешно, можно перезапустить сеть, и поднять новый интерфейс.

# /etc/init.d/networking restart

# ip link set dev he-ipv6 up

После чего можно уже пинговать IPv6 адреса:

root@srv-ipv6:/home/olannmk# ping ya.ru -c4

PING ya.ru(ya.ru (2a02:6b8::2:242)) 56 data bytes

64 bytes from ya.ru (2a02:6b8::2:242): icmp_seq=1 ttl=55 time=85.4 ms

64 bytes from ya.ru (2a02:6b8::2:242): icmp_seq=2 ttl=55 time=85.7 ms

64 bytes from ya.ru (2a02:6b8::2:242): icmp_seq=3 ttl=55 time=96.1 ms

64 bytes from ya.ru (2a02:6b8::2:242): icmp_seq=4 ttl=55 time=85.7 ms

--- ya.ru ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 7ms

rtt min/avg/max/mdev = 85.402/88.219/96.088/4.549 ms

Первая эпопея закончилась, следующая задача - раздать IPv6 в локальную сеть. Для этого нам потребуется сетевой интерфейс, который смотрит в локальную сеть (так как у меня устройство итак в локальной сети, я обудусь уже имеющимся у меня интерфейсом ens192 и не буду плодить сущности).

Далее на свой интерфейс в локальной сети я добавляю IP маршрутизиремой сети (опять редкартируем файл конфигурации интерфейсов)

# nano /etc/network/interfaces

Внесем правки

iface ens192 inet6 static

address 2001:aaa:bbb5:680::1

netmask 64

Обратите внимание на замаскированные адреса. В маршрутизиремом на 1 больше.

тперерь необходимо установить демона "Router Advertisement Daemon" radvd, который будет раздавть IPv6 адреса в локальной сети, выполним следующую команду:

# apt install radvd

Далее необходимо настроить файл конфигурации демона

# nano /etc/radvd.conf

И указать наши параметры

interface ens192

{

AdvSendAdvert on;

prefix 2001:aaa:bbb5:680::/64

{

AdvOnLink on;

AdvAutonomous on;

};

};

Следующим шагом, необходимо включить маршрутизации IPv6, для этого необходимо отредактировать файл sysctl.conf выполнив команду

# nano /etc/sysctl.conf

и разкоментировать или добавить следующие строки

net.ipv6.conf.all.forwarding=1

net.ipv6.conf.default.forwarding=1

И выполнить с правами root:

# sysctl -p

# /etc/init.d/radvd restart

Теперь можно перезапустить сетевые интерфейсы (подключения) на других клиентах в локальной сети и убедиться, что работает IPv6

Ну а теперь самое главное добавить в автозагрузку сервис rtadvd, для этого нужно выполнить:

# systemctl enable radvd

После чего можно перезагрузиться и проверить что сервис стартует

# /etc/init.d/radvd status

Прошу заметить, что на всех клиентах я использую google DNS IPv4 адреса, они так-же отдают AAAA записи.

Можно сказать, что все работает и забыть, но это не безопасно. Так как все клиенты в локальной сети становяся доступны по IPv6 из сети интернет, а это не безопасно. Настроим ip6tables. Выполним следующие команды:

ip6tables -P FORWARD DROP

ip6tables -A FORWARD -i ens192 -o he-ipv6 -j ACCEPT

ip6tables -A FORWARD -i he-ipv6 -o ens192 -m state --state RELATED,ESTABLISHED -j ACCEPT

Всё. Теперь клиенты могут ходит в интернет по IPv6, но они не будут доступны из вне.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)