Заметки о работе с ОС FreeBSD. Статьи об установке и настройке ПО для FreeBSD.

30 августа 2013 г.

Включаем SNMP в VMware ESXi 5.1

Включить SNMP в VMware ESXi 5.1 можно через ssh.
Чтобы использовать ssh для подключения к хосту, необходимо его для начала включить. Делается это, как и в ESXi 4.1, через vShpere Client в меню хоста Configuration - Security Profile:


После этого заходим по ssh на хост (например, используя Putty).

Задаем коммъюнити и адрес хоста системы мониторинга:

~ # esxcli system snmp set -c public
~ # esxcli system snmp set -t 192.168.200.52@161/public

Разрешаем запуск демона snmp:

~ # esxcli system snmp set -e true

Проверяем конфигурацию:

~ # esxcli system snmp test
   Comments: There is 1 target configured, send warmStart requested, test completed normally.

Проверяем работоспособность со стороны системы мониторинга:

[root@cacti ~]# snmpwalk -v2c -c public esx249.test.eu

Результат:

.

Включаем SNMP в VMware ESXi 4.1

Включить SNMP в ESXi 4.1 можно двумя способами: через ssh и через CLI. Но, чтобы использовать ssh, необходимо его для начала включить.

Делается это через vShpere Client в меню хоста Configuration - Security Profile:

После этого заходим по ssh на хост (например, используя Putty).
Необходимо отредактировать файл /etc/vmware/snmp.xml:
~ # vi /etc/vmware/snmp.xml
Редактируем до такого состояния:

truepublic192.168.200.52@161 public

Синим выделено то, что я изменил:
true, - разрешаем работу snmp,
public - имя коммьюнити,
192.168.200.52@161 public - хост, которому разрешено считывать данные по snmp с коммьюнити public.

После этого перезагружаем хост. Как запустить демона snmp на ESXi 4.1 без перезагрузки хоста - я не нашел.

~ # reboot

После перезагрузки можно снимать данные с помощью любой системы мониторинга:

14 августа 2013 г.

Синхронизация двух каталогов при помощи rsync на FreeBSD

Для синхронизации каталогов между двумя серверами FreeBSD будем использовать rsync.

На обоих серверах ставим rsync из портов.

[root@office-rsync-server ~]# cd /usr/ports/net/rsync

Я использую следующие опции:
[root@office-rsync-server /usr/ports/net/rsync]# make showconfig
===> The following configuration options are available for rsync-3.0.9_3:
     ACL=off: Add backward-compatibility for the --acls option
     ATIMES=off: Preserve access times, adds --atimes
     DOCS=on: Build and/or install documentation
     FLAGS=off: File system flags support patch, adds --fileflags
     ICONV=on: Encoding conversion support via iconv
     POPT_PORT=off: Use popt from devel/popt instead of bundled one
     RENAMED=off: Add support for renamed file detection
     SSH=on: Use SSH instead of RSH
     TIMELIMIT=on: Time limit patch
===> Use 'make config' to modify these settings

[root@office-rsync-server /usr/ports/net/rsync]# make install clean

На сервере, с которого будем синхронизировать файлы:
[root@office-rsync-server ~]# ee /usr/local/etc/rsyncd.conf

Редактируем файл rsyncd.conf до следующего состояния:
pid file = /var/run/rsyncd.pid
uid = root
gid = wheel
use chroot = yes
max connections = 10
syslog facility = local5
[wrk]
        path = /wrk
        comment = Working files
        hosts allow = 192.168.249.250, 192.168.249.251

В rc.conf разрешаем запуск rsyncd:
rsyncd_enable="YES"

На сервере, который будет в роли клиента создаем shell-скрипт следующего содержания:
[root@office-rsync-client ~]# ee /root/sync_files.sh
#!/bin/sh
rsync -qrul --delete-excluded 192.168.249.50::wrk /wrk
, где:
-q - "тихий режим", не выводить никакие сообщения об ошибках
-r - рекурсивный режим, т.е. копировать директорию и поддиректории
-u - пропускать более свежие на клиенте файлы
-l - копировать симлинки (symlinks) как симлинки
--delete-excluded - удалять файлы, если они удалены на сервере

Этот скрипт можно прописать в cron для периодического запуска.

Всё.

23 июля 2013 г.

FreeBSD: description в ifconfig

Начиная с 8 ветки FreeBSD можно добавить поле description в ifconfig. Это очень удобно если на сервере установлено много сетевых интерфейсов.

Вот выдержка из man ifconfig:
     description value, descr value
             Specify a description of the interface.  This can be used to
             label interfaces in situations where they may otherwise be diffi‐
             cult to distinguish.

В rc.conf можно использовать как "description", так и "descr":
ifconfig_em0="inet 192.168.251.8/24 description LocalNet"
ifconfig_em1="inet 192.168.252.9/24 descr TestNet"


Пример вывода ifconfig
em0: flags=8843 metric 0 mtu 1500
        description: LocalNet
        options=9b
        ether 00:50:56:84:72:90
        inet 192.168.251.8 netmask 0xfffffe00 broadcast 192.168.251.255
        inet6 fe80::250:56ff:fe84:7290%em0 prefixlen 64 scopeid 0x1
        nd6 options=29
        media: Ethernet autoselect (1000baseT )
        status: active
em1: flags=8843 metric 0 mtu 1500
        description: TestNet
        options=9b
        ether 00:50:56:84:3d:f9
        inet 192.168.252.9 netmask 0xffffff00 broadcast 192.168.252.255
        inet6 fe80::250:56ff:fe84:3df9%em1 prefixlen 64 scopeid 0x2
        nd6 options=29
        media: Ethernet autoselect (1000baseT )
        status: active

19 июля 2013 г.

Установка и настройка net-snmp на FreeBSD для мониторинга сервера

Настраиваем минимальную конфигурацию net-snmp на FreeBSD для мониторинга сервера по протоколу snmp, например, с помощью cacti, nagios и т.д.

Как обычно, сперва обновляем дерево портов, например, при помощи portsnap.
snmpd ставим из портов. Порт называется net-snmp.
[root@srv251test ~]# cd /usr/ports/net-mgmt/net-snmp/
[root@srv251test /usr/ports/net-mgmt/net-snmp]# make config

Я выбираю следующие опции конфигурации.
DMALLOC
DUMMY
PERL
PERL_EMBEDDED
В дальнейшем я смогу использовать скрипты на Perl для мониторинга состояния некоторых сервисов.

Устанавливаем:
[root@srv251test /usr/ports/net-mgmt/net-snmp]# make install clean

После установки пример конфигурационного файла net-snmp можно найти по этому пути:
/usr/local/share/snmp/snmpd.conf.example

Я создам файл с нуля:
[root@srv251test ~]# mkdir /usr/local/etc/snmp && ee /usr/local/etc/snmp/snmpd.conf
snmpd.conf

# Название "сообщества" только для чтения и какие сети могут иметь доступ к нему
rocommunity    secretcomm 192.168.240.0/24 sysLocation     Server Room
sysContact      email@address.com
sysServices     72
proc  mountd # Мониторим процесс mountd
proc sendmail 10 1 # Мониторим процесс sendmail. Должен быть запущен
                              # хотя бы один процесс, но не более 10
disk       /     10%  # Свободное дисковое пространство
includeAllDisks  10%
load   12 10 5

Разрешаем запуск net-snmp в rc.conf
snmpd_enable="YES"
snmpd_flags="-a"
Запускаем
[root@srv251test ~]# /usr/local/etc/rc.d/snmpd start

Проверяем
[root@srv251test ~]# ps ax | grep snmp
62532 ??  S       4:33,70 /usr/local/sbin/snmpd -p /var/run/net_snmpd.pid -a

Пробуем опросить наш сервер по snmp при помощи утилиты snmpwalk
-c secretcom - название коммьюнити
-v2c - версия snmp
[root@srv251test ~]# snmpwalk -c secretcomm -v2c 192.168.240.254
SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD srv251test 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
...
и т.д.

18 июля 2013 г.

Установка VMware Tools на FreeBSD 9

Для установки VMware Tools на FreeBSD 9 необходим Perl и compat6.x

[root@srv250test ~]# cd /usr/ports/misc/compat6x
[root@srv250test /usr/ports/misc/compat6x]# make install clean

В vSphere Client выбираем "Install/Upgrade VMware Tools"


Монтируем виртуальный CD
[root@srv250test ~]# mount -t cd9660 /dev/cd0 /media

Копируем архив VMware tools в любой каталог (предварительно создав его)
[root@srv250test ~]# mkdir /root/vmwaretools && cp /media/vmware-freebsd-tools.tar.gz /root/vmwaretools

Распаковываем
[root@srv250test ~]# cd /root/vmwaretools && tar xvf vmware-freebsd-tools.tar.gz

Запускаем установщик
[root@srv250test /root/vmwaretools]# ./vmware-install.pl

Скрипт установки задает вопросы, на которые даем утвердительные ответы, соглашаясь на предложенные варианты.

Installing VMware Tools.
In which directory do you want to install the binary files?
 [/usr/local/bin]
In which directory do you want to install the startup script?
 [/usr/local/etc/rc.d]
In which directory do you want to install the daemon files?
 [/usr/local/sbin]
In which directory do you want to install the library files?
 [/usr/local/lib/vmware-tools]
The path "/usr/local/lib/vmware-tools" does not exist currently. This program
 is going to create it, including needed parent directories. Is this what you
 want? [yes]
In which directory do you want to install the documentation files?
 [/usr/local/share/doc/vmware-tools]
The path "/usr/local/share/doc/vmware-tools" does not exist currently. This
 program is going to create it, including needed parent directories. Is this
 what you want? [yes]
The installation of VMware Tools 9.0.5 build-1065307 for FreeBSD completed
 successfully. You can decide to remove this software from your system at any
 time by invoking the following command:
 "/usr/local/bin/vmware-uninstall-tools.pl".
Before running VMware Tools for the first time, you need to configure it by
 invoking the following command: "/usr/local/bin/vmware-config-tools.pl". Do you
 want this program to invoke the command for you now? [yes]
Initializing...
Making sure services for VMware Tools are stopped.
Stopping VMware Tools services in the virtual machine:
 Guest operating system daemon:                                      done
The vmblock enables dragging or copying files between host and guest in a
 Fusion or Workstation virtual environment.  Do you wish to enable this feature?
 [no]
No X install found.
Starting VMware Tools services in the virtual machine:
 Switching to guest configuration:                                   done
 Guest memory manager:                                               done
 Guest operating system daemon:                                      done
 For the VMware Tools for FreeBSD 9.1 it is recommended that you install the
 following packages:
xf86-video-vmware
 xf86-input-vmmouse
The easiest way to install these packages is by using pkg_add utility.  Refer
 to the man pages on how to properly use this utility.
The configuration of VMware Tools 9.0.5 build-1065307 for FreeBSD for this
 running kernel completed successfully.
You must restart your X session before any mouse or graphics changes take
 effect.
You can now run VMware Tools by invoking "/usr/local/bin/vmware-toolbox-cmd"
 from the command line.
Please remember to configure your network by adding:
 ifconfig_vxn0="dhcp"
 to the /etc/rc.conf file and start the network with:
 /etc/netstart
 to use the vmxnet interface using DHCP.
Enjoy,
--the VMware team
Found VMware Tools CDROM mounted at /media. Ejecting device /dev/cd0 ...

После этого в vSphere client видим, что VMware Tools работают:

9 июля 2013 г.

Настраиваем quagga (zebra, bgpd) во FreeBSD для отказоустойчивости каналов передачи данных

В данной статье я покажу на живом примере как можно использовать протокол динамической маршрутизации BGP для реализации отказоустойчивости двух и более каналов передачи данных между двумя серверами на FreeBSD.

Будем использовать FreeBSD 9.1, quagga (zebra) и vtun.
Quagga поддерживает следующие протоколы динамической маршрутизации:

  • Routing Information Protocol (RIP): v1, v2, v3;
  • Open Shortest Path First (OSPF): v2, v3;
  • Border Gateway Protocol (BGP): v4;
  • Intermediate System to Intermediate System (IS-IS).
В данном примере я буду использовать протокол BGP.

В предыдущей статье я уже описывал настройку vtun для создания шифрованного туннеля между двумя серверами. Этот туннель я буду использовать как один из каналов передачи данных.

Итак, есть два сервера, которые необходимо обеспечить двумя каналами передачи данных и чтобы в случае падения одного канала маршруты автоматические перестраивались на другой.

Маршрутизатор 1:
em0 - 192.168.111.254/24 (локальная сеть основного офиса)
em1 - 44.44.44.254 (сеть Интернет)
em2 - 10.10.10.1 (канал передачи данных между серверами 1 и 2)
tun0 - 172.16.0.1 (туннель на основе vtun между серверами 1 и 2)


Маршрутизатор 2:
em0 - 192.168.222.254/24 (локальная сеть филиала)
em1 - 44.44.55.254 (сеть Интернет)
em2 - 10.10.10.2 (канал передачи данных между серверами 2 и 1)
tun0 - 172.16.0.2 (туннель на основе vtun между серверами 2 и 1)

Установка quagga

После обновления дерева портов ставим пакет quagga на оба сервера:

[root@srv501gw-bgp-test /usr/ports/net/quagga]# make install clean

После успешной установки quagga в директории /usr/local/etc/quagga создаем следующие файлы:
bgpd.conf daemons isisd.conf ospf6d.conf ospfd.conf ripd.conf ripngd.conf zebra.conf

[root@srv501gw-bgp-test /usr/local/etc/quagga]# touch bgpd.conf daemons isisd.conf ospf6d.conf ospfd.conf ripd.conf ripngd.conf zebra.conf

Из этих файлов нам понадобятся только: daemons, zebra.conf и bgpd.conf
Остальные необходимо создать файлами нулевой длины иначе quagga будет ругаться на их отсутствие при запуске.

[root@srv501gw-bgp-test /usr/local/etc/quagga]# ll
total 20
drwxr-xr-x  2 quagga  quagga   512B Jul  5 16:59 .
drwxr-xr-x  8 root    wheel    512B Jul  8 09:30 ..
-rw-r--r--  1 quagga  quagga   1.9k Jul  5 19:00 bgpd.conf
-rw-r--r--  1 quagga  quagga    66B Jun 11 15:43 daemons
-rw-r--r--  1 quagga  quagga     0B Jul  5 16:59 isisd.conf
-rw-r--r--  1 quagga  quagga     0B Jul  5 16:52 ospf6d.conf
-rw-r--r--  1 quagga  quagga     0B Jul  5 16:52 ospfd.conf
-rw-r--r--  1 quagga  quagga     0B Jul  5 16:52 ripd.conf
-rw-r--r--  1 quagga  quagga     0B Jul  5 16:52 ripngd.conf
-rw-r--r--  1 quagga  quagga   599B Jul  5 17:44 zebra.conf

Также необходимо создать лог-файлы и выставить соответствующие права:

[root@srv501gw-bgp-test /usr/local/etc/quagga]# touch /var/log/zebra.log /var/log/bgpd.log
[root@srv501gw-bgp-test /usr/local/etc/quagga]# chown quagga:quagga /var/log/zebra.log
[root@srv501gw-bgp-test /usr/local/etc/quagga]# chown quagga:quagga /var/log/bgpd.log

Настройка quagga (zebra и bgpd)

В файле daemons указываем какие демоны нам нужны. В моем случае это zebra и bgpd.

[root@srv501gw-bgp-test /usr/local/etc/quagga]# cat daemons
zebra=yes
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no

В rc.conf добавляем следующие строки:
quagga_enable="YES"
quagga_daemons="zebra bgpd"
quagga_flags="-d -A 127.0.0.1"
watchquagga_enable="YES"
watchquagga_flags="-dz -R '/usr/local/etc/rc.d/quagga restart' * * *"


Я предпочитаю настраивать через VTY-консоль, но в блоге удобнее выложить конфигурационные файлы.

zebra.conf на сервере в офисе:

[root@srv501gw-bgp-test /usr/local/etc/quagga]# cat zebra.conf
!
! Zebra configuration saved from vty
!   2013/07/08 17:22:10
!
hostname srv501gw-bgp-test
password PaSSw0rd
enable password SuperPaSSw0rd
log file /var/log/zebra.log
log syslog
!
interface em0
 ip address 192.168.111.254/24
!
interface em1
 ip address 44.44.44.254/24
!
interface em2
 ip address 10.10.10.1/24
!
interface tun0
 ip address 172.16.0.1/24
!
interface lo0
!
ip forwarding
!
!
line vty
!

bgpd.conf на сервере в офисе:

[root@srv501gw-bgp-test /usr/local/etc/quagga]# cat bgpd.conf
!
! Zebra configuration saved from vty
!   2013/07/08 17:41:10
!
hostname srv501gw-bgp-test
password PaSSw0rd
enable password SuperPaSSw0rd
log file /var/log/bgpd.log
!
router bgp 64555
 bgp router-id 192.168.111.254
 bgp log-neighbor-changes
 neighbor 10.10.10.2 remote-as 64556
 neighbor 172.16.0.2 remote-as 64556
!
 address-family ipv4
 neighbor 10.10.10.2 activate
 neighbor 10.10.10.2 weight 1500
 neighbor 10.10.10.2 route-map DataChannel-out out
!
 neighbor 172.16.0.2 activate
 neighbor 172.16.0.2 weight 1000
 neighbor 172.16.0.2 route-map VTun-out out
 neighbor 172.16.0.2 send-community extended
 network 0.0.0.0/0
!
 ip prefix-list DataChannel-out seq 10 permit 0.0.0.0/0
!
 route-map DataChannel-out permit 10
 match ip address prefix-list DataChannel-out
 set as-path prepend 64555 64555 64555
 set community 64555:1001
!
 route-map VTun-out permit 20
 match ip address prefix-list DataChannel-out
!
!
line vty


Добавлю, что номера AS 64512 — 65535 выделены для частного использования («серые» номера AS).

zebra.conf на сервере в филиале:

[root@srv502gw-bgp-test /usr/local/etc/quagga]# cat zebra.conf!
! Zebra configuration saved from vty
!   2013/07/08 17:22:10
!
hostname srv502gw-bgp-test
password PaSSw0rd
enable password SuperPaSSw0rd
log file /var/log/zebra.log
log syslog
!
interface em0
 ip address 192.168.222.254/24
!
interface em1
 ip address 44.44.55.254/24
!
interface em2
 ip address 10.10.10.2/24
!
interface tun0
 ip address 172.16.0.2/24
!
interface lo0
!
ip forwarding
!
!
line vty
!

bgpd.conf на сервере в филиале:

[root@srv502gw-bgp-test /usr/local/etc/quagga]# cat bgpd.conf!
! Zebra configuration saved from vty
!   2013/07/08 17:46:22
!
hostname srv502gw-bgp-test
password PaSSw0rd
enable password SuperPaSSw0rd
log file /var/log/bgpd.log
!
router bgp 64556
 bgp router-id 192.168.222.254
 bgp log-neighbor-changes
 network 192.168.222.0/24
 redistribute connected
 redistribute static
 neighbor 10.10.10.1 remote-as 64555
 neighbor 10.10.10.1 weight 1500
 neighbor 10.10.10.1 route-map DataChannel-out out
 neighbor 172.16.0.1 remote-as 64555
 neighbor 172.16.0.1 weight 1000
 neighbor 172.16.0.1 route-map VTun-out out
!
ip prefix-list DataChannel-out seq 10 permit 192.168.222.0/24
!
route-map DataChannel-out permit 10
 match ip address prefix-list DataChannel-out
 set as-path prepend 64556 64556 64556
 set community 64556:1001
!
route-map VTun-out permit 20
 match ip address prefix-list DataChannel-out
!
line vty
!

Запуск и диагностика quagga

На обоих серверах запускаем quagga и watchquagga:
[root@srv501gw-bgp-test ~]# /usr/local/etc/rc.d/quagga start && /usr/local/etc/rc.d/watchquagga start
[root@srv502gw-bgp-test ~]# /usr/local/etc/rc.d/quagga start && /usr/local/etc/rc.d/watchquagga start

Проверяем:
[root@srv501gw-bgp-test ~]# tail /var/log/bgpd.log
...
2013/07/08 18:35:26 BGP: %ADJCHANGE: neighbor 172.16.0.2 Up
2013/07/08 18:35:36 BGP: %ADJCHANGE: neighbor 10.10.10.2 Up

[root@srv502gw-bgp-test ~]# tail /var/log/bgpd.log
...
2013/07/08 18:34:59 BGP: %ADJCHANGE: neighbor 172.16.0.1 Up
2013/07/08 18:35:09 BGP: %ADJCHANGE: neighbor 10.10.10.1 Up

Маршрутизация

На маршрутизаторе 1 (офис):
[root@srv501gw-bgp-test ~]# netstat -rn
Routing tables
Internet:
Destination            Gateway         Flags    Refs   Use      Netif    Expire
default                   44.44.44.1     UGS     0       95947   em1
10.10.10.0/24       link#3             U          0       5383     em2
10.10.10.1            link#3             UHS     0       603       lo0
127.0.0.1              link#5             UH       0       51340   lo0
172.16.0.1            link#6             UHS     0       1           lo0
172.16.0.2            link#6             UH       0       6604      tun0
192.168.111.254  link#1             UHS     0       336        lo0
192.168.222.0/24 10.10.10.2     UG1     0        0           em2
44.44.44.0/24       link#2             U          1       41594    em1
44.44.44.254        link#2             UHS     0       0            lo0

На маршрутизаторе 2 (филиал):
[root@srv502gw-bgp-test ~]# netstat -rn
Routing tables
Internet:
Destination           Gateway          Flags    Refs   Use      Netif    Expire
default                  10.10.10.1      UG1     0        0          em2
10.10.10.0/24       link#3             U         0         8398    em2
10.10.10.2            link#3             UHS    0         216      lo0
127.0.0.1              link#5             UH       0        2313    lo0
172.16.0.1            link#6             UH       0        8460    tun0
172.16.0.2            link#6             UHS     0        2          lo0
44.44.55.0/24       link#2             U          0        46500  em1
44.44.55.254        link#2             UHS     0        0          lo0

Как видим, маршрут по умолчанию на сервере в филиале направлен на шлюз 10.10.10.1 (сервер в офисе). При падении канала передачи данных (сетевой интерфейс em2) маршрут автоматически перестроится на 172.16.0.1


Литература:

5 июля 2013 г.

Шифрованный туннель на FreeBSD через vtun

VTun - простое и гибкое в настройке средство для настройки туннелей поверх TCP/IP сетей. Поддерживает шифрование, сжатие и шейпинг трафика.

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

Маршрутизатор в офисе:
FreeBSD 9.1 amd64
IP-адрес в публичной сети: 44.44.44.254
IP-адрес в локальной сети: 192.168.111.254

Маршрутизатор в филиале:
FreeBSD 9.1 amd64
IP-адрес в публичной сети: 44.44.55.254
IP-адрес в локальной сети: 192.168.222.254

Установка vtun

Перед установкой обновляем дерево портов, например, при помощи portsnap.
Опций для конфигурации vtun не предлагает, поэтому ставим сразу:
cd /usr/ports/net/vtun
[root@srv501gw-bgp-test /usr/ports/net/vtun]# make install clean

Конфигурация vtun 

Конфигурационный файл vtund.conf на маршрутизаторе в офисе:

options {
  port          5005;   # На каком порту будет слушать vtund
  # Syslog facility
  syslog        daemon;
  # Path to various programs
  ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
  firewall      /sbin/ipfw;
  ip              /sbin/ip;
}
# Опции по умолчанию
default {
        compress no; # Сжатие по умолчанию отключено
        speed 0;        # По умолчанию - не резать скорость (шейпинг трафика выключен)
}
Branch1 {
    type             tun; # Тип соединения (IP туннель)
    device          tun0; # Имя сетевого интерфейса
    persist          keep; # Восстанавливать соединение при обрыве связи
    stat              yes; # Статистика. Записывает данные в файл каждые 5 минут
    compress     lzo:9; # Тип и уровень сжатия (9 - максимум)
    encrypt        yes; # Шифровать соединение по методу blowfish128ecb (по умолчанию)
    passwd        Pa$$word; # Пароль для установки соединения
    proto           tcp; # Протокол tcp или udp
    keepalive     yes; # Поддерживать соединение "живым"
    up {
        ifconfig "%% 192.168.111.254 192.168.222.254 netmask 255.255.255.0
        route "add -net 192.168.222.0/24 192.168.222.254";
        };
    down {
        ifconfig "%% down";
        route "delete 192.168.222.0/24";
        };
}

Разрешаем запуск VTun в rc.conf

vtund_enable="YES"
vtund_flags="-s"


Конфигурационный файл vtund.conf на маршрутизаторе в филиале:

options {
  port          5005;
  # Syslog facility
  syslog        daemon;
  # Path to various programs
  ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
  firewall      /sbin/ipchains;
  ip              /sbin/ip;
}
# Default session options
default {
        compress no;
        speed 0;
}
Branch1 {
        type            tun;
        device         tun0;
        persist         keep;
        stat             yes;
        compress    lzo:9;
        encrypt       yes;
        passwd       Pa$$word;
        proto           tcp;
        keepalive     yes;
        up {
                ifconfig "%% 192.168.222.254 192.168.111.254 netmask 255.25
                route "add -net 192.168.111.0/24 192.168.111.254";
        };
        down {
                ifconfig "%% down";
                route "delete 192.168.111.0/24";
        };
}

Разрешаем запуск клиента VTun в rc.conf

vtunclient_enable="YES"
vtunclient_flags="-P 5005 -p Branch1 44.44.44.254"
vtund_enable="NO"

Запуск

На маршрутизаторе в офисе:
[root@srv501gw-bgp-test ~]# /usr/local/etc/rc.d/vtund start

На маршрутизаторе в филиале:
[root@srv502gw-bgp-test ~]# /usr/local/etc/rc.d/vtunclient start

Проверка работоспособности VTun

На маршрутизаторе в офисе:

[root@srv501gw-bgp-test ~]# netstat -an | grep 5005
tcp4       0      0 44.44.44.254.5005     44.44.55.254.59746    ESTABLISHED
tcp4       0      0 *.5005                 *.*                    LISTEN

[root@srv501gw-bgp-test ~]# ifconfig
...
tun0: flags=8051 metric 0 mtu 1500
        options=80000
        inet 192.168.111.254 --> 192.168.222.254 netmask 0xffffff00
        nd6 options=21
        Opened by PID 1210

[root@srv501gw-bgp-test ~]# ping 192.168.222.254
PING 192.168.222.254 (192.168.222.254): 56 data bytes
64 bytes from 192.168.222.254: icmp_seq=1 ttl=64 time=0.965 ms
64 bytes from 192.168.222.254: icmp_seq=2 ttl=64 time=1.002 ms
64 bytes from 192.168.222.254: icmp_seq=3 ttl=64 time=1.014 ms
64 bytes from 192.168.222.254: icmp_seq=4 ttl=64 time=0.830 ms
64 bytes from 192.168.222.254: icmp_seq=5 ttl=64 time=0.876 ms


На маршрутизаторе в филиале:

[root@srv502gw-bgp-test ~]# netstat -an | grep 5005
tcp4       0      0 44.44.55.254.59746    44.44.44.254.5005     ESTABLISHED

[root@srv502gw-bgp-test ~]# ifconfig
tun0: flags=8051 metric 0 mtu 1500
        options=80000
        inet 192.168.222.254 --> 192.168.111.254 netmask 0xffffff00
        inet6 fe80::250:56ff:fe84:6868%tun0 prefixlen 64 scopeid 0x6
        nd6 options=21
        Opened by PID 1170

[root@srv502gw-bgp-test ~]# ping 192.168.111.254
PING 192.168.111.254 (192.168.111.254): 56 data bytes
64 bytes from 192.168.111.254: icmp_seq=0 ttl=64 time=1.066 ms
64 bytes from 192.168.111.254: icmp_seq=1 ttl=64 time=0.819 ms
64 bytes from 192.168.111.254: icmp_seq=2 ttl=64 time=0.827 ms
64 bytes from 192.168.111.254: icmp_seq=3 ttl=64 time=0.857 ms
64 bytes from 192.168.111.254: icmp_seq=4 ttl=64 time=0.874 ms

2 июля 2013 г.

Блог сменил адрес

Блог сменил адрес с lehan604.blogspot.com на bsd.lehan.pw (со старого адреса настроен редирект).

Если кому интересно что за зона .pw - вам в википедию.