2014-01-27

gogoCLIENT позволяет организовать туннель через любой NAT к серверу freenet6 и, пройдя регистрацию на www.freenet6.net, получить адрес IPv6 и доменное имя вида username.broker.freenet6.net


Туннель не поднимался, пока дополнительно не зарегистрировал аккаунт на сервере montreal.freenet6.net и в конфигурации /usr/local/etc/gogoc.conf не указал соответствующий сервер

www.gogo6.com/freenet6/register-montreal

www.gogo6.com/freenet6/register-amsterdam

Но в настоящее время регистрация на этих серверах недоступна, возможна лишь регистрация Freenet6 Account Pro


bsd$ whereis -s gogoc

gogoc: /usr/ports/net/gogoc

bsd$ egrep "^[^ #]" /usr/local/etc/gogoc.conf

userid=username

passwd=p@$$w)rd

server=montreal.freenet6.net

auth_method=any

host_type=router

prefixlen=56

if_prefix=em0

tunnel_mode=v6anyv4

Для автоматического копирования ключа с сервера нужно указать дополнительный ключ при старте сервиса

bsd$ echo 'gogoc_flags="-y"' | sudo tee -a /etc/rc.conf

bsd$ echo 'gogoc_enable="YES"' | sudo tee -a /etc/rc.conf

bsd$ sudo /usr/local/etc/rc.d/gogoc start

После поднятия туннеля появится интерфейс tun0, имеющий IPv6-адрес, доступный извне, а сетевому интерфейсу em0 будет назначен IPv6-адрес внутренней IPv6-подсети с префиксом 64.

С помощью встроенного даемона rtadvd или radvd, доступного из портов, можно поднять роутер, раздавая IPv6-адреса вида 2001:5c0:1101:1700:xx::/64. Все они будут доступны извне (если это разрешено фаерволом - см. далее)


На виртуальной FreeBSD адаптер поднимается с выключенным IPv6, приходится править самостоятельно


bsd$ sudo ifconfig tun0 inet6 -ifdisabled

bsd$ ifconfig tun0

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280

options=80000<LINKSTATE>

inet6 fe80::215:f2ff:feba:e2ab%tun0 prefixlen 64 scopeid 0x5

inet6 2001:5c0:1000:b::1dc7 --> 2001:5c0:1000:b::1dc6 prefixlen 128

nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

bsd$ ifconfig em0

em0: flags=8843 metric 0 mtu 1500

options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>

inet6 fe80::215:f2ff:feba:e2ab%em0 prefixlen 64 scopeid 0x1

inet6 2001:5c0:1101:1700::1 prefixlen 64

nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>

bsd$ netstat -nrfinet6

Routing tables
Internet6:
default2001:5c0:1000:b::1dc6UGStun0
2001:5c0:1000:b::1dc6link#5UHtun0
2001:5c0:1000:b::1dc7link#5UHSlo0
2001:5c0:1101:1700::/64link#1Uem0
2001:5c0:1101:1700::/56lo0USlo0
2001:5c0:1101:1700::1link#1UHSlo0

В /etc/rc.firewall разрешить доступ по IPv6 к сетевым сервисам (sshd и httpd на самом роутере, rdp и minecraft на станциях с Windows)

bsd$ sudo ipfw -a list | grep ip6

02000 allow ip6 from any to me6 dst-port 22 setup

06700 allow ip6 from any to me6 dst-port 80,443 setup

06800 allow ip6 from any to any dst-port 3389,25565 setup

07600 allow ip6 from me6 to any


Включить маршрутизацию ip6


bsd$ echo 'ipv6_gateway_enable="YES"' | sudo tee -a /etc/rc.conf

ipv6_gateway_enable="YES"

bsd$ sudo sysctl net.inet6.ip6.forwarding=1


FreeBSD 10.0-RELEASE: Mon Jan 27 09:11:45 MSK 2014