Если оба компьютера за натом

в 15:33, , рубрики: IPv6, linux, nat, tunnelbroker, системное администрирование, метки: , , ,

На написание данной заметки натолкнули некоторые комментарии к недавней статье “Не слишком щепетильный способ продажи ПО” о программе TeamViewer. Попытаюсь вкратце описать один не слишком сложный и в то же время достаточно универсальный способ “зайти” с одного компьютера на другой, если они оба за натом.

Собственно, к делу. Для того, чтобы установить соединение, на каждом компьютере создадим IPv6-туннель при помощи какого-либо сервиса туннелирования IPv6. Оба компьютера при этом получат полноценный IPv6 адрес и между ними можно будет установить соединение по ssh, vnc или другой технологии. Конечно, если у обоих компьютеров уже есть IPv6 адрес, предоставленный провайдером, никаких телодвижений по поднятию туннелей производить не нужно. К сожалению, подавляющее большинство провайдеров к IPv6 еще не готовы и наличие у пользователя прямого доступа в интернет по IPv6 – большая редкость.

Самым известным сервисом туннелирования IPv6, пожалуй, является вот этот от Hurricane Electric. Для поднятия туннеля нужно пройти регистрацию, получить сеть IPv6 и скопипастить команды для Вашей системы из браузера в консоль.

Есть и более простой способ поднятия туннеля, используя сервис туннелей Freenet6. Сервис предоставляет анонимный доступ (можно не регистрироваться). Для поднятия IPv6-туннеля следует загрузить и запустить программку с их сайта. Для моей kubuntu она уже была в репозитории:

sudo apt-get install gogoc

gogoc при запуске соединяется с сервером и конфигурирует IPv6-туннель. Вот как он выглядит у меня:

$ sudo ifconfig
...
tun       Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: 2001:5c0:1400:a::45f/128 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1
          RX packets:7824 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5269 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:5057840 (5.0 MB)  TX bytes:771574 (771.5 KB)
...
$ sudo ip -6 route show
2001:5c0:1400:a::6a1 dev tun  proto kernel  metric 256  mtu 1280
2000::/3 dev tun  metric 1 
fe80::/64 dev tun  proto kernel  metric 256 
default dev tun  metric 1 
...

2001:5c0:1400:a::45f – IPv6 адрес, выданный мне Freenet6.

После проделывания аналогичной процедуры на второй машине, можно «зайти» с одной на другую.

$ ssh user@2001:5c0:1400:a::45f

или так
krdc vnc ipv6

Автор: facha

* - обязательные к заполнению поля