Freebsd по dhcp не получает настройки
Столкнулся на днях с непонятной ошибкой. Ставлю минимальную версию Freebsd 10.1 на hyperv. После установки указываю через bsdconfig на единственном интерфейсе hn0 получать настройки от dhcp.
Все в порядке, настройки получены, занимаюсь конфигурированием сервера. Потом перезагружаюсь. Во время загрузки сервер Freebsd задумывается 30 секунд на моменте прописки дефолтного шлюза, потом продолжает загрузку.
Захожу в систему и вижу, что ip адрес не получен.
Начинаю разбираться в чем дело. Проверяю /etc/rc.conf:
# cat /etc/rc.conf hostname=”hyperv-freebsd” ifconfig_hn0=”DHCP”
Все, больше ничего нет. Ошибиться негде. Все должно работать, но не работает. Если вручную запустить dhcp клиент:
# /sbin/dhclient -c /etc/dhclient.conf hn0
то сетевые настройки благополучно получаются.
Я решил добавить настройки dhclient в rc.conf:
dhclient_program=”/sbin/dhclient” dhclient_flags=””
Перезагружаюсь, результата нет, настройки по dhcp опять не получены. Очень странная ситуация, я, честно говоря, тут призадумался. Десятки раз настраивал freebsd, но такое вижу впервые. Делать нечего, решил заглянуть в Handbook. Иду в раздел Автоматическая настройка сети (DHCP) и читаю. Нахожу там интересный момент:
По умолчанию, конфигурирование FreeBSD по протоколу DHCP выполняется фоновым процессом, или асинхронно. Остальные стартовые скрипты продолжают работу не ожидая завершения процесса конфигурирования, тем самым ускоряя загрузку системы.
Фоновое конфигурирование не создает проблем в случае, если сервер DHCP быстро отвечает на запросы, и процесс конфигурирования происходит быстро. Однако, в некоторых случаях настройка по DHCP может длиться значительное время.
При этом запуск сетевых сервисов может потерпеть неудачу, если будет произведен ранее завершения конфигурирования по DHCP.
Запуск DHCP в синхронном режиме предотвращает проблему, откладывая выполнение остальных стартовых скриптов до момента завершения конфигурирования по DHCP.
Для откладывания запуска стартовых скриптов до завершения конфигурирования по DHCP (синхронный режим), укажите значение SYNCDHCP:
ifconfig_fxp0=»SYNCDHCP»
Стоит попробовать. Указываю в /etc/rc.conf:
ifconfig_hn0=”SYNCDHCP”
Перезагружаюсь и вуаля, все работает. То ли это особенность виртуальной машины на hyperv, то ли что-то еще, не знаю. Впервые с подобной ситуацией сталкиваюсь. Но решение найдено.
Люблю я Freebsd за подробный handbook, но последнее время работаю с фрюшкой все реже и реже в силу различных причин, главная из которых отсутствие нужных дистрибутивов софта под данную систему.
Производители программ все реже и реже включают поддержку Freebsd, а жаль.
Помогла статья? Есть возможность отблагодарить автора
Дополнительные материалы по Freebsd
Рекомендую полезные материалы по Freebsd: |
Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик.Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности.Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления.Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop.Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache. |
Источник: https://serveradmin.ru/freebsd-po-dhcp-ne-poluchaet-nastroyki/
FreeBSD: настройка DHCP-сервера на базе ISC DHCP Server
Настраиваем DHCP сервер для офисной сети.
Содержание
Установка ISC DHCP Server
Получаем доступные версии DHCP-сервера:
pkg search “isc-dhcp.*-server”
Устанавливаем пакет:
pkg install isc-dhcp41-server
Установка ISC DHCP Server из коллекции портов
Если необходимо, DHCP-сервер можно собрать из портов.
Обновляем коллекцию портов:
portsnap fetch update
Если коллекция портов используется впервые, получаем ее актуальную версию:
portsnap fetch extract
Получаем доступные версии DHCP-сервера:
echo /usr/ports/net/isc-dhcp*-server
Устанавливаем:
cd /usr/ports/net/isc-dhcp41-server make install
Настройка ISC DHCP Server
Редактируем файл конфигурации:
ee /usr/local/etc/dhcpd.conf
В минимальной конфигурации необходимо задать параметры, выделенные жирным шрифтом, примеры удалить или закомментировать.
# DNS серверы option domain-name-servers 192.168.0.1, 192.168.0.2; # Время в секундах, по истечению которого клиент должен запросить продление аренды default-lease-time 600; # Время аренды IP адреса в секундах # Клиент должен освободить IP-адрес, если в течение заданного времени аренду продлить не удалось # Если аренда не продлена, сервер может выдать этот адрес другому клиенту max-lease-time 7200; # Выдавать клиенту новый адрес, если запрошенный клиентом адрес не входит в пул сервера authoritative; # Источник, который будет указан при отправке сообщений в Syslog log-facility local7; # Декларация подсети subnet 192.168.0.0 netmask 255.255.255.0 { # Пул динамических адресов range 192.168.0.129 192.168.0.189; # Шлюз option routers 192.168.0.1; } # Задать фиксированный IP-адрес для хоста #host Name { # hardware ethernet 00:26:5e:66:6c:08; # fixed-address 192.168.0.190; #}
Настройка логов ISC DHCP Server
Редактируем syslog.conf:
ee /etc/syslog.conf
Сохраняем сообщения о присвоении адресов в dhcpd.log, предупреждения и ошибки дублируем в messages.
Добавляем следующие строки:
!dhcpd *.info -/var/log/dhcpd.log !*
Задаем параметры ротации.
Проверяем, поддерживается ли вашей системой newsyslog.conf.d
ls /etc/newsyslog.conf.d && echo ok
Если в вашей системе отсутствует папка newsyslog.conf.d, редактируем newsyslog.conf:
ee /etc/newsyslog.conf
Если папка newsyslog.conf.d имеется, создаем папку с тем же именем в /usr/local/etc:
mkdir /usr/local/etc/newsyslog.conf.d
Создаем файл c правилами ротации логов:
ee /usr/local/etc/newsyslog.conf.d/isc-dhcp-server
Ежедневная ротация в полночь с сохранением логов за неделю:
/var/log/dhcpd.log 600 7 * @T00 JC
Создаем лог-файл:
touch /var/log/dhcpd.log
Перезагружаем конфигурацию syslogd:
service syslogd reload
Запуск ISC DHCP Server
Редактируем rc.conf:
ee /etc/rc.conf
Включаем запуск ISC DHCP Server, и задаем сетевые интерфейсы, обслуживаемые нашим сервером:
dhcpd_enable=”YES” dhcpd_ifaces=”fxp0″
Запускаем dhcpd:
service isc-dhcpd start
В случае успешного запуска видим следующий текст:
Internet Systems Consortium DHCP Server 4.1-ESV-R3 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Wrote 1 leases to leases file. Listening on BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24 Sending on BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24 Sending on Socket/fallback/fallback-net
Если ошибок при запуске не возникло, проверяем, раздаются ли IP-адреса.
Для принудительного обновления IP-адреса в Windows, в командной строке используем команды:
ipconfig /release ipconfig /renew
Проверяем лог-файл:
cat /var/log/dhcpd.log
В случае проблем, анализируем DHCP трафик:
tcpdump -vni fxp0 udp port 67
Дополнительная информация
Обзор протокола в Википедии: DHCP
Руководство FreeBSD: Автоматическая настройка сети (DHCP)
FreeBSD. Подробное руководство: DHCP
Другой пример настройки: FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server
Страницы справки: dhcpd.conf, dhcpd.
Источник: http://itadept.ru/freebsd-dhcp-server/
FreeBSD: установка и настройка DHCP сервера
Для начала, надо найти последнюю версию DHCP сервера.Заходим на и справа, в поле поиска, вводим “dhcp“. Помимо всего прочего, тут нашелся и искомый (смотрите версию, желательно ставить последнюю):
=7The ISC Dynamic Host Configuration Protocol server
Maintained by: [email protected]
Port Added: 07 Jul 2011 19:45:39
License: ISCL
Обновим порты:
# portsnap fetch update
Найдем его в портах на сервере и приступим к установке:
# cd /usr/ports/net/isc-dhcp42-server
# make install clean
При конфигурировании уберем CHROOT, если надо – добавим LDAP:
После установки читаем сообщения с подсказками:
**** This port installs the dhcp daemon, but doesn’t invoke dhcpd by default.
If you want to invoke dhcpd at startup, add these lines to /etc/rc.conf:
dhcpd_enable=”YES” # dhcpd enabled? dhcpd_flags=”-q” # command option(s) dhcpd_conf=”/usr/local/etc/dhcpd.conf” # configuration file dhcpd_ifaces=”” # ethernet interface(s)
dhcpd_withumask=”022″ # file creation mask
**** If compiled with paranoia support (the default), the following rc.conf
options are also supported:
dhcpd_chuser_enable=”YES” # runs w/o privileges? dhcpd_withuser=”dhcpd” # user name to run as dhcpd_withgroup=”dhcpd” # group name to run as dhcpd_chroot_enable=”YES” # runs chrooted? dhcpd_devfs_enable=”YES” # use devfs if available? dhcpd_rootdir=”/var/db/dhcpd” # directory to run in
dhcpd_includedir=”” # directory with config-files to include
Отредактируем файл /etc/rc.conf:
dhcpd_enable=”YES” dhcpd_conf=”/usr/local/etc/dhcpd.conf” dhcpd_ifaces=”vr0″ dhcpd_withuser=”dhcpd”
dhcpd_withgroup=”dhcpd”
Создадим каталог:
# mkdir /var/db/dhcpd
Назначим пользователя:
# chown dhcpd /var/db/dhcpd
Отредактируйте /usr/local/etc/dhcpd.conf под ваши требования, самая простая конфигурация выглядит так:
# dhcpd.conf # # Sample configuration file for ISC dhcpd # # option definitions common to all supported networks… option domain-name “setevoy.dcv”;
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
# Use this to enble / disable dynamic dns updates globally. ddns-update-style none; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection).
log-facility local7;
# This is a very basic subnet declaration.
subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.2 10.0.0.255; option routers 10.0.0.1;
}
#fixed address for test host for_test { hardware ethernet f0:de:f1:8f:76:1b; fixed-address 10.0.0.2;
}
Перезагрузим сервер, и проверим запустился ли dhcpd:
# ps aux | grep dhcpd
root 1332 0.0 0.1 3500 1236 0 S+ 12:31AM 0:00.01 grep dhcpd
Не запустился.
Смотрим /var/log/messages:
Feb 26 00:25:45 takashi setevoy: /usr/local/etc/rc.d/isc-dhcpd: ERROR: unable to copy /etc/localtime to /var/db/dhcpd/etc/localtime — not a file or a directory
Такого файла или каталога нет вообще:
# less /etc/localtime /etc/localtime: No such file or directory # cd /etc/localtime
bash: cd: /etc/localtime: No such file or directory
ОК, создадим его вручную:
# touch /etc/localtime
И пробуем запустить демон:
# /usr/local/etc/rc.d/isc-dhcpd start
Источник: https://rtfm.co.ua/freebsd-ustanovka-i-nastrojka-dhcp-servera/
Настройка сети FreeBSD 11.1
В этой статье мы рассмотрим сетевые интерфейсы в FreeBSD 11.1, покажем настройку сети через файл конфигурации /etc/rc.
conf, а именно назначение статических настроек и получение их по DHCP.
Пропишем адреса DNS-серверов, настроем hosts и рассмотрим указание временных настроек сети.
Просмотр сетевых интерфейсов
Для начала проясним: Есть два состояния сетевой карты UP(задействована) и DOWN(не задействована).
Первым делом стоит посмотреть наши сетевые интерфейсы, смотреть будем командой ifconfig.(Рис.1) Вывод команды показывает все интерфейсы UP и DOWN.
ifconfig
ifconfig -a покажет вам тоже самое.
ifconfig -a
Вот тут есть некоторые отличия от ifconfig в Ubuntu server.(в Ubuntu server “ifconfig” показывает только интерфейсы UP, “ifconfig -a” показывает все интерфейсы и UP и DOWN)
Рис.1 – Результат ввода команды ifconfig.
И так что же мы видим:
- em0 – наша сетевая карта, с IP адресом 192.168.3.11.
- em1 – вторая сетевая карта, не настроенная.
- lo – локальная петля, она у всех присутствует по умолчанию.
Для того чтобы посмотреть интерфейсы только UP, используется команда ifconfig -u (Рис.2):
ifconfig -u
а для просмотра интерфейсов только DOWN, используется команда ifconfig -d (Рис.3):
ifconfig -dРис.2 – Результат ввода команды ifconfig -u.Рис.3 – Результат ввода команды ifconfig -d.
В дальнейшем я буду показывать примеры настройки на интерфейсе “em0”.
Для включения интерфейса используется команда ifconfig “НАЗВАНИЕ-ИНТЕРФЕЙСА” up.
ifconfig em0 up
Для выключения интерфейса используется команда ifconfig “НАЗВАНИЕ-ИНТЕРФЕЙСА” down.
ifconfig em0 down
“Поиграйтесь” с интерфейсом, если вы конечно же не подключены по ssh, и оставьте его в состоянии UP.
Настройка сети через файл конфигурации
Для настройки статического или динамического IP адреса нам надо отредактировать файл конфигурации сетевых интерфейсов – /etc/rc.conf мы будем редактировать его с помощью текстового редактора vi.(Рис.
4) Сразу скажу, для того чтобы редактировать в vi нужно нажать букву “i”, а чтобы сохранить и закрыть документ надо нажать “Esc” ввести “:wq!” и нажать “Enter”.
vi /etc/rc.confРис.4 – vi /etc/rc.conf.
Получение настроек сети по DHCP
Чтобы назначить получение настроек по DHCP, нужно вписать( или изменить существующую) строчку в файл /etc/rc.conf.(Рис.5)
ifconfig_НАЗВАНИЕ-ИНТЕРФЕЙСА=”DHCP”
ifconfig_em0=”DHCP”Рис.5 – Получение сетевых настроек по DHCP.
Перезапускаем сетевую службу netif.(Рис.6)
/etc/rc.d/netif restartРис.6 – Перезапуск сетевой службы FreeBSD.
Смотрим активные сетевые интерфейсы, видим, полученный по DHCP, IP адрес интерфейса em0 – 192.168.3.6(Рис.7)
ifconfig -u
Проверяем выход в интернет пингуем гугловские восьмёрки.
ping 8.8.8.8Рис.7 – Проверка активных интерфейсов и доступа к сети.
Пинги идут. Всё отлично!
Указание настроек сети вручную
Чтобы назначить статичный адрес для нашей Freebsd нужно в файл /etc/rc.conf вписать две строки(Рис.8)
ifconfig_НАЗВАНИЕ-ИНТЕРФЕЙСА=”inet IP-АДРЕС-FREEBSD netmask МАСКА-СЕТИ“
defaultrouter=”IP-АДРЕС-ШЛЮЗА“
ifconfig_em0=”inet 192.168.3.11 netmask 255.255.255.0″ defaultrouter=”192.168.3.1″Рис.8 – Статичные настройки сетевого интерфейса.
Перезапускаем сетевую службу.
/etc/rc.d/netif restart
Проверяем активные интерфейсы
ifconfig -u
Проверяем выход в интернет пингуем гугловские восьмёрки.
ping 8.8.8.8
Настройка DNS
IP адреса DNS серверов хранятся в файле /etc/resolv.conf(Рис.9)
Открываем resolv.conf в редакторе vi.
vi /etc/resolv.conf
Вписываем IP адрес DNS сервера. (Можно указать сколько угодно адресов.)
nameserver 192.168.3.1 nameserver 8.8.8.8 nameserver 8.8.4.4
Если у вас нет файла resolv.conf то создайте его в каталоге /etc
touch /etc/resolv.confРис.9 – Содержимое файла resolv.conf.
Файл /etc/hosts
Файл /etc/hosts содержит таблицы сопоставления DNS имен с IP адресами. В первую очередь ваш сервер будет обращаться к файлу hosts, а потом уже к DNS-серверу.
Записи 127.0.0.1 добавился автоматически при установке.
Лично для себя я отметил полезным внести в hosts запись этого freebsd (IP адрес локальной сети – имя сервера). Теперь мы можем во всех конфигурационных файлах указывать DNS имя, а не IP адрес, а в случае необходимости за кротчайшее время изменить свой IP адрес поправив hosts и настройки интерфейса в /etc/rc.conf.
Это просто для примера вам этого делать не обязательно.
Приступаю к редактированию(Рис.10):
vi /etc/hosts
Вписываю:
192.168.3.11 freebsd.itdeer.locРис.10 – Содержимое файла hosts.
Проверю попинговав имена из hosts.(Рис.11)
ping localhostping freebsd.itdeer.locРис.11 – Пингуем имена из hosts.
Временное назначение ip адреса
Честно говоря я не знаю для чего может пригодиться временное назначение сетевых настроек. Разве что допустим у вас какой-нибудь сервер который предназначен только для вашей локальной сети и вы вдруг решили быстренько обновить ПО через интернет на этом сервере, чтобы не ходить к шлюзу не раздавать интернет на нужный IP адрес итд. Вы можете обойтись парой команд.
Например, мы знаем что на 192.168.3.109 точно есть доступ в интернет, назначаем этот IP адрес нашему интерфейсу, так же нужно указать маску сети(Рис.12):
ifconfig em0 192.168.3.109 netmask 255.255.255.0
или командой с короткой записью маски сети.
ifconfig em0 192.168.3.109/24Рис.12 – Указание временных настроек для сетевого интерфейса em0.
Интернет может не появиться, так как не указан шлюз по умолчанию. Прописываем его и пингуем гугловкие восьмёрки.(Рис.13)
route add default 192.168.3.1ping 8.8.8.8Рис.13 – Указываем шлюз по умолчанию. Проверяем ping.
Правильно ли мы прописали наш шлюз по умолчанию можно посмотреть в таблице маршрутизации. Она выводится с помощью команды “netstat -rn”, Шлюз по умолчанию будет обозначен флагом UG.(Рис.14)
netstat -rnРис.14 – Вывод таблицы маршрутизации.
Если вы где-то ошиблись в написании или у вас указан другой шлюз, то можно удалить шлюз по умолчанию.
route del default
На этом временная настройка закончена, помните что после перезагрузки сервера или отдельно службы networking, все временные настройки исчезнут.
Добавляем маршрут в сеть 192.168.0.0/16 (Маска 255.255.0.0) через основной шлюз(gateway) 192.168.3.1/24
route add 192.168.0.0/16 192.168.3.1
Вариант добавления маршрута с указанием полной маски.
route add -net 192.168.0.0 -netmask 255.255.0.0 192.168.3.1
Переименовываем интерфейс em0 в wan0
Для удобства некоторые админы переименовывают интерфейсы, чтобы сразу видеть для чего предназначен интерфейс.
Допустим у нас шлюз с двумя сетевыми интерфейсами em0(интернет) и em1(локальная сеть) и работать с такими названиями неудобно, так как имея большое количество интерфейсов можно запутаться. Гораздо удобнее работать с интерфейсами wan0 и lan1.
Мы покажем пример переименования интерфейса em0 в wan0 в файле /etc/rc.conf.(Рис.15)
vi /etc/rc.conf
Строку:
ifconfig_em0=”inet 192.168.3.11 netmask 255.255.255.0″
Заменяем двумя строками:
ifconfig_em0_name=”wan0” ifconfig_wan0=”inet 192.168.3.11 netmask 255.255.255.0″Рис.15 – Переименовываем интерфейсы в файле /etc/rc.conf.
Не забываем перезапустить сетевую службу:
/etc/rc.d/netif restart
Проверю, введу команду ifconfig -u. Видим наш wan0 с нужным IP адресом.(Рис.16)
ifconfig -uРис.16 – Проверяем новое название интерфейса. ifconfig -u.
У меня всё!
Была ли вам полезна статья? Есть возможность поддержать проект.
Источник: https://itdeer.ru/nastrojka-seti-freebsd-11/
DHCP сервер под FreeBSD
DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер».
Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к так называемому серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок.
Протокол DHCP используется в большинстве сетей TCP/IP.
Сервер DHCP устанавливаем из портов, которые предварительно следует обновить.
cd /usr/ports/net/isc-dhcp41-server make config install clean
При установке DHCP-сервера будут созданы пользователь dhcpd, группа dhcpd и пример файла конфигурации /usr/local/etc/dhcpd.conf.sample.
Для автоматического запуска DHCP сервера в файл /etc/rc.conf добавляем
dhcpd_enable=”YES” dhcpd_flags=”-q -4″ dhcpd_conf=”/usr/local/etc/dhcpd.conf” dhcpd_ifaces=”rl0″ dhcpd_withumask=”022″ dhcpd_chuser_enable=”YES” dhcpd_withuser=”dhcpd” dhcpd_withgroup=”dhcpd” dhcpd_chroot_enable=”YES” dhcpd_devfs_enable=”YES” dhcpd_rootdir=”/var/db/dhcpd”
Данные строки запрещают вывод диагностических сообщений на консоль и отключают протокол IPv6, задают имя файла конфигурации, привязывают DHCP-сервер к интерфейсу rl0 (rl0 нужно заменить на имя используемого интерфейса, а при прослушивании нескольких интерфейсов придется перечислить их имена, используя пробел в качестве разделителя), устанавливают маску создаваемых файлов 022 (запрещают запись всем, кроме владельца), а также обеспечивают запуск в chroot-окружении с корневой папкой /var/db/dhcpd от имени пользователя dhcpd и группы dhcpd.
По умолчанию конфигурация DHCP-сервера хранится в файле /usr/local/etc/dhcpd.conf. Приводим его к следующему виду
option domain-name “mycompany.local”; option domain-name-servers 192.168.1.2, 192.168.1.3; option routers 192.168.1.1; authoritative; log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.1.100 192.168.1.200;} host server2 {hardware ethernet 00:0c:6e:59:2f:a2; fixed-address 192.168.1.2;} host server3 {hardware ethernet b8:70:f4:68:d7:b6; fixed-address 192.168.1.3;}
В данном файле заданы следующие значения параметров: option domain-name…, option domain-name-servers… и option routers… — имя DNS-домена, список IP-адресов и/или DNS-имен DNS-серверов и список IP-адресов и/или DNS-имен шлюзов (учтите, что перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей); authoritative — признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов); log-facility… — раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера; subnet… — обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов range…; host… — узлы с MAС-адресами сетевых карт hardware ethernet, которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резольвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
На этом настройка DHCP-сервера заканчивается.
Переименовываем стартовый скрипт:
cd /usr/local/etc/rc.d mv isc-dhcpd.sh.samle isc-dhcpd.sh
Можно запустить сервер командой /usr/local/etc/rc.d/isc-dhcpd start, а затем запросить его состояние командой /usr/local/etc/rc.d/isc-dhcpd status. Если последняя команда выдаст сообщение «dhcpd is running as pid …», все нормально, если же – «dhcpd is not running«, придется найти и устранить ошибки в файлах конфигурации.
Для включения вывода сообщений DHCP-сервера на консоль следует изменить определение переменной
dhcpd_flags в файле /etc/rc.conf dhcpg_flags=”-4″
и перезапустить DHCP-сервер командой
/usr/local/etc/rc.d/isc-dhcpd restart
Такой способ наблюдения за состоянием сервера очень прост, но неудобен в связи с большим количеством информации выводимой на консоль.
Гораздо удобнее обеспечить запись сообщений DHCP-сервера в отдельный лог с помощью штатного демона syslogd. При этом нужно учесть, что из-за работы в chroot-окружении DHCP-сервер не может взаимодействовать с syslogd, сконфигурированным по умолчанию, т.к. сокет последнего находится за пределами chroot-окружения первого.
Для исправления данного обстоятельства необходимо заставить syslogd слушать еще один сокет, имеющий имя /var/run/log относительно корневой папки chroot-окружения DHCP-сервера.
Для автоматического создания такого сокета в процессе запуска syslogd, следует добавить соответствующий ключ -l к определению переменной syslogd_flags в файле /etc/rc.conf
syslogd_flags=”… -l /var/db/dhcpd/var/run/log”
Для того, чтобы syslogd записывал сообщения DHCP-сервера в лог /var/log/dhcpd.log, нужно добавить в файл /etc/syslog.conf строку
local7.* /var/log/dhcpd.log
Для вступления изменений в силу необходимо создать пустой лог командой
touch /var/log/dhcpd.log
а затем перезапустить syslogd командой
/etc/rc.d/syslogd restart
Начиная с этого момента, все сообщения DHCP-сервера будут записываться в лог /var/log/dhcpd.log.
Для того, чтобы с течением времени лог DHCP-сервер не разрастался до бесконечности, следует включить его ротацию с помощью штатной утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/dhcpd.log с сохранением семи предыдущих копий, сжатых архиватором bzip, нужно добавить в файл /etc/newsyslog.conf строку:
/var/log/dhcpd.log 644 7 * @T00 JC
Источник: http://blog.vb76.com/dhcp-server-pod-freebsd/
FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server
Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола TCP/IP с помощью DHCP (Dynamic Host Configuration Protocol).
С учетом того, что большинство современных операционных систем имеет в своем составе включенные по умолчанию DHCP-клиенты, не нуждающиеся в дополнительной настройке, процедура внедрения DHCP сводится к установке и настройке DHCP-сервера.
Постановка задачи
Данная статья описывает простую, но достаточную для обслуживания небольших локальных сетей конфигурацию самого популярного DHCP-сервера для операционных систем семейства Linux / Unix от Internet Systems Consortium (далее — DHCP-сервера).
Предложенная конфигурация обеспечивает динамическое распределение заданного диапазона IP-адресов, выделение фиксированных IP-адресов нескольким компьютерам (серверам), а также передачу клиентам всех параметров, необходимых для работы в сети TCP/IP.
Для повышения безопасности DHCP-сервер запускается в chroot(8) от имени непривилегированных пользователя / группы, а для повышения удобства диагностики и мониторинга он интегрирован со штатными средствами управления логами syslogd(8) и newsyslog(8).
Исходные данные
Имеется сервер с FreeBSD, подключенный к локальной сети с IP-адресом 192.168.0.0/24 через интерфейс bge1 с IP-адресом 192.168.0.1. На него будет установлен DHCP-сервер. Имеется несколько десятков компьютеров и сетевых устройств, которым следует выдавать IP-адреса из диапазона 192.168.0.101 — 192.168.0.
200, а также два сервера, которым нужно выдавать фиксированные IP-адреса 192.168.0.2 и 192.168.0.3. Кроме того, всем DHCP-клиентам необходимо сообщать имя DNS-домена company.local, IP-адреса DNS-серверов 192.168.0.2 и 192.168.0.3, а также IP-адрес шлюза по умолчанию 192.168.0.1.
DHCP-сервер будет устанавливаться из портов, поэтому я рекомендую обновить их.
Установка и настройка DHCP-сервера
Для обеспечения работоспособности DHCP-сервера требуется поддержка устройств bpf(4) ядром FreeBSD.
Стандартное ядро GENERIC поддерживает устройства bpf, а при использовании самосборного ядра придется убедиться в наличии строки device bpf в файле его конфигурации, и, если таковая отсутствует, добавить ее, пересобрать ядро и перезагрузить систему.
Для установки DHCP-сервера из портов следует выполнить команды:
cd /usr/ports/net/isc-dhcp41-server
make config install clean
В окне конфигурации нужно отметить единственную опцию [X] DHCP_PARANOIA Enable support for chroot. Обратите внимание, что при установке DHCP-сервера будут созданы пользователь dhcpd, группа dhcpd и заготовка файла конфигурации /usr/local/etc/dhcpd.conf.sample.
По умолчанию конфигурация DHCP-сервера хранится в файле /usr/local/etc/dhcpd.conf. Я предпочитаю создавать этот файл без использования вышеупомянутой заготовки, содержащей слишком много лишнего.
В рассматриваемом случае файл конфигурации должен иметь такой вид:
option domain-name company.local;
option domain-name-servers 192.168.0.2, 192.168.0.3;
option routers 192.168.0.1;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.100 192.168.0.200;}
host server2 {hardware ethernet 00:1c:c4:a5:07:ca; fixed-address 192.168.0.2;}
host server3 {hardware ethernet d8:d3:85:dc:df:bc; fixed-address 192.168.0.3;}
В данном файле заданы следующие значения параметров: option domain-name…, option domain-name-servers… и option routers…
— имя DNS-домена, список IP-адресов и/или DNS-имен DNS-серверов и список IP-адресов и/или DNS-имен шлюзов (учтите, что перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей); authoritative — признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов); log-facility… — раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера; subnet… — обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов range…; host… — узлы с MAС-адресами сетевых карт hardware ethernet, которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резольвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
Более подробная информация о параметрах, которые можно задать в файле конфигурации DHCP-сервера, имеется в dhcpd.conf(5), а список всех опций DHCP (параметров TCP/IP-сети, которые можно сообщить клиентам) — в dhcp-options(5).
Для того, чтобы DHCP-сервер автоматически запускался при запуске операционной системы, следует добавить в файл /etc/rc.conf строки:
dhcpd_enable=”YES”
dhcpd_flags=”-q -4″
dhcpd_conf=”/usr/local/etc/dhcpd.conf”
dhcpd_ifaces=”bge1″
dhcpd_withumask=”022″
dhcpd_chuser_enable=”YES”
dhcpd_withuser=”dhcpd”
dhcpd_withgroup=”dhcpd”
dhcpd_chroot_enable=”YES”
dhcpd_devfs_enable=”YES”
dhcpd_rootdir=”/var/db/dhcpd”
Данные строки запрещают вывод диагностических сообщений на консоль и отключают протокол IPv6, задают имя файла конфигурации, привязывают DHCP-сервер к интерфейсу bge1 (bge1 нужно заменить на имя используемого интерфейса, а при прослушивании нескольких интерфейсов придется перечислить их имена, используя пробел в качестве разделителя), устанавливают маску создаваемых файлов 022 (запрещают запись всем, кроме владельца), а также обеспечивают запуск в chroot-окружении с корневой папкой /var/db/dhcpd от имени пользователя dhcpd и группы dhcpd.
На этом настройка DHCP-сервера заканчивается. Можно запустить сервер командой /usr/local/etc/rc.d/isc-dhcpd start, а затем запросить его состояние командой /usr/local/etc/rc.d/isc-dhcpd status. Если последняя команда выдаст сообщение dhcpd is running as pid …, все нормально, если же – dhcpd is not running, придется найти и устранить ошибки в файлах конфигурации.
Анализ состояния DHCP-сервера
Для включения вывода сообщений DHCP-сервера на консоль следует изменить определение переменной dhcpd_flags в файле /etc/rc.conf:
dhcpd_flags=”-d”
и перезапустить DHCP-сервер командой /usr/local/etc/rc.d/isc-dhcpd restart.
Признаком корректного запуска DHCP-сервера может служить примерно такое сообщение:
Starting dhcpd.
Internet Systems Consortium DHCP Server 4.1.2
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.
Listening on BPF/bge1/00:1c:c4:fa:7c:73/192.168.0.0/24
Sending on BPF/bge1/00:1c:c4:fa:7c:73/192.168.0.0/24
Sending on Socket/fallback/fallback-net
Выделение динамических IP-адресов DHCP-клиентам сопровождается примерно такими сообщениями:
… dhcpd: DHCPDISCOVER from 90:21:55:bd:0b:36 via bge1
… dhcpd: DHCPOFFER on 192.168.0.101 to 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
… dhcpd: DHCPREQUEST for 192.168.0.101 (192.168.0.1) from 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
… dhcpd: DHCPACK on 192.168.0.101 to 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
а выделение предопределенных IP-адресов по заданным MAC-адресам сетевых карт — примерно такими:
… dhcpd: DHCPDISCOVER from 00:1c:c4:a5:07:ca via bge1
… dhcpd: DHCPOFFER on 192.168.0.2 to 00:1c:c4:a5:07:ca via bge1
… dhcpd: Dynamic and static leases present for 192.168.0.2.
… dhcpd: Remove host declaration server2 or remove 192.168.0.2
… dhcpd: from the dynamic address pool for 192.168.0.0/24
… dhcpd: DHCPREQUEST for 192.168.0.2 (192.168.0.1) from 00:1c:c4:a5:07:ca via bge1
… dhcpd: DHCPACK on 192.168.0.2 to 00:1c:c4:a5:07:ca via bge1
Рассмотренный способ наблюдения за состоянием DHCP-сервера прост и понятен (особенно при наличии под рукой документа RFC-2131), но очень неудобен в связи с необходимостью смотреть на консоль, на которую выдается огромное количество «лишней» информации.
Гораздо удобнее обеспечить запись сообщений DHCP-сервера в отдельный лог с помощью штатного демона syslogd. При этом нужно учесть, что из-за работы в chroot-окружении DHCP-сервер не может взаимодействовать с syslogd, сконфигурированным по умолчанию, т.к.
сокет последнего находится за пределами chroot-окружения первого. Для исправления данного обстоятельства необходимо заставить syslogd слушать еще один сокет, имеющий имя /var/run/log относительно корневой папки chroot-окружения DHCP-сервера.
Для автоматического создания такого сокета в процессе запуска syslogd, следует добавить соответствующий ключ -l к определению переменной syslogd_flags в файле /etc/rc.conf:
syslogd_flags=”… -l /var/db/dhcpd/var/run/log”
Для того, чтобы syslogd записывал сообщения DHCP-сервера в лог /var/log/dhcpd.log, нужно добавить в файл /etc/syslog.conf строку:
local7.* /var/log/dhcpd.log
Для вступления изменений в силу необходимо создать пустой лог командой touch /var/log/dhcpd.log, а затем перезапустить syslogd командой /etc/rc.d/syslogd restart. Начиная с этого момента, все сообщения DHCP-сервера будут записываться в лог /var/log/dhcpd.log.
Для того, чтобы с течением времени лог DHCP-сервер не разрастался до бесконечности, следует включить его ротацию с помощью штатной утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/dhcpd.
log с сохранением семи предыдущих копий, сжатых архиватором bzip2(1), нужно добавить в файл /etc/newsyslog.conf строку:
/var/log/dhcpd.log 644 7 * @T00 JC
Заключение
Я надеюсь, что не забыл ничего важного, и приведенной информации хватит для корректной настройки и последующей отладки DHCP-сервера от ISC на компьютере с операционной системой FreeBSD.
Источник: https://SergeySL.ru/freebsd-isc-dhcp-server/
Настройка DHCP сервера на FreeBSD 9.x
Задача:
Имеется интернет-шлюз на ОС FreeBSD 9 с работающей DNS-службой. “Внутренний” интерфейс (re0) сервера имеет ip-адрес 192.168.0.1. Хочется что бы сетевые карты клиентов локальной сети настраивались автоматически, для этого наш сервер должен выполнять функцию DHCP-сервера.
Решение:
Начинаем с установки необходимых пакетов. Для этого переходим в нужный каталог:
gateway# cd /usr/ports/net/isc-dhcp41-server
Смотрим зависимости:
gateway# make all-depends-list
Скорее всего мы увидим, что их нет.. ну и хорошо.
gateway# make config
задаем параметры установки, вот такие:
[*] DHCP_IPV6
[*] DHCP_PARANOIA
[ ] DHCP_LDAP
[*] DHCP_LDAP_SSL
Загружаем все необходимое:
gateway# make fetch
Устанавливаем:
gateway# make install clean
Как поставится (это будет очень быстро), обновим пути поиска:
gateway# rehash
После установки редактируем файл /usr/local/etc/dhcpd.conf примерно до следующего содержания:
option domain-name “domain.ru”;
option domain-name-servers 192.168.0.1;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.200 172.16.0.250;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
}
Рассмотрим содежримое dhcpd.conf:
option domain-name – указывается имя домена
option domain-name-servers – здесь перечисляются ip-адреса DNS-серверов, которые будут получать клиенты локальной сети
option subnet-mask – маска подсети, получаемая клиентами локальной сети
default-lease-time 600 – время аренды адреса в секундах (по-умолчанию)
max-lease-time 7200– максимальное время аренды адреса в секундах
ddns-update-style none – не обновлять DNS при выдаче клиенту
authoritative – авторитарный режим (типа это главный DHCP сервер на деревне)
log-facility local7 – уровень детализации логов
subnet – обслуживаемая подсеть (может быть несколько) + маска подсети
range – диапазон выдаваемых адресов
option routers – основной шлюз, получаемый клиентами локальной сети
option domain-name-servers – DNS-сервер, получаемый клиентами локальной сети
Добавляем в файл /etc/rc.conf следующие строки:
dhcpd_enable=”YES”
dhcpd_iface=”re0″
Первая строка определяет автозапуск DHCP сервера при старте системы, вторая строка определяет сетевой интерфейс (интерфейсы), на котором (которых) будет работать DHCP сервер.
Пробуем запустить DHCP-сервер:
gateway# /usr/local/etc/rc.d/isc-dhcpd start
Также хочется иметь возможность фиксировать ip-адреса за некторыми ПК.
Для этого нужно в файл /usr/local/etc/dhcpd.conf добавить всего лишь несколько строк:
host pc1 {
hardware ethernet 08:00:27:E2:81:C9;
fixed-address 192.168.0.2; }
Для того, что бы наши изменения вступили в силу, нужно перезапусить DHCP сервер:
gateway# /usr/local/etc/rc.d/isc-dhcpd restart
Остановить DHCP сервер можно командой:
testrouter# /usr/local/etc/rc.d/isc-dhcpd stop
Запустить DHCP сервер можно командой:
testrouter# /usr/local/etc/rc.d/isc-dhcpd start
Сведения о выданных IP-адресах и еще много чего интересного о том, кому они были выданы хранятся в файле /var/db/dhcpd/dhcpd.leases
Источник: http://sysalex.blogspot.com/2013/04/dhcp-freebsd-9x.html
DHCP-клиент в FreeBSD
Многие провайдеры в настоящее время предлагают получать настройки протокола TCP/IP автоматически по протоколу DHCP. Конечно в Интернете много руководств по настройке клиента на хосте с FreeBSD, я всё-таки повторюсь и опишу этот процесс.
Самый примитивный и долгий способ — настройка через sysinstall. Не делайте так, уважайте свое время. Для автоматической настройки интерфейса (например fxp0) достаточно выполнить команду
# dhclient fxp0 DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 8 DHCPOFFER from 192.168.0.1 DHCPREQUEST on fxp0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1
bound to 192.168.0.38 — renewal 300 seconds
Данный сервер обновляет каждые 300 секунд.
Конфигурационный файл /etc/dhclient.conf по умолчанию пустой, однако там можно написать ряд интересных опций. Однако нам это все не нужно, интерфейс и так настраивается. Причем все IP-адреса удаляются и присваивается полученный от DHCP-сервера:
# ifconfig fxp0
fxp0: flags=8843 metric 0 mtu 1500
options=219b ether 00:02:b3:28:1c:d3 inet 192.168.0.35 netmask 0xffffff00 broadcast 192.168.0.255 media: Ethernet autoselect (100baseTX )
status: active
Добавляется шлюз по умолчанию:
# netstat -rn |grep default
default 192.168.0.1 UGS 0 5913 fxp0
А файл /etc/resolv.conf копируется в /etc/resolv.conf.save, после завершения работы dhclinet содержимое /etc/resolv.conf восстанавливается.
В файл /var/db/dhclient.leases.fxp0 записывается информация об обновленяих:
lease { interface “fxp0”; fixed-address 192.168.0.38; option subnet-mask 255.255.255.0; option routers 192.168.0.1; option domain-name-servers 192.168.0.1,8.8.8.8; option domain-name “home.net”; option dhcp-lease-time 600; option dhcp-message-type 5; option dhcp-server-identifier 192.168.0.1; renew 1 2010/10/11 20:23:17; rebind 1 2010/10/11 20:27:02; expire 1 2010/10/11 20:28:17; } lease { interface “fxp0”; fixed-address 192.168.0.38; option subnet-mask 255.255.255.0; option routers 192.168.0.1; option domain-name-servers 192.168.0.1,8.8.8.8; option domain-name “home.net”; option dhcp-lease-time 600; option dhcp-message-type 5; option dhcp-server-identifier 192.168.0.1; renew 1 2010/10/11 20:28:17; rebind 1 2010/10/11 20:32:02; expire 1 2010/10/11 20:33:17; }
……………………
При желании процесс обновления можно фиксировать с помощью tcpdump:
# tcpdump -vvv -n -i fxp0 port 67
tcpdump: listening on fxp0, link-type EN10MB (Ethernet), capture size 96 bytes
23:53:20.250204 IP (tos 0x10, ttl 16, id 14045, offset 0, flags [none], proto UDP (17), length 328)
192.168.0.38.68 > 192.168.0.1.67: BOOTP/DHCP, Request from 00:02:b3:28:1c:d3, length 300, xid 0x32b3174c, Flags [none] (0x0000) Client-IP 192.168.0.38
Client-Ethernet-Address 00:02:b3:28:1c:d3 [|bootp]
23:53:20.799283 IP (tos 0x0, ttl 64, id 45269, offset 0, flags [none], proto UDP (17), length 328)
192.168.0.1.67 > 192.168.0.38.68: BOOTP/DHCP, Reply, length 300, xid 0x32b3174c, Flags [none] (0x0000) Client-IP 192.168.0.38 Your-IP 192.168.0.38
Client-Ethernet-Address 00:02:b3:28:1c:d3 [|bootp]
Вот так-то, простота и прекрасная диагностика.
Источник: http://myfreebsd.ru/network/dhcp/dhcp-klient-v-freebsd
Свободное программное обеспечение для Windows, Linux и FreeBSD, статьи по проектированию сетей, органинизации информационной безопасности и IT технологий
Программирование под .Net без Visual Studio |
Многие знают, что сценарии на JavaScript и VBS выполняются в браузерах, но не все знают, что эти же скрипты можно запускать и в операционной системе Windows напрямую. За запуск сценариев JavaScript и VBScript отвечает компонент Windows Script Host (WSH), состоящий из оконного интерпретатора WSCript.exe и консольного интерпретатора CSCript.exe, его отрицательным моментом является то, что он не может создавать из скриптов исполняемые файлы EXE. Вообще скомпилировать VBScript и JavaScript в исполняемый бинарный файл можно установив на компьютер Microsoft Visual Studio. Но мало кто знает, что на самом деле компилятор уже встроен в операционную систему. В составе пакета .Net присутствуют два файла: jsc.exe и vbc.
Для того, чтобы компилятор начал работать, путь к нему надо добавить в переменную PATH, для этого находим поиском папку, где находится файл vbc.exe или jsc.exe и добавляем путь до неё в переменную, |
Первая в мире игровая приставка |
Многие читатели помнят домашние компьютеры zx-spectrum, использовавшиеся в качестве игровой приставки, позднее в начале 90-ых годов в продаже появились 8-и битные приставки Dendy, на смену им пришли 16 битная Sega и 32-х битные игровые платформы Panasonic 3DO, Sony Playstation и X-Box. |
Бесплатная лечащая утилита |
Microsoft Safety Scanner – бесплатная программа для сканирования компьютера на вирусы от Microsoft. Скачать ее можно с официального сайта корпорации, срок действия скачанного файла составляет 10 дней, по его истечению необходимо скачать сканер вновь. Данное ограничение введено по той причине, что Microsoft постоянно добавляет в данный пакет новые сигнатуры вирусов. |
Бесплатная математическая программа |
Microsoft Mathematics 4.0 является свободно распространяемой образовательной программой, предназначенной для решения математических и естественнонаучных задач. При создании программы инженеры Майкрософт ориентировались на потребности школьников и студентов начальных курсов университетов. Microsoft Mathematics помимо арифметических задач позволяет решать дифференциальные и интегральные уравнения, вычислять тригонометрические функции, работать с матрицами, логарифмами, находить корни квадратных уравнений.
|
После успеха игровой приставки Magnavox Odyssey рынок видеоигр испытывал небывалый подъем, что неудивительно, в конце 70-ых персональный компьютер стоил порядка 1000 долларов, в то время как игровая приставка обходилась в 200 $. Американская фирма Atari решила выпустить на рынок новую игровую приставку. В качестве центрального процессора была выбрана 8 битная микросхема MOS Technology 6502, разработанная той же командой схемотехников, которые перед этим создали легендарный процессор Motorolla 6800. Хотя и возможности процессора были невелики, он имел 16 битную адресную шину, соответственно объем оперативной памяти, к которой мог обращаться процессор был ограничен 64 килобайтами. Другая особенность заключалась в малом количестве регистров, в процессоре присутствовали 8 разрядные аккумулятор A, два индексных регистра X и Y, указатель стека S, регистр флажков P |
В прошлых статьях мы рассматривали применение программируемых калькуляторов и их эмуляторов. Рассмотрим теперь, как же обойтись без них. Мало кто из новичков знает, что в операционную систему Windows уже строена поддержка языков программирования JScript и Visual Basic Scripting Edition или попросту говоря VBScript. Остановимся на последнем поподробнее. Данный язык программирования является интерпретируемым, то есть исходный код не компилируется в исполняемый файл, а проходит через компонент операционной системы Windows Script Host.
Рассмотрим пример написания простейшей программы на VBScript, рассчитывающей площадь круга. Для расчетов нам понадобится значение числа пи, к сожалению в VBS нет данной функции и нам придется создать ее самостоятельно, |
Microsoft Small Basic – простейший язык программирования |
В 2009 году крупнейший производитель программного обеспечения выпустил простейший язык программирования – Microsoft Small Basic. Интерфейс программы выполнен в виде традиционной ленты и интуитивно понятен. Вообще язык Small Basic был разработан в Майкрософте для обучения программированию детей в возрасте от 10 до 16 лет и включает в себя всего лишь 14 ключевых слов. Несмотря на свою простоту, программы созданные в Small Basic, могут быть легко преобразованы в формат Microsoft Visual Basic.Системные требования программы невелики, для работы требуется операционная система Windows XP, Vista или Семерка, а так же .NET Framework 3.5 или выше. Программа, созданная в Small Basic может как быть скомпилирована в исполняемый файл EXE так и загружены в Интернет и выполняться в обычном браузере.
|
Программирование на микрокалькуляторе |
В то время, когда в школах Соединенных Штатов детей обучают использованию микрокалькуляторов Texas Instruments, в Российской Федерации использование программируемых калькуляторов на экзаменах запрещено. Сегодня мы расскажем, как написать простейшую программу для калькулятора, для чего это необходимо и что же вообще представляет собой этот враг Российского образования, программируемый калькулятор. В качестве стенда будем использовать программируемый калькулятор МК-61 или его эмулятор, описанный в предыдущей статье.
Встроенных функций в микрокалькулятор немного, он может вычислять тригонометрические функции, возводить число в степень, вычислять квадратные корни чисел, а так же работать с логарифмами. Казалось бы, немного, но калькулятор имеет 14 адресуемых регистров, 5 регистров стека и имел оперативную память в 105 шагов программы. Интерфейс калькулятора представлял клавиатуру из 30 клавиш и экран, отображающий 8 цифр мантиссы |
Источник: http://sariolla.ru/index.php?option=com_content&view=article&id=137%3A-dhcp-freebsd&catid=35%3Afreebsd&Itemid=59&lang=ru