VPN на основе FreeBSD и vtun

В сети так много сайтов, объясняющих каждому, как престижно иметь в своем распоряжении VPN. Но ни один из них не публикует детального описания, как этого добиться. Побродив несколько дней по просторам интернета, но так и не найдя нормального описания процесса развертывания VPN, решил написать об этом сам.

Я буду использовать vtun, написаный Максимом Краснянским на основе пакета VPPP. Вы можете спросить, почему именно vtun. Ведь можно было использовать что-либо вроде PPP поверх SSH, IPSEC или GRE. Возможно, в ближайшее время я напишу о работе с IPSEC или OpenVPN. Главным достоинством vtun является простота в установке и настройке. Он поддерживает разнообразные типы туннелей IP, Ethernet, PPP, SLIP. В качестве туннеля можно использовать даже pipe. Для шифрования используется OpenSSl. Доступны алгоритмы blowfish с ключом в 128 бит или MD5 с ключом той же длины. Компрессия потока производится с помощью библиотек LZO или zlib. Следует отметить, что zlib работает только с tcp туннелями. Поддерживаются следующие операционные системы: Linux, Solaris, FreeBSD, NetBSD, OpenBSD и другие BSD клоны. В принципе, vtun должен работать на любой платформе, для которой есть универсальный драйвер tun/tap. Устройство tun используется для туннелирования IP фреймов, а tap для Ethernet фреймов. С помощью tun/tap пользовательские программы получают возможность самостоятельно обрабатывать IP пакеты. Для некоторых операционных систем необходимо перекомпилировать ядро с поддержкой tun/tap устройств. Vtun работает на основе клиент-серверной модели. Соответственно, для создания туннеля на одном из хостов демон vtun должен быть запущен как сервер, а на другом в роли клиента.

После запуска демон, выполняющий роль сервера, по умолчанию начинает слушать порт 5000. Если между клиентом и сервером находится брандмауэр, необходимо разрешить прохождение пакетов, адресованных на порт 5000. При попытке подсоединиться на этот порт происходит аутентификация клиента на основе пароля, записанного в конфигурационном файле /usr/local/etc/vtund.conf. Затем с помощью функции fork запускается еще один демон vtun, которому передается клиентское соединение. Новый демон будет существовать до тех пор, пока соединение не будет разорвано. В тоже время родительский демон продолжает ждать новых соединений. Это значит, что единственный демон может обслуживать множество одновременных подключений.

С помощью ключей командной строки можно указать другое местоположение конфигурационного файла. Это дает нам возможность запустить на одном хосте несколько демонов vtun, ожидающих соединений на разных портах. Каждый из этих демонов будет использовать собственные настройки. Соответственно, некоторые из этих демонов могут быть серверами, а другие клиентами.

Давайте представим, что у нас есть филиал, магазин и офис, использующие адреса из пространства частных сетей. Необходимо эти подразделения соединить с помощью VPN. Для этих целей мы будем использовать реальные ip адреса, выданные нам провайдером из сети 80.80.20.0. Для соединения сетей нам понадобятся три компьютера. На каждом из них будет по три сетевых интерфейса. Более подробно это показано в приведенной ниже таблице.

имя машины внутренняя подсеть внутренний интерфейс внешний интерфейс виртуальный интерфейс tun
офис vpn_office 192.168.30.0 192.168.30.251 ed0 80.80.20.2 ed1 192.168.0.2
филиал vpn_filial 192.168.20.0 192.168.20.251 ed0 80.80.20.1 xl0 192.168.0.1
магазин vpn_shop 192.168.40.0 192.168.40.251 wb0 80.80.20.3 fxp0 192.168.0.3

Схема соединения наших сетей выглядит так :

net_schema

А пока берем исходник библиотеки LZO. Если не удалось скачать, то берем дистрибутив здесь. Распаковываем и собираем.

# tar zxvf lzo-1.08.tar.gz
# cd lzo-1.08
# ./configure
# make
# make check
# make test
# make install

Скачиваем vtun. Конфигурируем его c указанием использовать библиотеку lzo.

# tar zxvf vtun-2.5.tar.gz
# cd vtun
# ./configure --with-lzo-headers=/usr/local/include/ --with-lzo-lib=/usr/local/lib

Случается, что команда ./configure завершается с ошибкой. Вероятнее всего это значит, что система не смогла обнаружить библиотеку lzo. Если Вам не удастся самостоятельно избавиться от этой ошибки, выполните команду:

# ./configure --disable-lzo

А затем, как положено, выполняем компиляцию и установку.

# make
# make install

Повторяем эти действия на каждой из трех машин. Если все прошло гладко, значит пришло время заняться конфигурированием каждой машины. В нашем случае машина vpn_office будет выполнять роль сервера, соответственно, vpn_filial и vpn_shop станут клиентами. Конфигурационный файл vtun находится в директории /usr/local/etc/vtund.conf.

Давайте посмотрим, из чего состоит конфигурационный файл хоста vpn_office.

options {
port 5000;                         # номер порта, используемого для соединения с клиентами
ifconfig /sbin/ifconfig;         # путь к программе ifconfig
route /sbin/route;              # путь к программе route
}
 
default {
compress lzo:9;               # если не удалось включить поддержку lzo, то  параметр должен принять значение compress no;
speed 0;                          # ограничения скорости соединения нет
}
 
# настройки, определенные в блоках options и default, относятся ко всем
# остальным блокам
 
filial {{                        # описываем клиента филиал
    pass secret;          # пароль соединения - слово secret
    type tun;               # тип IP туннеля tun
    proto udp;             # используется протокол UDP
    encr yes;              # включить шифрование
    keepalive yes;       # постоянно поддерживать соединение
 
# секция up описывает действия, выполняемые при удачном соединении
# конфигурируем виртуальный интерфейс с адресом 192.168.0.2
# и привязываем его к другому  виртуальному интерфейсу 192.168.0.1
# настраиваем маршрутизацию для сети 192.168.20.0/24 через интерфейс с адресом 192.168.0.1
 
up {
ifconfig "%% 192.168.0.2 192.168.0.1 netmask 255.255.255.255 mtu 1450 up";
route "add -net 192.168.20.0/24 192.168.0.1";
};
 
# секция down описывает действия, выполняемые при разрыве соединения
# удаляем виртуальный интерфейс tun
# разрушаем маршрутизацию для сети 192.168.20.0/24
 
down {
ifconfig "%% down";
route "delete 192.168.20.0";
};
}
 
shop {                      # описываем клиента магазин
    pass secret;         # пароль соединения - слово secret
    type tun;;             # тип IP туннеля
    proto udp;            # используется протокол UDP
    encr yes;             # включить шифрование
    keepalive yes;      # постоянно поддерживать соединение
 
# конфигурируем виртуальный интерфейс с адресом 192.168.0.2
# и привязываем его к другому виртуальному интерфейсу 192.168.0.3
# настраиваем маршрутизацию для сети 192.168.40.0/24 через интерфейс с адресом 192.168.0.3
 
up {
ifconfig "%% 192.168.0.2 192.168.0.3 netmask 255.255.255.255 mtu 1450 up";
route "add -net 192.168.40.0/24 192.168.0.3";
};
 
# описываем действия, выполняемые при разрыве соединения
# удаляем виртуальный интерфейс tun
# разрушаем маршрутизацию для сети 192.168.40.0/24
 
down {
ifconfig "%% down";
route "delete 192.168.40.0";
};
}

А вот это мы запишем в файл конфигурации хоста vpn_shop.

options {
port 5000;
ifconfig /sbin/ifconfig;
route /sbin/route;
}
 
default {
compress lzo:9;
speed 0;
}
 
shop {
    pass secret;
    type tun;
    proto udp;
    encr yes;
    keepalive yes;
 
up {
ifconfig "%% 192.168.0.3 192.168.0.2 netmask 255.255.255.255 mtu 1450 up";
route "add -net 192.168.30.0/24 192.168.0.2";
};
 
down {
ifconfig "%% down";
route "delete 192.168.30.0";
};
}

Ну и наконец, конфигурация хоста vpn_filial.

options {
port 5000;
ifconfig /sbin/ifconfig;
route /sbin/route;
}
 
default {
 
compress lzo:9;
speed 0;
}
 
filial {
    pass secret;
    type tun;
    proto udp;
    encr yes;
    keepalive yes;
 
up {
ifconfig "%% 192.168.0.1 192.168.0.2 netmask 255.255.255.255 mtu 1450 up";
route "add -net 192.168.30.0/24 192.168.0.2";
};
 
down {
ifconfig "%% down";
route "delete 192.168.30.0";
};
}

В связи с тем, что в файлах vtund.conf находится пароль соединения, доступ к ним должен иметь только пользователь root. После всех этих манипуляций можно запускать vtun. На машине vpn_office запускаем демон в режиме сервера.

vpn_office# vtund -s

На другой консоли смотрим на сообщения об ошибках.

vpn_office# tail -f /var/log/messages

Если ошибок не появилось, значит все у нас хорошо. Соответственно, на хостах vpn_shop и vpn_filial запускаем демоны в режиме клиента.

vpn_shop# vtund -p shop 80.80.20.2
vpn_filial# vtund -p filial 80.80.20.2

Снова ждем ошибок. Не дождавшись, смотрим, какие сетевые интерфейсы у нас подняты на каждой из машин. Больше всего нас интересуют интерфейсы vtun0 и vtun1. У Вас должны получиться примерно такие данные.

vpn_office# ifconfig -u
 
ed0: flags=8843 mtu 1500
	inet 192.168.30.251 netmask 0xffffff00 broadcast 192.168.30.255
	inet6 fe80::280:48ff:fedf:66f7%ed0 prefixlen 64 scopeid 0x1
	ether 00:80:48:df:66:f7
ed1: flags=8843 mtu 1500
	inet 80.80.20.2 netmask 0xffffff00 broadcast 80.80.20.255
	inet6 fe80::240:95ff:fe45:9ce2%ed1 prefixlen 64 scopeid 0x2
	ether 00:40:95:45:9c:e2
lo0: flags=8049 mtu 16384
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
	inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051 mtu 1450
	inet6 fe80::280:48ff:fedf:66f7%tun0 prefixlen 64 scopeid 0x8
	inet 192.168.0.2 --> 192.168.0.3 netmask 0xffffffff
	Opened by PID 1143
tun1: flags=8051 mtu 1450
	inet6 fe80::280:48ff:fedf:66f7%tun1 prefixlen 64 scopeid 0x9
	inet 192.168.0.2 --> 192.168.0.1 netmask 0xffffffff
	Opened by PID 1150
 
vpn_shop# ifconfig -u
wb0: flags=8843 mtu 1500
	inet 192.168.40.251 netmask 0xffffff00 broadcast 192.168.40.255
	inet6 fe80::280:48ff:feb6:435f%wb0 prefixlen 64 scopeid 0x1
	ether 00:80:48:b6:43:5f
	media: Ethernet autoselect (100baseTX)
	status: active
fxp0: flags=8843 mtu 1500
	inet 80.80.20.3 netmask 0xffffff00 broadcast 80.80.20.255
	inet6 fe80::202:b3ff:fe65:f47%fxp0 prefixlen 64 scopeid 0x2
	ether 00:02:b3:65:0f:47
	media: Ethernet autoselect (100baseTX)
	status: active
lo0: flags=8049 mtu 16384
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
	inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051 mtu 1450
	inet6 fe80::280:48ff:feb6:435f%tun0 prefixlen 64 scopeid 0x8
	inet 192.168.0.3 --> 192.168.0.2 netmask 0xffffffff
	Opened by PID 1101
 
vpn_filial#  ifconfig -u
ed0: flags=8843 mtu 1500
	inet 192.168.20.251 netmask 0xffffff00 broadcast 192.168.20.255
	inet6 fe80::280:48ff:fec7:c79b%ed0 prefixlen 64 scopeid 0x1
	ether 00:80:48:c7:c7:9b
xl0: flags=8843 mtu 1500
	options=3
	inet 80.80.20.1 netmask 0xffffff00 broadcast 80.80.20.255
	inet6 fe80::202:2eff:fef1:1726%xl0 prefixlen 64 scopeid 0x2
	ether 00:02:2e:f1:17:26
	media: Ethernet autoselect (100baseTX)
	status: active
lo0: flags=8049 mtu 16384
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
	inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051 mtu 1450
	inet6 fe80::280:48ff:fec7:c79b%tun0 prefixlen 64 scopeid 0x8
	inet 192.168.0.1 --> 192.168.0.2 netmask 0xffffffff
	Opened by PID 20966

Теперь можно попробовать, как работает наша VPN. Выполним команду ping на хостах vpn_filial и vpn_shop.

vpn_filial#  ping 192.168.30.251
PING 192.168.30.251 (192.168.30.251): 56 data bytes
64 bytes from 192.168.30.251: icmp_seq=0 ttl=64 time=5.788 ms
64 bytes from 192.168.30.251: icmp_seq=1 ttl=64 time=5.724 ms
64 bytes from 192.168.30.251: icmp_seq=2 ttl=64 time=5.683 ms
64 bytes from 192.168.30.251: icmp_seq=3 ttl=64 time=5.685 ms
 
--- 192.168.30.251 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 5.683/5.720/5.788/0.043 ms 
 
vpn_shop# ping 192.168.30.251
PING 192.168.30.251 (192.168.30.251): 56 data bytes
64 bytes from 192.168.30.251: icmp_seq=0 ttl=64 time=6.092 ms
64 bytes from 192.168.30.251: icmp_seq=1 ttl=64 time=5.785 ms
64 bytes from 192.168.30.251: icmp_seq=2 ttl=64 time=5.851 ms
64 bytes from 192.168.30.251: icmp_seq=3 ttl=64 time=5.826 ms
 
--- 192.168.30.251 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 5.785/5.888/6.092/0.120 ms

Судя по всему, туннель работает как положено. Теперь давайте проверим, как работает шифрование. Нужно проверить, что и в каком виде передается по интерфейсам tun0 — 192.168.0.2 и fxp0 — 80.80.20.3. Давайте начнем прослушивание этих интерфейсов. В тоже время с машины vpn_shop начинаем пинговать интерфейс 192.168.40.251.

vpn_office# tcpdump -i tun0 -lenx
13:33:14.573619 AF 2 84: 192.168.0.2 > 192.168.40.251: icmp: echo request
			 4500 0054 0cc3 0000 4001 c398 c0a8 0002
			 c0a8 28fb 0800 edcc c904 0000 ede7 cc3d
			 9505 0700 0809 0a0b 0c0d 0e0f 1011 1213
			 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
			 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
			 3435 3637
13:33:14.573665 AF 2 84: 192.168.40.251 > 192.168.0.2: icmp: echo reply
			 4500 0054 1b3f 0000 4001 b51c c0a8 28fb
			 c0a8 0002 0000 f5cc c904 0000 ede7 cc3d
			 9505 0700 0809 0a0b 0c0d 0e0f 1011 1213
			 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
			 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
			 3435 3637
13:33:15.583143 AF 2 84: 192.168.0.2 > 192.168.40.251: icmp: echo request
			 4500 0054 0cc6 0000 4001 c395 c0a8 0002
			 c0a8 28fb 0800 42a6 c904 0100 eee7 cc3d
			 3e2c 0700 0809 0a0b 0c0d 0e0f 1011 1213
			 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
			 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
			 3435 3637
13:33:15.583194 AF 2 84: 192.168.40.251 > 192.168.0.2: icmp: echo reply
			 4500 0054 1b43 0000 4001 b518 c0a8 28fb
			 c0a8 0002 0000 4aa6 c904 0100 eee7 cc3d
			 3e2c 0700 0809 0a0b 0c0d 0e0f 1011 1213
			 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
			 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
			 3435 3637

На предыдущем листинге явно видно содержимое тестовых icmp пакетов. А теперь посмотрите, в каком виде эти пакеты путешествуют по небезопасной сети 80.80.20.0/24.

vpn_office# tcpdump -i fxp0 -lenx
13:33:14.573441 0:40:95:45:9c:e2 0:2:b3:65:f:47 0800 140: 80.80.20.2.5000 > 80.80.20.3.1035: udp 98
			 4500 007e 0cc4 0000 4011 a506 5050 1402
			 5050 1403 1388 040b 006a f9e2 0060 7db0
			 f6ef dd81 4638 917a 5a80 7f48 87d7 7bc9
			 459f 97f0 b95a 95cf 87b1 29ce b2d7 8f50
			 228e 6b8f eafb 1f5d ae9d 7518 2085 2da9
			 8c85
13:33:14.574798 0:2:b3:65:f:47 0:40:95:45:9c:e2 0800 140: 80.80.20.3.1035 > 80.80.20.2.5000: udp 98
			 4500 007e 1b40 0000 4011 968a 5050 1403
			 5050 1402 040b 1388 006a 998c 0060 7db0
			 f6ef dd81 4638 5390 c84e 886e 466d ffcd
			 df10 9010 5995 fcdd b315 92fb 6a1d 8f50
			 228e 6b8f eafb 1f5d ae9d 7518 2085 2da9
			 8c85
13:33:15.582910 0:40:95:45:9c:e2 0:2:b3:65:f:47 0800 140: 80.80.20.2.5000 > 80.80.20.3.1035: udp 98
			 4500 007e 0cc7 0000 4011 a503 5050 1402
			 5050 1403 1388 040b 006a 28fd 0060 7db0
			 f6ef dd81 4638 3048 4e92 e692 1c3d 5fa3
			 c2a6 bc50 8fa5 79d3 c0c2 6537 c74b 1e84
			 b95e c8f8 6048 3d3c 4f33 32a4 25a2 2da9
			 8c85
13:33:15.584332 0:2:b3:65:f:47 0:40:95:45:9c:e2 0800 140: 80.80.20.3.1035 > 80.80.20.2.5000: udp 98
			 4500 007e 1b44 0000 4011 9686 5050 1403
			 5050 1402 040b 1388 006a cd92 0060 7db0
			 f6ef dd81 4638 f41d cb55 f37d 1229 dbb6
			 14f7 14d1 08e3 a204 5045 74a0 7807 1e84
			 b95e c8f8 6048 3d3c 4f33 32a4 25a2 2da9
			 8c85

Итак, мы создали шифрованный туннель между тремя частными сетями. Теперь каждая машина, находящаяся в любой из этих сетей, сможет общаться с любой машиной из другой сети. Главное — не забыть установить на всех машинах сети правильный адрес шлюза по умолчанию. Вот теперь можно отдохнуть.

Поиск файла по его временным атрибутам

Утилита find позволяет находить файлы по их временным атрибутам, таким как время создания, изменения или последнего доступа. Более того, можно комбинировать их или задавать временные интервалы для более точного поиска.

Например

  • Найти все папки измененные с конца обеда вчерашнего дня
$> find . -newerct 'yesterday 14:00' -and -type d -print
  • Найти и удалить все файлы старше двух недель
$> find . -not -newerBt '2 week ago' -and -type f -unlink
  • Нужно найти все файлы, которые были созданы с трех часов ночи позавчерашнего до обеда вчерашнего дня
$> find . -newerBt '2 day ago 03:00' -and -not -newerBt 'yesterday 13:00' -and -type f -print

Список ключей, ответственных за фильтрацию по временным атрибутам

-Bmin n
Истина если разница между временем создания файла и временем начала поиска, округленная до минуты в большую сторону, составляет n минут.

-Bnewer file
Смотрите описание -newerBm.

-Btime n[smhdw]
Если не определены никакие единицы времени, этот ключ вычисляется как истина если разница между временем создания файла и временем начала поиска, округленная до 24-часового периода в большую сторону, составляет n 24-часовых периодов.
Если определены единицы времени, этот ключ вычисляется как истина если разница между временем последнего изменения информации о файле и временем начала поиска составляет n единиц времени. Пожалуйста обратитесь к описанию ключа -atime для получения информации о поддерживаемых единицах времени.

-amin n
Истина если разница между временем последнего доступа к файлу и временем начала поиска, округленная до минуты в большую сторону, составляет n минут.

-anewer file
Смотрите описание -neweram.

-atime n[smhdw]
Если не определены никакие единицы времени, этот ключ вычисляется как истина если разница между временем последнего доступа к файлу и временем начала поиска, округленная до 24-часового периода в большую сторону, составляет n 24-часовых периодов.
Если определены единицы времени, этот ключ вычисляется как истина если разница между временем последнего доступа к файлу и временем начала поиска составляет точно n единиц времени. Возможные единицы времени:

  • s секунда
  • m минута (60 секунд)
  • h час (60 минут)
  • d день (24 часов)
  • w неделя (7 дней)

В аргументе ключа единицы времени можно комбинировать в произвольном порядке. Для примера «-atime -1h30m». Единицы времени используются только совместно с модификаторами «+» или «-».

-cmin n
Истина если разница между временем последнего изменения информации о файле и временем начала поиска, округленная до минуты в большую сторону, составляет n минут.

-cnewer file
Смотрите описание -newercm.

-ctime n[smhdw]
Если не определены никакие единицы времени, этот ключ вычисляется как истина если разница между временем последнего изменения информации о файле и временем начала поиска, округленная до 24-часового периода в большую сторону, составляет n 24-часовых периодов.
Если определены единицы времени, этот ключ вычисляется как истина если разница между временем последнего изменения информации о файле и временем начала поиска составляет n единиц времени. Пожалуйста обратитесь к описанию ключа -atime для получения информации о поддерживаемых единицах времени.

-mmin n
Истина если разница между временем последнего изменения файла и временем начала поиска, округленная до минуты в большую сторону, составляет n минут.

-mtime n[smhdw]
Если не определены никакие единицы времени, этот ключ вычисляется как истина если разница между временем последнего изменения файла и временем начала поиска, округленная до 24-часового периода в большую сторону, составляет n 24-часовых периодов.
Если определены единицы времени, этот ключ вычисляется как истина если разница между временем последнего изменения файла и временем начала поиска составляет n единиц времени. Пожалуйста обратитесь к описанию ключа -atime для получения информации о поддерживаемых единицах времени.

-newer file
-mnewer file

Истина если у текущего файла более позднее время изменения чем у указанного файла.

-newerXY file
Истина если у текущего файла более позднее время доступа (X=a), время создания (X=B) или время изменения (X=m) чем время доступа (Y=a), время создания (Y=B) или время изменения (Y=m) указанного файла (file). В дополнение, если Y=t то file трактуется как время, заданное в одном из описанных в cvs(1) форматов. Отметьте, что -newermm эквивалентен -newer.

Выдержка из man для cvs(1)
Поддерживается множество вариантов форматов для описания даты, в частности ISO и Интернет. В случае, если временная зона в дате не указана явным образом, она трактуется в местной временной зоне. Примеры допустимых форматов:

  • 1 month ago
  • 2 hours ago
  • 400000 seconds ago
  • last year
  • last Monday
  • yesterday
  • a fortnight ago
  • 3/31/92 10:00:07 PST
  • January 23, 1987 10:05pm
  • 22:00 GMT

10 трюков в командной строке bash

1. Простой способ перехватить вывод и ошибки

Хотите направить stdout и stderr в один файл?

command &> file

Может вы разбираетесь в некой программе при помощи strace, и желали бы видеть системные вызовы вместе с ошибками программы?

strace badapp &> errors_and_output

Плюсы: легко запоминается, и проще чем «послать ошибки на вывод, а затем всё это в файл».
Совместимость: любой линукс.

2. Распараллеливание циклов

Почти любому администратору знакома мощь циклов — как сделать что-либо для одного, сотни или тысячи пользователей, файлов, машин, процессов, или чего угодно. Большинство строят циклы последовательно, так что каждое задание завершается перед стартом следующего. Но можно посылать каждое задание в фон, и не ждать его завершения:

for HOST in $(< ListOfHosts); do ssh $HOSTsudo apt-get update& done

Может вам нужна куча ssh-туннелей одновременно:

for HOST in $(< ListOfHosts); do ssh -C -N -R 80:localhost:80 $HOST & done

Иногда вы не хотите видеть вывод сразу — в этом случае, сохраните по лог-файлу на каждой машине, а с помощью другого цикла потом их соберите.

Плюсы: сберегает метрическую туеву хучу (2/3 имперской туевой хучи) времени ожидания завершения.
Совместимость: любой линукс.
Минусы: у баша должны быть ограничения на количество одновременных задач, но пока автор (и переводчик) в них не упёрся.

3. Ловля утечек памяти через крон

Утечки памяти в линуксе нечасты, но бывают, особенно с бета-дистрибутивами или самодельным софтом. Часто выявить программу с подтёком не так-то просто. В линуксе есть программа Out-Of-Memory, позволяющая отыскивать и убивать такие процессы, но пока она сработает, система уже может начать сильно тормозить — настолько, что вы теряете терпение и перезагружаетесь.

Обычный способ узнать потреблении памяти программой это запуск top (или его графического эквивалента, наподобие System Monitor), и проверка Размера Резидентной Части (Res или RSS) интересующих процессов (память, отведённая программой, вам не нужна — утечки происходят от использования, а не от отведения, и программа может отвести (allocate) кучу памяти без вреда для системы). Большинство граждан не в курсе, что top можно запускать пакетно, что означает, что можно использовать cron и top для создания простого отчёта об использовании программой памяти:

  • запустите top
  • кнопками < и > добейтесь сортировки процессов по RSS (размер резидентной части)
  • нажмите W для записи конфигурации в файл
  • добавьте крон-задачу:
  • crontab - <<< '*/15 * * * * top -n 1 -b'

    И каждые 15 минут будете получать письмо с выводом топа.

    Плюсы: куда как проще чем ставить софт наподобие SAR.
    Совместимость: любой линукс.
    Минусы: некоторые ограничения на количество одновременных задач.

    4. stdin прямо из командной стоки

    Не поняли, что это была за фигня (<<<)? Баш позволяет слать процессам стандартный ввод прямо из командной стоки.

    Плюсы: позволяет писать команды с командной стоки, даже для альтернативно дружественных программ, которые требуют ВСЁ со стандартного ввода. [Грозит кулаком MySQL-ю].
    Совместимость: bash 3 и новее.
    Минусы: всё ещё немало систем с bash 2.

    5. Установить первичный пароль, который надо поменять

    Многие организации имеют хорошие и надёжные политики паролей. Пароли хранятся на виндозных машинах. Линукс либо не не покрывается политикой, либо политика не соблюдается — люди не в курсе авторизации под линукс (большинство граждан не понимают PAM, а линуксовые админы часто не осознают, что линукс может чудесно авторизоваться через Active Directory), и было время, что разработчики OpenSSH не любили PAM (это с тех пор поменялось).

    Поставить пароль, который должен быть поменян при первом логине:

    umask u=rw,go=
    openssl rand -base64 6 | tee -a PasswordFile | passwd –stdin joe
    chage -d 0 joe

    Пароль сохранён в файл PasswordFile, который доступен для четния только под своим акаунтом. После этого сообщите начальный пароль пользователю по надёжному каналу, вроде телефона или зашифрованного письма (Переводчику приходилось встречать систему, при которой начальный пароль высылался по обычному емэйлу. Пикантность была в том, что это был не фейсбук и не одноклассники. Это был онлайн-банк.)

    Плюсы: пользователи не будут с начальным паролем бесконечно.
    Совместимость: любой линукс с обновлённым OpenSSH (если ваши пользователи заходят в первый раз по SSH). РедХат утверждает, что это всё ещё не работает в RHEL 3/4, но после приложения их обновлений, всё хорошо.
    Минусы: нет.

    6. Простое добавление публичного ключа на удалённый хост

    Для логина но новый хост по ключу надо сначала на этот хост записать публичную часть ключа. Конечно, это можно делать вручную, но вскоре это надоедает (и почему у ssh нет authorized_keys.d…), а ведь для этого есть специальная утилита:

    ssh-copy-id -i .ssh/id_rsa.pub hostname

    Введите пароль последний раз, ssh скажет:

    Now try logging into the machine, with “ssh ‘hostname’”, and check in:

    .ssh/authorized_keys

    to make sure we haven’t added extra keys that you weren’t expecting.

    Попробуйте. До свидания, пароли!

    7. Распаковка RPM без дополнительного софта

    На дебиано-подобных дистрибутивах это не проблема, потому что .deb файлы есть просто .ar архивы. Каждое руководство по РедХату упоминает rpm2cpio (идёт по умолчанию с rpm), но если честно, я не способен запомнить синтаксис cpio, античный формат, сейчас использующийся только, мм, пожалуй, только рпм-ом.

    Эта команда ставит пакет во временную директорию, но не меняет RPM базу (только во временной диркетории, которую вы потом сотрёте). Поскольку в ней нет больше ничего, мы запрещаем зависимости и скрипты.

    mkdir /tmp/deleteme
     
    rpm -ivh –root /tmp/deleteme –nodeps –noscripts package.rpm

    8. Изменился ли файл с момента поставки

    Это простой способ узнать, не менялся ли файл из пакета. Сперва определите пакет, в который входит файл:

    dpkg -S /etc/foo/foo.conf
     
    rpm -qf /etc/foo/foo.conf

    Потом разверните оригинальный пакет при помощи tar (DPKg) или трюка с rpm, данного выше (RPM), и запустите:

    diff /etc/foo/foo.conf /tmp/deleteme/etc/foo/foo.conf

    И найдите разницу.

    Плюсы: быстрое нахождение плохих конфиг-файлов (strace тут тоже может пригодиться)
    Совместимость: любой линукс.
    Минусы: у вас остаётся больше времени на работе, чтобы читать Digg.

    9. — Первым делом отключите связь… Ало? ало? идиоты!

    Ковыряетесь в файрволе удалённо? Нервно как-то, правда? Не то нажал, и связь потеряна.

    Почему бы не откатить ошибку? Зарядите откат того, что вы собираетесь менять.

    at now + 5 minutes <<< 'cp /etc/ssh/sshd_config.old /etc/ssh/sshd_config; service sshd restart'

    Если ошибётесь, процесс выполнится и восстановит установки. А если не ошибётесь, запустите atq, и atrm <номер задачи> для удаления.

    Плюсы: прикрывает задницу на случай ошибки.
    Совместимость: любой линукс, в котором разрешён at, а он обычно да.
    Минусы: помнить, что это надо сделать перед рискованным действием.

    10. Открыт ли порт

    Хотите проверить, запущен ли сетевой сервис? Netcat с опцией -w (сколько ждать) будет полезен:

    nc -w 3 server ssh <<< ' '

    Соединиться на ssh порт на хосте по имени server, ждать 3 секунды перед тем, как послать, мм, ничего, и закрыть соединение. Был ли порт открыт, будет отражено в статусе nc.

    if nc -w 3 localhost 22 <<< ''&> /dev/null
    then
    echo 'Port is open'
    else
    echo 'Port is closed'
    fi

    Источник

    Коды ошибок удаленного доступа в Windows

    600 PENDING (Операция не завершена.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    601 ERROR_INVALID_PORT_HANDLE (Обнаружен неверный индекс порта.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    602 ERROR_PORT_ALREADY_OPEN (Указанный порт уже открыт.)
    COM-порт, который должен быть использован сетевым соединением уже используетсядругим активным сетевым соединением или процессом (например, программой мониторинга телефонной линии, такой как факс-программой). Завершите работу с приложением, блокирующим COM-порт.

    603 ERROR_BUFFER_TOO_SMALL (Буфер вызывающей программы слишком мал.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    604 ERROR_WRONG_INFO_SPECIFIED (Была указана некорректная информация.)
    Возможно, файл телефонной книги удаленного доступа и текущая конфигурация Удаленного Доступа к Сети несовместимы. Если вы заменили коммуникационное оборудование (последовательный порт или модем), проверьте конфигурацию Удаленного Доступа к Сети.

    605 ERROR_CANNOT_SET_PORT_INFO (Информация порта не может быть установлена.)
    Возможно, файл телефонной книги удаленного доступа и текущая конфигурация Удаленного Доступа к Сети несовместимы. Если вы заменили коммуникационное оборудование (последовательный порт или модем), проверьте конфигурацию Удаленного Доступа к Сети. Если эта ошибка будет возникать в дальнейшем, удалите и создайте заново удаленное соединение к сети.

    606 ERROR_PORT_NOT_CONNECTED (Указанный порт не подключен.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    607 ERROR_EVENT_INVALID (Обнаружено неверное событие.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    608 ERROR_DEVICE_DOES_NOT_EXIST (Указанное устройство не существует.)
    Возможно, файл телефонной книги удаленного доступа и текущая конфигурация Удаленного Доступа к Сети несовместимы. Если вы заменили коммуникационное оборудование (последовательный порт или модем), проверьте конфигурацию Удаленного Доступа к Сети. Если эта ошибка будет возникать в дальнейшем, удалите и создайте заново удаленное соединение к сети.

    609 ERROR_DEVICETYPE_DOES_NOT_EXIST (Указанный тип устройства не существует.)
    Возможно, файл телефонной книги удаленного доступа и текущая конфигурация Удаленного Доступа к Сети несовместимы. Если вы заменили коммуникационное оборудование (последовательный порт или модем), проверьте конфигурацию Удаленного Доступа к Сети. Если эта ошибка будет возникать в дальнейшем, удалите и создайте заново удаленное соединение к сети.

    610 ERROR_BUFFER_INVALID (Был указан неверный буфер.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    611 ERROR_ROUTE_NOT_AVAILABLE (Указанный маршрут недоступен.)
    Вероятно, конфигурация сети неверна. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    612 ERROR_ROUTE_NOT_ALLOCATED (Указанный маршрут не локализован.)
    Вероятно, конфигурация сети неверна. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу. Эта ошибка также может произойти, если ваш компьютеру не хватает рабочих ресурсов.

    613 ERROR_INVALID_COMPRESSION SPECIFIED (Указано неверное сжатие.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    614 ERROR_OUT_OF_BUFFERS (Доступный буфер недостаточен.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    615 ERROR_PORT_NOT_FOUND (Указанный порт не найден.)
    Возможно, файл телефонной книги удаленного доступа и текущая конфигурация Удаленного Доступа к Сети несовместимы. Если вы заменили коммуникационное оборудование (последовательный порт или модем), проверьте конфигурацию Удаленного Доступа к Сети. Если эта ошибка будет возникать в дальнейшем, удалите и создайте заново удаленное соединение к сети.

    616 ERROR_ASYNC_REQUEST_PENDING (Асинхронный запрос не завершен.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    617 ERROR_ALREADY_DISCONNECTING (Модем уже отключен.)
    Дождитесь, пока Удаленный Доступ к Сети завершит соединение

    618 ERROR_PORT_NOT_OPEN (Указанный порт не открыт.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.)

    619 ERROR_PORT_DISCONNECTED (Указанный порт не подключен.)
    Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    620 ERROR_NO_ENDPOINTS (Конечная точка не может быть определена.)
    Вероятно, конфигурация сети неверна. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    621 ERROR_CANNOT_OPEN_PHONEBOOK (Система не смогла открыть телефонную книгу.)
    Удаленный Доступ к Сети использует файл Rasphone.pbk, находящийся в директории \System32\Ras. Убедитесь, что файл находится в этой директории, после чего перезапустите Удаленный Доступ к Сети

    622 ERROR_CANNOT_LOAD_PHONEBOOK (Система не смогла загрузить телефонную книгу.)
    Удаленный Доступ к Сети использует файл Rasphone.pbk, находящийся в директории \System32\Ras. Убедитесь, что файл находится в этой директории, после чего перезапустите Удаленный Доступ к Сети

    623 ERROR_CANNOT_FIND_PHONEBOOK_ENTRY (Система не смогла найти запись в телефонной книге для данного подключения.)
    Удаленный Доступ к Сети нашел телефонную книгу, но не может найти запись, соответствующую данному подключению. Эта ошибка не будет происходить если только другое приложение не использует телефонную книгу Удаленного Доступа к Сети и не укажет неверную запись подключения.

    624 ERROR_CANNOT_WRITE_PHONEBOOK (Система не смогла обновить файл телефонной книги.)
    Удаленный Доступ к Сети использует файл Rasphone.pbk, находящийся в директории \System32\Ras. Убедитесь, что ваш диск не переполнен и у вас есть права для изменения этого файла.

    625 ERROR_CORRUPT_PHONEBOOK (Система нашла в телефонной книге неверную информацию.)
    Файл телефонной книги Rasphone.pbk может быть поврежден. Удалите этот файл из директории \System32\Ras, после чего перезапустите Удаленный Доступ к Сети для того чтобы создать новую телефонную книгу.

    626 ERROR_CANNOT_LOAD_STRING (Строка не может быть загружена.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    627 ERROR_KEY_NOT_FOUND (Ключ не может быть найден.)
    Возможно, один из конфигурационных файлов Удаленного Доступа к Сети содержит неверную информацию. Если вы используете модем, не поддерживаемый вашей версией Windows, установите поддерживаемый модем.

    628 ERROR_DISCONNECTION (Подключение прервано.)
    Если это подключение по телефонной линии, попробуйте передозвониться. Если вы продолжаете получать это сообщение, понизьте начальную скорость модема и отключите дополнительные настройки модема. Если это подключение к виртуальной частной сети (VPN), в доступе может быть отказано по причине политики удаленного доступа, либо по иным причинам. Обратитесь в службу техподдержки.

    629 ERROR_REMOTE_DISCONNECTION (Подключение прервано удаленным компьютером.)
    Соединение разорвано по одной из следующих причин:
    * Неисправимая ошибка телефонной линии.
    * Шумы в линии.
    * Отключение системным администратором.
    * Неудавшаяся попытка соединения с модемом сервера удаленного доступа на выбранной скорости.

    Для того чтобы заново установить соединение, нажмите “Перенабрать”. Вы также можете активировать автоматический передозвон в разделе Свойства для данного соединения. Если эта ошибка будет возникать в дальнейшем, понизьте скорость подключения модема, после чего попробуйте передозвониться.
    Вы можете попробовать подключиться к другому серверу, для того чтобы определить, не связана ли эта проблема конкретно с севером, на который вы пытаетесь дозвониться. Также, вы может попробовать подключиться к своему серверу с другой телефонной линии.)
    После установки Windows 98 Second Edition перестанет работать 128-битное шифрование данных, и при попытке установить соединение удаленного доступа, использующее 128-битное шифрование, будет появлятьсясообщение об ошибке 629. Если вы попробуете установить (или переустановить) 128-битную версию обновления Windows 98 Dial-Up Networking Security Upgrade (Msnt128.exe), у вас ничего не получится.
    При попытке установки обновления появится диалоговое окно 128 bit encryption for Dial-Up Networking (Not for Export), а после нажатия кнопки ОК обновление будет прекращено. Причина этого кроется в том, что Windows 98 Second Edition включает в себя новую версию 40-битных файлов Dial-up Networking, которые замещают установленные ранее 128-битную версию. Рабочую версию 128-bit Dial-up Networking Security Upgrade для Win98 SE поищите на http://www.microsoft.com.

    630 ERROR_HARDWARE_FAILURE (Модем отключен из-за аппаратной неисправности.)
    Соединение разорвано по одной из следующих причин:
    * В вашем модеме (или в другом коммуникационном оборудовании) произошла неисправимая ошибка.
    * В вашем коммуникационном порту произошла неисправимая ошибка.
    * Кабель вашего модема отключен.

    Для диагностики и решения проблемы проделайте следующее:
    * Убедитесь, что ваш модем включен и кабель подключен в гнездо LINE модема.
    * Убедитесь, что ваш модем функционирует правильно.
    Эта ошибка может возникать в тех случаях, когда модем пытается использовать только что найденный COM-порт, установленный при загрузке Windows. Для устранения ошибки измените соответствующие свойства соединения удаленного доступа. Ошибка может также возникать по вине некоторых программ, автоматически запускаемых при загрузке системы.

    631 ERROR_USER_DISCONNECTION (Пользователь отключил модем.)
    Из-за события, произошедшего на вашем компьютере соединение было разорвано. Перезвоните.

    632 ERROR_INVALID_SIZE (Определен неверный размер структуры.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    633 ERROR_PORT_NOT_AVAILABLE (Модем уже используется или не сконфигурирован для исходящих звонков.)
    Если это подключение по телефонной линии, COM-порт, который должен быть использован сетевым соединением уже используется другим другим активным сетевым соединением или процессом (например, программой мониторинга телефонной линии, такой как факс-программой). Завершите работу с приложением, блокирующим COM-порт.
    Если это подключение к виртуальной частной сети (VPN), Устройство VPN, которое должно быть использовано сетью, не может быть открыто.

    634 ERROR_CANNOT_PROJECT_CLIENT (Ваш компьютер не может быть зарегистрирован в удаленной сети.)
    Сервер удаленного доступа не может зарегистрировать имя вашего компьютера в сети. Чаще такое возможно с протоколом NetBIOS, однако, также может происходить с TCP/IP или IPX протоколами. Обычно, это происходит в случае, если адрес уже используется в сети.

    635 ERROR_UNKNOWN (Неизвестная ошибка.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    636 ERROR_WRONG_DEVICE_ATTACHED (Устройство, подключенное к порту, отличается от ожидаемого.)
    Возможно, ваша аппаратная конфигурация и настройки конфигурации для вашего подключения несовместимы друг с другом. Если вы заменили коммуникационное оборудование (последовательный порт или модем), проверьте конфигурацию Удаленного Доступа к Сети.

    637 ERROR_BAD_STRING (Обнаруженная строка не может быть конвертирована.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    638 ERROR_REQUEST_TIMEOUT (Истекло время запроса.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    639 ERROR_CANNOT_GET_LANA (Асинхронная сеть недоступна.)
    Возможно, ваша сеть NetBIOS неверно сконфигурирована. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    640 ERROR_NETBIOS_ERROR (Произошла ошибка в NetBIOS.)
    Модем не может установить соединение на указанной скорости. Понизьте начальную скорость модема и перезвоните. Также, попробуйте отключить аппаратное и программное сжатие. Если установить соединение все-таки не удается, попробуйте добавить NWLink IPX/SPX/NetBIOS Compatible Transport Protocol.

    643 ERROR_SERVER_GENERAL_NET_FAILURE (Сетевой адаптер сервера неисправен.)
    Сообщите об ошибке в службу техподдержки.

    645 ERROR_AUTH_INTERNAL (Внутренняя ошибка аутентификации.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу. (Обычно подобное сообщение вызвано тем, что в настройках соединения на вкладке “Безопасность” установлена опция “Использовать безопасный пароль”. Отключите ее.

    650 ERROR_SERVER_NOT_RESPONDING (Сервер удаленного доступа не отвечает.)
    Эту проблему можно обойти, включив запуск окна терминала:
    0. Откройте папку удаленного доступа
    1. Правой кнопкой щелкните по выбранному соединению и выберите Properties в открывшемся меню
    2. На закладке General нажмите кнопку Configure
    3. Перейдите на закладку Options
    4. Поставьте галочку в пункте Bring up terminal window after dialing
    Теперь после установки соединения будет появляться окно теминала. Для его закрытия просто нажимайте Continue.

    Еще вариант ошибки 650

    Как правило, такая ошибка появляется в тех случаях, когда ваш провайдер перегружен и не может выделить вам свободный IP-адрес.
    Ошибку может вызывать одно из перечисленного ниже:
    * Сервер удаленного доступа не запущен. Обратитесь к вашему системному администратору для того чтобы убедиться, что сервер запущен.
    * Линия может быть слишком зашумлена, либо вашему модему не удалось корректно установить связь с модемом сервера удаленного доступа на выбранной скорости. По обоим этим причинам, понизьте начальную скорость (bps) модема, после чего перезвоните.
    * Проверьте Список Совместимого Оборудования чтобы убедиться, что ваш модем там указан. Самый современный список поддерживаемых модемов находится на сайте Microsoft. Если ваш модем есть в списке, свяжитесь с производителем модема для обновления драйверов.
    * Возможно, кабель модема должен быть заменен.
    * Возможно, неверны аутентификационные настройки данного подключения.
    * Возможно, на сервере удаленного доступа одновременно включены программное и аппаратное сжатие. Обычно, на серверах удаленного доступа включено программное сжатие, а аппаратное отключено.

    651 ERROR_FROM_DEVICE (Модем сообщил об ошибке.)
    Ваш модем (либо другое устройство) сообщило об ошибке.
    Если вы подключаетесь по телефонной линии и используете поддерживаемый внешний модем, выключите и затем включите модем. Закройте и снова запустите Удаленный Доступ к Сети, после чего перезвоните.
    Если это подключение к виртуальной частной сети (VPN), вы, возможно, неверно указали адрес TCP/IP в конфигурации сети, либо сервер, к которому вы пытаетесь подключиться, может быть недоступен.

    665 ERROR_PORT_NOT_CONFIGURED (Модем неправильно сконфигурирован.)
    Если устройство уже используется другим подключением, прервите то подключение. Перенастройте подключение для использования другого устройства.

    666 ERROR_DEVICE_NOT_READY (Модем не функционирует.)
    Ваш модем (либо другое устройство) не отвечает по одной из следующих причин:
    * Внешний модем выключен.
    * Модем ненадежно подключен к компьютеру. Убедитесь, что кабель надежно подключен как к модему, так и к компьютеру.
    * Последовательный кабель не соответствует требованиям Удаленного Доступа к Сети.
    * Модем испытывает аппаратные проблемы. Выключите модем, подождите 20 секунд, и включите модем.

    667 ERROR_READING_INI_FILE (Системе не удается прочесть .INI-файл медиа.)
    Возможно, один из конфигурационных файлов Удаленного Доступа к Сети содержит недействительную информацию.

    668 ERROR_NO_CONNECTION (Соединение было прервано.)
    Передозвонитесь. Если вы будете продолжать получать это сообщение, отмените начальную скорость модема и оключите дополнительные параметры модема, такие как программное сжатие.

    676 ERROR_LINE_BUSY (Телефонная линия занята.)
    Перенаберите номер. Если это подключение к виртуальной частной сети (VPN), проверьте имя или IP адрес сервера, к которому вы подключаетесь и попробуйте подключиться снова.

    677 ERROR_VOICE_ANSWER (Вместо модема ответил человек.) A voice line is answering instead of a modem. (Модем или другое устройство не снимает телефонную трубку. Проверьте номер и перенаберите его снова. Если это подключение к виртуальной частной сети (VPN), проверьте имя или IP адрес сервера, к которому вы подключаетесь и попробуйте подключиться снова.

    678 ERROR_NO_ANSWER (Отсутствует ответ.)
    Модем или другое устройство не снимает телефонную трубку. Проверьте номер и перенаберите его снова. Если это подключение к виртуальной частной сети (VPN), проверьте имя или IP адрес сервера, к которому вы подключаетесь и попробуйте подключиться снова. Также, убедитесь, что телефонная линия подключена в правильное гнездо модема.

    679 ERROR_NO_CARRIER (Система не смогла определить несущую.)
    Модем или другое устройство не снимает телефонную трубку. Многие модемы выдают эту ошибку, если удаленный модем не снимает трубку. Проверьте номер и перенаберите его снова. Если это подключение к виртуальной частной сети (VPN), проверьте имя или IP адрес сервера, к которому вы подключаетесь и попробуйте подключиться снова. Если это соединение PPPoE проверьте правильность ввода service-name.

    680 ERROR_NO_DIALTONE (Отсутствует гудок в линии.)
    Телефонная линия может быть неверно подключена к вашему модему, либо отключена от него. Возможно, перед номером необходимо установить префикс, например 9, для выхода на внешнюю линию, либо номер мог оказаться слишком длинным. Убедитесь, что телефонная линия подключена в правильное гнездо модема. Также, убедитесь, что для подключения к внешней линии вы указали специальные номера доступа, например префикс 9 с последующей запятой. Проверьте, отсутствует ли на вашей телефонной линии прерывистый тональный сигнал, соответствующий сообщению автоответчика. Убедитесь, что в поле набираемого номера нет лишних символов (тире и т.п.). Многие модемы не могут набрать более 34 цифр. После введения номера, превышающего эту длинну, эти модемы разбивают его на две, либо более строк, из которых набирают только первую (незаконченную). Это происходит модемами USRobotics и Multitech.

    681 ERROR_IN_COMMAND (Модем сообщает об общей ошибке.)
    Возможно, один из конфигурационных файлов Удаленного Доступа к Сети содержит недействительную информацию.

    691 ERROR_AUTHENTICATION_FAILURE (В доступе отказано по причине недействительности имени пользователя и/или пароля.)
    Ваша учетная запись не зарегистрирована на указанном домене. Вы ввели неправильный логин/пароль. Проверьте правильность указанных данных.
    Если вы забыли логин/пароль, обратитесь в службу техподдержки.

    692 ERROR_PORT_OR_DEVICE (Аппаратная неисправность модема.)
    Ваш модем (либо другое устройство) не отвечает по следующей причине: Модем выключен, функционирует не правильно, либо ненадежно подключен к компьютеру.
    Для решения этой проблемы проделайте следующее:
    * Сбросьте ваш модем. (Вкл/выкл для внешнего модема и перезагрузитесь, если модем внутренний)
    * Если вы используете внешний модем, убедитесь, что вы используете нужный последовательный кабель, и что он недежно подключен. Вы можете попробовать заменить модемный кабель. Также, если для поключения к последовательному порту вы используете адаптер, убедитесь что адаптер правильно подключен к модему. Например 9-25 контактный адаптер для мыши будет неправильно работать с последовательным сетевым подключением.
    * Протестируйте последовательный порт или мультипортовый адаптер, при необходимости замените их.
    * Убедитесь, что параметры подтверждения установления связи содема указаны верно. За информацией о параметрах подтверждения установления связи, возможных для вашего модема, обратитесь к документации модема.
    * Если ваш модем не поддерживается Удаленным Доступом к Сети, переключитесь на поддерживаемый модем.

    699 ERROR_RECV_BUF_FULL (Ответ модема вызвал переполнение буфера.)
    Произошла внутренняя ошибка. Перегрузите компьютер для того чтобы убедиться, что все недавние изменения конфигурации вступили в силу.

    701 ERROR_UNSUPPORTED_BPS (Модем перешел на скорость подключения, не поддерживаемую COM-драйвером.)
    Ваш модем пытается подключиться на скорости, не поддерживаемой последовательным портом. Сбросьте начальную скорость подключения до следующей низшей стандартной отметки.

    710 ERROR_OVERRUN (Во время общения с модемом была обнаружена ошибка последовательного переполнения.)
    Понизьте начальную скорость модема (бит/сек.) и перезвоните.

    712 ERROR_BIPLEX_PORT_NOT_AVAILABLE (Инициализирован двусторонний порт. Подождите несколько секунд и перенаберите номер.)
    Эта ошибка может возникать при подключении, сконфигурированном для приема звонков (двунаправленное подключение). Ошибка происходит когда вы производите исходящий звонок одновременно с инициализацией сервером подключения для приема входящих звонков. Удаленный Доступ к Сети произведет повторный звонок через несколько секунд.

    715 ERROR_TOO_MANY_LINE_ERRORS (Из-за плохого качества телефонной линии происходит слишком много ошибок.)
    Во время аутентификации в телефонной линии происходит слишком много асинхронных ошибок. Попробуйте еще раз. Если эта проблема будет возникать в дальнейшем, понизьте скорость передачи и отключите все установленные параметры модема. Проверьте качество телефонной линии.

    718 ERROR_PPP_TIMEOUT (Время ожидания ответа удаленного компьютера истекло.)
    PPP-диалог начался, однако был завершен из-за отсутствия ответа удаленного компьютера в течение определенного времени. Это могло быть вызвано низким качеством линии. Возможно, вследствие проблем на сервере вам не удалось назначить IP-адрес. В большинстве случаев для устранения ошибки просто перезвоните.

    719 ERROR_PPP_REMOTE_TERMINATED (Подключение было прервано удаленным компьютером.)
    PPP-диалог начался, однако был завершен по требованию удаленного компьютера. Это может быть вызвано плохим качеством телефонной линии. Перезвоните.

    720 ERROR_PPP_NO_PROTOCOLS_CONFIGURED (Попытка подключения не удалась по причине конфликта протоколов управления PPP между вашим компьютером и удаленным компьютером.)
    Отсутствуют сетевые протоколы управления PPP, сконфигурированные для вашего соединения, либо соответствующий сетевой протокол не был установлен. Проверьте, что в вашей ОС установлены все необходимые компоненты для работы с сетью.

    721 ERROR_PPP_NO_RESPONSE (Удаленный компьютер не отвечает.)
    Произошла попытка начать PPP-диалог, однако удаленный компьютер не отвечает. Данная ошибка возникает если сервер не поддерживает PPP (Windows NT 3.51 и более ранние серверы удаленного доступа, либо SLIP сервер). Данная ошибка также может возникать, если сервер требует регистрацию с использованием окна терминала перед запуском PPP.

    723 ERROR_PHONE_NUMBER_TOO_LONG (Слишком длинный номер телефона)
    Слишком длинный номер телефона, включая префикс и суффикс.

    800 Сервер недоступен
    Вариантов несколько:
    — стоит файрволл, который неправильно настроен;
    — неправильно указан адрес VPN сервера PPTP;
    — в данный момент по непонятной причине нет физического доступа к впн серверу


    На английском:
    List of Error Codes for Dial-up Connections or VPN Connections

    SUMMARY
    This article lists the error codes that you may receive when you use Windows 2000, Windows XP, or Windows Server 2003 as a client computer to make a dial-up connection or a VPN connection.

    Note Error codes with numbers higher than 900 will only be seen if you are trying to connect to a Routing and Remote Access Server that is running Windows 2000 or later.
    MORE INFORMATION
    The following list contains the error codes for dial-up connections or VPN connections:

    600
    An operation is pending.

    601
    The port handle is invalid.

    602
    The port is already open.

    603
    Caller’s buffer is too small.

    604
    Wrong information specified.

    605
    Cannot set port information.

    606
    The port is not connected.

    607
    The event is invalid.

    608
    The device does not exist.

    609
    The device type does not exist.

    610
    The buffer is invalid.

    611
    The route is not available.

    612
    The route is not allocated.

    613
    Invalid compression specified.

    614
    Out of buffers.

    615
    The port was not found.

    616
    An asynchronous request is pending.

    617
    The port or device is already disconnecting.

    618
    The port is not open.

    619
    The port is disconnected.

    620
    There are no endpoints.

    621
    Cannot open the phone book file.

    622
    Cannot load the phone book file.

    623
    Cannot find the phone book entry.

    624
    Cannot write the phone book file.

    625
    Invalid information found in the phone book.

    626
    Cannot load a string.

    627
    Cannot find key.

    628
    The port was disconnected.

    629
    The port was disconnected by the remote machine.

    630
    The port was disconnected due to hardware failure.

    631
    The port was disconnected by the user.

    632
    The structure size is incorrect.

    633
    The port is already in use or is not configured for Remote Access dialout.

    634
    Cannot register your computer on the remote network.

    635
    Unknown error.

    636
    The wrong device is attached to the port.

    637
    The string could not be converted.

    638
    The request has timed out.

    639
    No asynchronous net available.

    640
    A NetBIOS error has occurred.

    641
    The server cannot allocate NetBIOS resources needed to support the client.

    642
    One of your NetBIOS names is already registered on the remote network.

    643
    A network adapter at the server failed.

    644
    You will not receive network message popups.

    645
    Internal authentication error.

    646
    The account is not permitted to log on at this time of day.

    647
    The account is disabled.

    648
    The password has expired.

    649
    The account does not have Remote Access permission.

    650
    The Remote Access server is not responding.

    651
    Your modem (or other connecting device) has reported an error.

    652
    Unrecognized response from the device.

    653
    A macro required by the device was not found in the device .INF file section.

    654
    A command or response in the device .INF file section refers to an undefined macro

    655
    The macro was not found in the device .INF file section.

    656
    The macro in the device .INF file section contains an undefined macro

    657
    The device .INF file could not be opened.

    658
    The device name in the device .INF or media .INI file is too long.

    659
    The media .INI file refers to an unknown device name.

    660
    The device .INF file contains no responses for the command.

    661
    The device .INF file is missing a command.

    662
    Attempted to set a macro not listed in device .INF file section.

    663
    The media .INI file refers to an unknown device type.

    664
    Cannot allocate memory.

    665
    The port is not configured for Remote Access.

    666
    Your modem (or other connecting device) is not functioning.

    667
    Cannot read the media .INI file.

    668
    The connection dropped.

    669
    The usage parameter in the media .INI file is invalid.

    670
    Cannot read the section name from the media .INI file.

    671
    Cannot read the device type from the media .INI file.

    672
    Cannot read the device name from the media .INI file.

    673
    Cannot read the usage from the media .INI file.

    674
    Cannot read the maximum connection BPS rate from the media .INI file.

    675
    Cannot read the maximum carrier BPS rate from the media .INI file.

    676
    The line is busy.

    677
    A person answered instead of a modem.

    678
    There is no answer.

    679
    Cannot detect carrier.

    680
    There is no dial tone.

    681
    General error reported by device.

    682
    ERROR WRITING SECTIONNAME

    683
    ERROR WRITING DEVICETYPE

    684
    ERROR WRITING DEVICENAME

    685
    ERROR WRITING MAXCONNECTBPS

    686
    ERROR WRITING MAXCARRIERBPS

    687
    ERROR WRITING USAGE

    688
    ERROR WRITING DEFAULTOFF

    689
    ERROR READING DEFAULTOFF

    690
    ERROR EMPTY INI FILE

    691
    Access denied because username and/or password is invalid on the domain.

    692
    Hardware failure in port or attached device.

    693
    ERROR NOT BINARY MACRO

    694
    ERROR DCB NOT FOUND

    695
    ERROR STATE MACHINES NOT STARTED

    696
    ERROR STATE MACHINES ALREADY STARTED

    697
    ERROR PARTIAL RESPONSE LOOPING

    698
    A response keyname in the device .INF file is not in the expected format.

    699
    The device response caused buffer overflow.

    700
    The expanded command in the device .INF file is too long.

    701
    The device moved to a BPS rate not supported by the COM driver.

    702
    Device response received when none expected.

    703
    ERROR INTERACTIVE MODE

    704
    ERROR BAD CALLBACK NUMBER

    705
    ERROR INVALID AUTH STATE

    706
    ERROR WRITING INITBPS

    707
    X.25 diagnostic indication.

    708
    The account has expired.

    709
    Error changing password on domain.

    710
    Serial overrun errors were detected while communicating with your modem.

    711
    RasMan initialization failure. Check the event log.

    712
    Biplex port is initializing. Wait a few seconds and redial.

    713
    No active ISDN lines are available.

    714
    Not enough ISDN channels are available to make the call.

    715
    Too many errors occurred because of poor phone line quality.

    716
    The Remote Access IP configuration is unusable.

    717
    No IP addresses are available in the static pool of Remote Access IP addresses.

    718
    PPP timeout.

    719
    PPP terminated by remote machine.

    720
    No PPP control protocols configured.

    721
    Remote PPP peer is not responding.

    722
    The PPP packet is invalid.

    723
    The phone number, including prefix and suffix, is too long.

    724
    The IPX protocol cannot dial-out on the port because the computer is an IPX router.

    725
    The IPX protocol cannot dial-in on the port because the IPX router is not installed.

    726
    The IPX protocol cannot be used for dial-out on more than one port at a time.

    727
    Cannot access TCPCFG.DLL.

    728
    Cannot find an IP adapter bound to Remote Access.

    729
    SLIP cannot be used unless the IP protocol is installed. 730
    Computer registration is not complete.

    731
    The protocol is not configured.

    732
    The PPP negotiation is not converging.

    733
    The PPP control protocol for this network protocol is not available on the server.

    734
    The PPP link control protocol terminated..

    735
    The requested address was rejected by the server..

    736
    The remote computer terminated the control protocol.

    737
    Loopback detected..

    738
    The server did not assign an address.

    739
    The remote server cannot use the Windows NT encrypted password.

    740
    The TAPI devices configured for Remote Access failed to initialize or were not installed correctly.

    741
    The local computer does not support encryption.

    742
    The remote server does not support encryption.

    743
    The remote server requires encryption.

    744
    Cannot use the IPX net number assigned by the remote server. Check the event log.

    745
    ERROR_INVALID_SMM

    746
    ERROR_SMM_UNINITIALIZED

    747
    ERROR_NO_MAC_FOR_PORT

    748
    ERROR_SMM_TIMEOUT

    749
    ERROR_BAD_PHONE_NUMBER

    750
    ERROR_WRONG_MODULE

    751
    The callback number contains an invalid character. Only the following 18 characters are allowed: 0 to 9, T, P, W, (, ), -, @, and space

    752
    A syntax error was encountered while processing a script.

    753
    The connection could not be disconnected because it was created by the multi-protocol router.

    754
    The system could not find the multi-link bundle.

    755
    The system cannot perform automated dial because this connection has a custom dialer specified.

    756
    This connection is already being dialed.

    757
    Remote Access Services could not be started automatically. Additional information is provided in the event log.

    758
    Internet Connection Sharing is already enabled on the connection.

    759
    An error occurred while the existing Internet Connection Sharing settings were being changed.

    760
    An error occurred while routing capabilities were being enabled.

    761
    An error occurred while Internet Connection Sharing was being enabled for the connection.

    762
    An error occurred while the local network was being configured for sharing.

    763
    Internet Connection Sharing cannot be enabled. There is more than one LAN connection other than the connection to be shared.

    764
    No smart card reader is installed.

    765
    Internet Connection Sharing cannot be enabled. A LAN connection is already configured with the IP address that is required for automatic IP addressing.

    766
    A certificate could not be found. Connections that use the L2TP protocol over IPSec require the installation of a machine certificate, also known as a computer certificate.

    767
    Internet Connection Sharing cannot be enabled. The LAN connection selected as the private network has more than one IP address configured. Please reconfigure the LAN connection with a single IP address before enabling Internet Connection Sharing.

    768
    The connection attempt failed because of failure to encrypt data.

    769
    The specified destination is not reachable.

    770
    The remote computer rejected the connection attempt.

    771
    The connection attempt failed because the network is busy.

    772
    The remote computer’s network hardware is incompatible with the type of call requested.

    773
    The connection attempt failed because the destination number has changed.

    774
    The connection attempt failed because of a temporary failure. Try connecting again.

    775
    The call was blocked by the remote computer.

    776
    The call could not be connected because the remote computer has invoked the Do Not Disturb feature.

    777
    The connection attempt failed because the modem (or other connecting device on the remote computer is out of order.

    778
    It was not possible to verify the identity of the server.

    779
    To dial out using this connection you must use a smart card.

    780
    An attempted function is not valid for this connection.

    781
    The connection requires a certificate, and no valid certificate was found. For further assistance, click More Info or search Help and Support Center for this error number.

    782
    Internet Connection Sharing (ICS and Internet Connection Firewall (ICF cannot be enabled because Routing and Remote Access has been enabled on this computer. To enable ICS or ICF, first disable Routing and Remote Access. For more information about Routing and Remote Access, ICS, or ICF, see Help and Support.

    783
    Internet Connection Sharing cannot be enabled. The LAN connection selected as the private network is either not present, or is disconnected from the network. Please ensure that the LAN adapter is connected before enabling Internet Connection Sharing.

    784
    You cannot dial using this connection at logon time, because it is configured to use a user name different than the one on the smart card. If you want to use it at logon time, you must configure it to use the user name on the smart card.

    785
    You cannot dial using this connection at logon time, because it is not configured to use a smart card. If you want to use it at logon time, you must edit the properties of this connection so that it uses a smart card.

    786
    The L2TP connection attempt failed because there is no valid machine certificate on your computer for security authentication.

    787
    The L2TP connection attempt failed because the security layer could not authenticate the remote computer.

    788
    The L2TP connection attempt failed because the security layer could not negotiate compatible parameters with the remote computer.

    789
    The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remote computer.

    790
    The L2TP connection attempt failed because certificate validation on the remote computer failed.

    791
    The L2TP connection attempt failed because security policy for the connection was not found.

    792
    The L2TP connection attempt failed because security negotiation timed out.

    793
    The L2TP connection attempt failed because an error occurred while negotiating security.

    794
    The Framed Protocol RADIUS attribute for this user is not PPP.

    795
    The Tunnel Type RADIUS attribute for this user is not correct.

    796
    The Service Type RADIUS attribute for this user is neither Framed nor Callback Framed.

    797
    A connection to the remote computer could not be established because the modem was not found or was busy. For further assistance, click More Info or search Help and Support Center for this error number.

    798
    A certificate could not be found that can be used with this Extensible Authentication Protocol.

    799
    Internet Connection Sharing (ICS cannot be enabled due to an IP address conflict on the network. ICS requires the host be configured to use 192.168.0.1. Please ensure that no other client on the network is configured to use 192.168.0.1.

    800
    Unable to establish the VPN connection. The VPN server may be unreachable, or security parameters may not be configured properly for this connection.

    801
    This connection is configured to validate the identity of the access server, but Windows cannot verify the digital certificate sent by the server.

    802
    The card supplied was not recognized. Please check that the card is inserted correctly, and fits tightly.

    803
    The PEAP configuration stored in the session cookie does not match the current session configuration.

    804
    The PEAP identity stored in the session cookie does not match the current identity.

    805
    You cannot dial using this connection at logon time, because it is configured to use logged on user’s credentials.

    900
    The router is not running.

    901
    The interface is already connected.

    902
    The specified protocol identifier is not known to the router.

    903
    The Demand-dial Interface Manager is not running.

    904
    An interface with this name is already registered with the router.

    905
    An interface with this name is not registered with the router.

    906
    The interface is not connected.

    907
    The specified protocol is stopping.

    908
    The interface is connected and hence cannot be deleted.

    909
    The interface credentials have not been set.

    910
    This interface is already in the process of connecting.

    911
    An update of routing information on this interface is already in progress.

    912
    The interface configuration in invalid. There is already another interface that is connected to the same interface on the remote router.

    913
    A Remote Access Client attempted to connect over a port that was reserved for Routers only.

    914
    A Demand Dial Router attempted to connect over a port that was reserved for Remote Access Clients only.

    915
    The client interface with this name already exists and is currently connected.

    916
    The interface is in a disabled state.

    917
    The authentication protocol was rejected by the remote peer.

    918
    There are no authentication protocols available for use.

    919
    The remote computer refused to be authenticated using the configured authentication protocol. The line has been disconnected.

    920
    The remote account does not have Remote Access permission.

    921
    The remote account has expired.

    922
    The remote account is disabled.

    923
    The remote account is not permitted to logon at this time of day.

    924
    Access was denied to the remote peer because username and/or password is invalid on the domain.

    925
    There are no routing enabled ports available for use by this demand dial interface.

    926
    The port has been disconnected due to inactivity.

    927
    The interface is not reachable at this time.

    928
    The Demand Dial service is in a paused state.

    929
    The interface has been disconnected by the administrator.

    930
    The authentication server did not respond to authentication requests in a timely fashion.

    931
    The maximum number of ports allowed for use in the multilinked connection has been reached.

    932
    The connection time limit for the user has been reached.

    933
    The maximum limit on the number of LAN interfaces supported has been reached.

    934
    The maximum limit on the number of Demand Dial interfaces supported has been reached.

    935
    The maximum limit on the number of Remote Access clients supported has been reached.

    936
    The port has been disconnected due to the BAP policy.

    937
    Because another connection of your type is in use, the incoming connection cannot accept your connection request.

    938
    No RADIUS servers were located on the network.

    939
    An invalid response was received from the RADIUS authentication server. Make sure that the case sensitive secret password for the RADIUS server is set correctly.

    940
    You do not have permission to connect at this time.

    941
    You do not have permission to connect using the current device type.

    942
    You do not have permission to connect using the selected authentication protocol.

    943
    BAP is required for this user.

    944
    The interface is not allowed to connect at this time.

    945
    The saved router configuration is incompatible with the current router.

    946
    RemoteAccess has detected older format user accounts that will not be migrated automatically. To migrate these manually, run XXXX.

    948
    The transport is already installed with the router.

    949
    Received invalid signature length in packet from RADIUS server.

    950
    Received invalid signature in packet from RADIUS server.

    951
    Did not receive signature along with EAPMessage from RADIUS server.

    952
    Received packet with invalid length or Id from RADIUS server.

    953
    Received packet with attribute with invalid length from RADIUS server.

    954
    Received invalid packet from RADIUS server.

    955
    Authenticator does not match in packet from RADIUS server.

    Советы по работе с DNS зонами

    Чтобы было наглядней о чем разговор идет, опишу как происходит процесс делегирования. Делегирование — это то каким образом пространство имен в DNS делится на зоны. Зона — это обособленная ветвь пространства DNS имен которая располагается на своих авторитарных DNS серверах. В зону может входить любое количество доменов нижележащего уровня — до тех пор пока они все расположены на одних и тех же авторитарных серверах, зона у них одна и та же.
    Делегирование из родительской зоны происходит путем создания NS записей. В дочерней (делегированной) зоне создается полное описание зоны начиная с SOA записи. Вот, например, когда регистрируется домен второго уровня через регистратора nic.ru, то там при регистрации просят указать имена и адреса минимум двух DNS серверов которые будут считаться авторитарными для данной ветви пространства DNS имен. Для проведения делегирования не обязательно иметь под зону именно два DNS сервера — просто у nic.ru такая политика для того чтобы заставить клиентов обеспечить надежность системы. Вот эти два сервера становятся NS записями в домене ru.

    Пример. Скажем, нами регистрируется домен второго уровня под названием net.ru. Авторитарными для него будут DNS сервера ns.net.ru (IP 1.2.3.4) и ns2.dnshosting.com (IP 5.6.7.9). В записях DNS серверов отвечающих за зону ru. (которыми управляет организация nic.ru) вносится такая информация:

    $TTL 300
    ru.   IN   SOA   ns.ripn.net. hostmaster.ripn.net. (
             4014396 ;serial
             7200   ;refresh
             900   ;retry
             2592000   ;expire
             3600   ;neg. ttl
             )
          NS   sunic.sunet.se.
          NS   e.dns.ripn.net.
          NS   ns.ripn.net.
          NS   ns5.msk-ix.net.
     
    ; это добавили
    net.ru.   NS   ns.net.ru.
    net.ru.   NS   ns2.dnshosting.com.
    ns.net.ru.   A   1.2.3.4

    Запись «ns.net.ru. A 1.2.3.4» называют еще «glue record», она нужна в случаях, когда имя NS сервера располагается внутри делегированной зоны. Это вспомогательная запись которую обязательно указывать в таких случаях. Без нее возникла бы ситуация, когда для того чтобы узнать IP сервера ns.net.ru надо обратиться к нему по IP (замкнутый круг). Так как второй NS расположен в чужой зоне, то для него не указываем glue record.

    В свою очередь на сервере ns.net.ru который является мастером для зоны net.ru создается полная SOA запись как и полагается:

    $TTL 300
    net.ru.   IN   SOA   ns.net.ru. hostmaster.net.ru. (
             2009012500   ;serial
             7200      ;refresh
             900      ;retry
             2592000      ;expire
             3600      ;neg. ttl
             )
          NS   ns.net.ru.
          NS   ns2.dnshosting.com.
          MX 10   mail.net.ru.
    ns.net.ru.   A   1.2.3.4
     
    www.net.ru.   A   9.8.7.6
    ftp.net.ru.   A   10.11.12.13
    mail.net.ru.   A   11.12.13.14

    На slave сервере ns2.dnshosting.com в ручную записи не создаются, но он настраивается так чтобы периодически запрашивать мастер ns.net.ru и перекачивать с него всю информацию о записях в домене, а мастер ns.net.ru настраивается так чтобы отдавать все записи о зоне при запросах с подчиненного.

    Точно по такой же схеме происходит делегирование доменов третьего, четвертого да любого уровня. Делегировать можно даже одно единственное хост имя!

    Например случай с делегированием домена третьего уровня. Выглядеть это будет так — в записях зоны net.ru добавляется информация с NS записями о субдомене home.net.ru (допустим, будет только один авторитарный DNS сервер для этого субдомена ns.home.net.ru IP 7.7.7.7)

    $TTL 300
    net.ru.   IN   SOA   ns.net.ru. hostmaster.net.ru. (
             2009012500   ;serial
             7200      ;refresh
             900      ;retry
             2592000      ;expire
             3600      ;neg. ttl
             )
          NS   ns.net.ru.
          NS   ns2.dnshosting.com.
          MX 10   mail.net.ru.
    ns.net.ru.   A   1.2.3.4
     
    www.net.ru.   A   9.8.7.6
    ftp.net.ru.   A   10.11.12.13
    mail.net.ru.   A   11.12.13.14
     
    ;это добавили
    home.net.ru.   NS   ns.home.net.ru.
    ns.home.net.ru.   A   7.7.7.7

    Ну и соответственно на DNS сервере ns.home.net.ru создается зона с новой SOA записью:

    $TTL 300
    home.net.ru.   IN   SOA   ns.home.net.ru. adminzoni.mail.ru. (
             2009012501   ;serial
             7200      ;refresh
             900      ;retry
             2592000      ;expire
             3600      ;neg. ttl
             )
          NS   ns.home.net.ru.
    ns.home.net.ru.   A   7.7.7.7
     
    home.net.ru.      A   7.7.7.8
    www.home.net.ru.   A   7.7.7.8
    proxy.home.net.ru.   A   7.7.7.9

    Был приведен синтаксис зоны как это принято в BIND и NSD. Для djbdns то, что написано выше будет выглядеть так:

    Zhome.net.ru:ns.home.net.ru.:adminzoni.mail.ru.: \
    2009012501:7200:900:2592000:3600:300
    &home.net.ru:7.7.7.7:ns.home.net.ru
    +home.net.ru:7.7.7.8:300
    +www.home.net.ru:7.7.7.8:300
    +proxy.home.net.ru:7.7.7.9:300

    До кучи, напишу заодно еще и про реверс зоны и их делегирование.
    Система DNS позволяет производить обратные разрешения из IP адресов в DNS имена. Для этого в дереве имен есть специальный служебный домен под именем in-addr.arpa. Этот домен имеет 256 субдоменов, каждый из субдомменов может иметь 256 своих субдоменов, у которых могут быть 256 своих субдоменов, в которых уже будет по 256 имен. Таким образом получается структура вида a.b.c.d.in-addr.arpa. где а,b,c,d это 0-255. На эту часть DNS имен распространяются те же правила, что и на обычные имена, вот только владельцем какого-либо субдомена может стать лишь организация получившая контроль за соответствующим блоком IP адресов — например провайдер, когда покупает для своих нужд у RIPE диапазоны IP адресов. Например, если провайдер купил себе префикс с адресами 123.44.55.0/24 (256 адресов), то он может получить от RIPE (регионального регистратора) и реверс зону в которой начнет создавать PTR записи по просьбе клиентов или для своих нужд:

    $TTL 300
    55.44.123.in-addr.arpa.   IN   SOA   ns.net.ru. admin.net.ru. (
             2009012500   ;serial
             7200      ;refresh
             900      ;retry
             2592000      ;expire
             3600      ;neg. ttl
             )
          NS   ns.net.ru.
          NS   ns2.dnshosting.com.
     
    1.55.44.123.in-addr.arpa.   PTR   hostname.net.ru.
    2.55.44.123.in-addr.arpa.   PTR   imja.net.ru.
    254.55.44.123.in-addr.arpa.   PTR   esheodnoija.net.ru.

    Тут все просто и красиво потому, что в этом примере деление на DNS зону и IP субнет произошло по границе третьего и четвертого байта в IP адресе, а как делегировать половину субнета или только пару IP адресов из него? Скажем, клиент купил себе 8 «белых» IP адресов и захотел получить контроль над назначением реверс имен для них?
    В таком случае можно сделать делегирование таким образом — в родительской зоне создаются CNAME записи на подставной домен, а он уже делегируется клиенту:

    $TTL 300
    55.44.123.in-addr.arpa.   IN   SOA   ns.net.ru. admin.net.ru. (
             2009012500   ;serial
             7200      ;refresh
             900      ;retry
             2592000      ;expire
             3600      ;neg. ttl
             )
          NS   ns.net.ru.
          NS   ns2.dnshosting.com.
     
    1.55.44.123.in-addr.arpa.   PTR   hostname.net.ru.
    2.55.44.123.in-addr.arpa.   PTR   imja.net.ru.
    254.55.44.123.in-addr.arpa.   PTR   esheodnoija.net.ru.
     
    ;создаем подставные записи
    7.55.44.123.in-addr.arpa.   CNAME   7.klient.55.44.123.in-addr.arpa.
    8.55.44.123.in-addr.arpa.   CNAME   8.klient.55.44.123.in-addr.arpa.
    9.55.44.123.in-addr.arpa.   CNAME   9.klient.55.44.123.in-addr.arpa.
    10.55.44.123.in-addr.arpa.   CNAME   10.klient.55.44.123.in-addr.arpa.
    11.55.44.123.in-addr.arpa.   CNAME   11.klient.55.44.123.in-addr.arpa.
    12.55.44.123.in-addr.arpa.   CNAME   12.klient.55.44.123.in-addr.arpa.
    13.55.44.123.in-addr.arpa.   CNAME   13.klient.55.44.123.in-addr.arpa.
    14.55.44.123.in-addr.arpa.   CNAME   14.klient.55.44.123.in-addr.arpa.
     
    ;делегируем клиенту
    klient.55.44.123.in-addr.arpa.   NS   ns1.klient.ru.
    klient.55.44.123.in-addr.arpa.   NS   ns2.hosting.com.

    Клиент принимает у себя:

    $TTL 300
    klient.55.44.123.in-addr.arpa.   IN   SOA   ns.klient.ru. admin.klient.ru. (
             2009012502   ;serial
             7200      ;refresh
             900      ;retry
             2592000      ;expire
             3600      ;neg. ttl
             )
          NS   ns.klient.ru.
          NS   ns2.hosting.com.
     
    7.klient.55.44.123.in-addr.arpa.   PTR   host1.klient.ru.
    8.klient.55.44.123.in-addr.arpa.   PTR   host2.klient.ru.
    9.klient.55.44.123.in-addr.arpa.   PTR   host3.klient.ru.
    10.klient.55.44.123.in-addr.arpa.   PTR   host4.klient.ru.
    11.klient.55.44.123.in-addr.arpa.   PTR   host5.klient.ru.
    12.klient.55.44.123.in-addr.arpa.   PTR   host6.klient.ru.
    13.klient.55.44.123.in-addr.arpa.   PTR   host7.klient.ru.
    14.klient.55.44.123.in-addr.arpa.   PTR   host8.klient.ru.
     
    ...

    Да, еще одна штука вспомнилась.
    Я когда работал в провайдере, так все хотел приколоться и сделать себе почтовый адрес вида terminus@1.2.3.4.in-addr.arpa, но не успел — все лень было, а потом уволился и сейчас своих реверс зон нет нигде.

    Между прочим, нету никакаих объективных причин почему бы такое не работало — DNS должен будет корректно отвечать на запросы о MX записях для домена 1.2.3.4.in-addr.arpa так же как и для обычных доменов. Если есть в наличии SMTP сервер «для поиграться» + желание приколоться, то можно прописать в PTR зоне MX запись, на почтовом сервере на который указывают MX запись прописать домен, и проверить как оно будет (99% что должно работать).

    Источник