Freebsd по dhcp не получает настройки

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: zi@FreeBSD.org
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.

Читайте также:  Как я готовился и бежал марафон 100 км

И так что же мы видим:

  • 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 строку:

Читайте также:  Терминальный сервер на windows 7 sp1, 2 различных способа

/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 сервер.

Читайте также:  Повторяющиеся уведомления в zabbix

Пробуем запустить 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.

exe, с помощью них можно создать EXE приложение из наших скриптов *.vb или *.js.

Для того, чтобы компилятор начал работать, путь к нему надо добавить в переменную PATH, для этого находим поиском папку, где находится файл vbc.exe или jsc.exe и добавляем путь до неё в переменную,

 

Первая в мире игровая приставка

Многие читатели помнят домашние компьютеры zx-spectrum, использовавшиеся в качестве игровой приставки, позднее в начале 90-ых годов в продаже появились 8-и битные приставки Dendy, на смену им пришли 16 битная Sega и 32-х битные игровые платформы Panasonic 3DO, Sony Playstation и X-Box.
Но мало кто знает о первой в мире игровой приставке – Magnavox Odyssey. В основе приставки лежала идея американского инженера Ральфа Баера создать игровое устройство для подключения к телевизору. Разработка игровой приставки началась в 1966 году, и после более чем двух лет упорной работы прототип был готов. Назывался он Brown Box, в нем присутствовало 12 встроенных игр, далее начался следующий важный этап – патентование и поиск инвестора. Прототип был представлен кабельным и эфирным телекомпаниям, в итоге контракт на выпуск приставки был подписан с Magnavox.

 

Бесплатная лечащая утилита

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  для повседневных  задач автоматизации процессов системного администрирования, создания динамических Web-страниц на серверах и написания клиентских интерфейсов пользователей Web приложений для браузера Internet Explorer.

Рассмотрим пример написания простейшей программы на 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 так и загружены в Интернет и выполняться в обычном браузере.

В предыдущей статье мы описывали программу для микрокалькулятора, вычисляющую площадь круга. Напишем такую же программу на Small Basic:

 

Программирование на микрокалькуляторе

В то время, когда в школах Соединенных Штатов детей обучают использованию микрокалькуляторов Texas Instruments, в Российской Федерации использование программируемых калькуляторов на экзаменах запрещено.

Сегодня мы расскажем, как написать простейшую программу для калькулятора, для чего это необходимо и что же вообще представляет собой этот враг Российского образования, программируемый калькулятор.

В качестве стенда будем использовать программируемый калькулятор МК-61 или его эмулятор, описанный в предыдущей статье.

Данный калькулятор был популярен в 80-ых годах прошлого века, в то время никто не запрещал использовать его на экзаменах.

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

Казалось бы, немного, но калькулятор имеет 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

Ссылка на основную публикацию