Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 7631 В разделе
Sysadmin
от October 9th, 2015,
В подшивках: IPv6, OpenVPN, VPN
Появилась необходимость создать постоянный VPN между репитером томского автоканала и моим сервером внутри домашней сети. Весь прикол был в том, что репитер из-за особенностей провайдера находится за натом, а мой сервер вообще аж за 3 NAT. Бонус в том, что обе машины работают на Debian Linux. Было решено поднять на обоих машинах IPv6 интерфейсы, получив белые адреса и уже между ними поднять OpenVPN.
Т.к. miredo выдает динамические адреса при каждом запуске, то необходимо воспользоваться динамической DNS. Самый простой и доступный DynV6. Регистрируете ваш домен, получаете готовые инструкции для готового скрипта, устанавливаете скрипт на сервере и запускаете сразу после поднятия teredo интерфейса. Единственная неточность в инструкции на сайте так это регистр слова TOKEN. Также могут возникнуть проблемы с маршрутами. Я просто отключил в своем скрипте IPv6 на некоторых интерфейсах, т.к. провайдер никакого v6 не раздает. Еще могут возникнуть проблемы с самим teredo, т.к. он работает не со всеми видами NAT. Поэтому сервером был выбран репитер, а не мой внутренний сервер. На репитере скрипт запускается через post-up чтобы интернет наверняка работал.
#!/bin/sh -e
echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6
/etc/init.d/miredo restart
token=tfgsfgsdfhgfglsgfhdksfgslkj34i34p /opt/dynv6.sh radio70.dynv6.net teredo
Далее просто устанавливаем miredo на обе машины:
sudo apt-get install miredo
Конфиг для OpenVPN сервера:
dev-type tun
dev rpinas
proto tcp6-server
port 7080
tun-mtu 1200
ifconfig 10.10.10.5 10.10.10.6
secret avtokanal.key
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
Конфиг для машины внутри моей сети:
remote radio70.dynv6.net
port 7080
dev-type tun
#mssfix 1200
#fragment 1200
tun-mtu 1200
dev radio70
ifconfig 10.10.10.6 10.10.10.5
proto tcp6-client
secret avtokanal.key
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
script-security 2
Ну а теперь самое время проверить доступность репитера (где установлен сервер OpenVPN) через IPv6 командой ping6 radio70.dynv6.net. Если все удалось, то и сам впн должен был подняться: ping 10.10.10.5.
Теперь у вас есть VPN между 2 машинами за натом. Вы великолепны!
Fortune cookie: I invented skydiving in 1989!
Leave a Reply