Хочется, что бы мой шлюз был виден с внешней сети всегда, а провайдер выдает мне динамический IP. Как вариант, можно просить у провайдера статический IP, однако это не бесплатное удовольствие. Я пойду другим путем.
Я буду использовать Dynamic DNS сервис, в частности www.no-ip.org. Первым делом регестрируюсь на www.no-ip.org и выбираю себе бесплатный домен третьего уровня — myhost.no-ip.info.
Теперь устанавливаю порт на моем шлюзе на FreeBSD:
# cd /usr/ports && make search name=noip
Port: noip-2.1.9_2
Path: /usr/ports/dns/noip
Info: No-IP.com′s dynamic DNS update client
Maint:
B-deps:
R-deps:
WWW: http://www.No-IP.com/
# cd /usr/ports/dns/noip
# make install clean
...
########################################################### You need to generate the noip config file ′no-ip2.conf′ in /usr/local/etc/no-ip2.conf. To do this automatically, run: make conf You need to register with www.no-ip.com to use this port. You also need to add the following line to your /etc/rc.conf or /etc/rc.conf.local file: noip_enable="YES" ###########################################################
Доступно расписаны дальнейшие шаги. Это хорошо.
Делаю make conf
(cd /usr/local/etc && /usr/local/bin/noip2 -C) Auto configuration for FreeBSD client of no-ip.com. Multiple network devices have been detected. Please select the Internet interface from this list. By typing the number associated with it. 0 fxp0 1 rl0 2 ipfw0 3 tun0
Интерфейс, смотрящий во внешнюю сеть у меня tun0. Его и выбираю.
Please enter the login/email string for no-ip.com Please enter the password for user
Ввожу логин и пароль на www.no-ip.org
Only one host [myhost.no-ip.info] is registered to this account. It will be used. Please enter an update interval:[30]
Пусть будет полчаса
Do you wish to run something at successful update?[N] (y/N) New configuration file "/usr/local/etc/no-ip2.conf" created. /usr/sbin/chown noip:noip /usr/local/etc/no-ip2.conf /bin/chmod 0600 /usr/local/etc/no-ip2.conf
Запускать скрипт при изменении адреса — мысль интересная, но пока у меня нет необходимости. Выполняю рекомендации:
# chown noip:noip /usr/local/etc/no-ip2.conf
# chmod 0600 /usr/local/etc/no-ip2.conf
Теперь прописываю демона в rc.conf
# echo 'noip_enable="YES"' >> /etc/rc.conf
Запускаю и наслаждаюсь результатом:
# /usr/local/etc/rc.d/noip start
# host myhost.no-ip.info
myhost.no-ip.info has address [IP]
Теперь по имени myhost.no-ip.info я смогу иметь доступ к своему шлюзу. Вне зависимости от динамически выдаваемого провайдером IP. Максимальное время в течении которого я не смогу подключиться к шлюзу, выходит 30 минут.