-Поиск по дневнику

Поиск сообщений в a1addin

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 20.06.2010
Записей: 232
Комментариев: 115
Написано: 841


Mikrotik. Проброс всего трафика через IPSEC-туннель

Понедельник, 21 Ноября 2016 г. 04:38 + в цитатник


3854108_AllTrafficOverIpsec (700x510, 124Kb)/3854108_AllTrafficOverIpsec1 (700x551, 128Kb)/3854108_AllTrafficOverIpsec2_1 (700x537, 129Kb)



Сначала надо построить IpSec-туннель:

В филиале:

ip ipsec proposal add auth-algorithms=sha1 disabled=no enc-algorithms=aes-128-cbc lifetime=1h name=Kandava pfs-group=none

add address=hq_public_ip auth-method=pre-shared-key dh-group=modp1024 disabled=no dpd-interval=2m dpd-maximum-failures=5 \       enc-algorithm=aes-128 exchange-mode=main generate-policy=no hash-algorithm=sha1 lifebytes=0 lifetime=1d local-address=:: nat-traversal=no \ passive=no policy-template-group= \group1 port=500 proposal-check=obey secret=secretphrase send-initial-contact=yes

В главном офисе:

ip ipsec proposal add auth-algorithms=sha1 disabled=no enc-algorithms=aes-128-cbc lifetime=1h name=Kandava pfs-group=none

add address=branch_public_ip auth-method=pre-shared-key dh-group=modp1024 disabled=no dpd-interval=2m dpd-maximum-failures=5 \       enc-algorithm=aes-128 exchange-mode=main generate-policy=no hash-algorithm=sha1 lifebytes=0 lifetime=1d local-address=:: nat-traversal=no \ passive=no policy-template-group= \group1 port=500 proposal-check=obey secret=secretphrase send-initial-contact=yes

Далее создаю GRE-интерфейсы

В филиале:

ip interface add allow-fast-path=yes clamp-tcp-mss=yes disabled=no dont-fragment=no dscp=inherit !ipsec-secret !keepalive local-address=branch_gre_ip \ mtu=auto name=gre-tunnel1  remote-address=hq_gre_ip

В главном офисе:

ip interface add allow-fast-path=yes clamp-tcp-mss=yes disabled=no dont-fragment=no dscp=inherit !ipsec-secret !keepalive local-address=hq_gre_ip \ mtu=auto name=gre-tunnel1  remote-address=branch_gre_ip

Далее создаю ipsec-policy:

В филиале:

ip ipsec policy add action=encrypt comment=Kandava disabled=no dst-address=hq_gre_ip dst-port=any ipsec-protocols=esp level=require priority=0 \ proposal=Kandava protocol=all sa-dst-address=hq_public_ip sa-src-address=branch_public_ip src-address=branch_gre_ip src-port=any \ tunnel=yes

В главном офисе:

ip ipsec policy add action=encrypt comment=Kandava disabled=no dst-address=branch_gre_ip dst-port=any ipsec-protocols=esp level=require priority=0 \ proposal=Kandava protocol=all sa-dst-address=branch_public_ip sa-src-address=hq_public_ip src-address=hq_gre_ip src-port=any \   tunnel=yes

Осталось- прописать марщруты:

В филиале:

ip routes add dst-address=hq_public_ip gateway=provider_gw_ip !route-tag !routing-mark scope=30 target-scope=10

ip routes add !bgp-as-path !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-prepend !check-gateway \              disabled=no distance=1 dst-address=hq_lan_net gateway=gre-tunnel1 !route-tag !routing-mark scope=30 target-scope=10

ip routes add !bgp-as-path !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-prepend !check-gateway disabled=no distance=1 dst-address= 0.0.0.0/0 gateway=gre-tunnel1 !route-tag !routing-mark scope=30 target-scope=10

В главном офисе:

ip routes add !bgp-as-path !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-prepend !check-gateway \              disabled=no distance=1 dst-address=branch_lan_net gateway=gre-tunnel1 !route-tag !routing-mark scope=30 target-scope=10

Рубрики:  mikrotik

Метки:  

Чердак моего мозга.

Среда, 19 Октября 2016 г. 19:46 + в цитатник

93 (380x250, 72Kb)

Bat-файлы... Что-то из 90-х...
Раньше них был только, пожалуй, Sinclair и программирование на ассемблере Z80.

Сегодня надо было на своем компе с Windows 10 зашедулить выполнение одного файла с повторением каждые 30 секунд.

Был уверен, что это элементарно (при помощи встроенного task sheduler). Оказалось, что ошибался. После получасовой безрезультатной гимнастики со встроенным в Windows шедулером бросил это дело. А проблему обошел написанием bat-файла с таким содержимым:

:L1
report.exe
TIMEOUT /T 30 /NOBREAK
goto L1

Чердак помог :)

Рубрики:  Технические обзоры
Вообще

Метки:  

Про курсы по программе MTCNA (MikroTik).

Воскресенье, 11 Сентября 2016 г. 01:00 + в цитатник

mtcna (166x95, 3Kb)

Когда на сайте router.lv увидел обьявление о наборе группы на обучение по программе MikroTik Certified Network Associate (MTCNA), то понял, что я этого хочу.

3854108_mtcna_flyer (504x700, 494Kb)

Было указано, что после обучения студенты будут в достаточной мере знакомы  с RouterOS и продуктами RouterBoard,  конфигурировать, эксплуатировать, иметь основные навыки по поиску и устранению проблем, а также осуществлять поддержку пользователей.

Цель курса: подготовить инженеров по разработке и поддержке:
·         корпоративных сетей и
·         абонентского оборудования (CPEs) работающего с провайдером интернета (WISP, ISP).

Требование к студентам – должны хорошо понимать протоколы TCP/IP и подсети.

Ознакомился с программой, понравились темы: маршрутизация (routing), мосты(bridging), качество обслуживания (QoS), файрвол… Не то, чтобы я совсем не знал темы, но хотелось упорядочить знания.  

Курс должен был читать Andis Āriņš, молодой и очень знающий специалист. Впрочем, молодым и очень знающим специалистом он был уже 10 лет назад, когда я у него купил свой первый рутер MikroTik.

Первый день обучения прошел сравнительно легко: то, что для многих было в новинку, для меня было обыденно. Хотя и я узнал кое-что новое, например, про работу рутера с источноками бесперебойного питания (UPS), про возможность соединять рутеры DAS-кабелями… Удивился домашним заданиям (еще раньше вечернее время уже распланировал на другие дела)

Второй день был значительно труднее.

3854108_mtcnaday2 (700x393, 22Kb)

С одной стороны я ожидал больше упора на теорию, на практический разбор ethernet-пакетов при помощи, например, программы Wireshark*. С другой стороны, мне непросто было успевать за моими коллегами, которые эту теорию уже учили в университете, хоть и рассматривались не сами пакеты, а действия над ними через интерфейс рутеров MikroTik. Пришлось впрячься и работать с полной отдачей. Результат хороший: узнал про премаршрутизацию (и как с ее помошью можно вырубить нелегальные рутеры в своих сетях), про маркирование (mangle) и зачем это надо, про распределение трафика (Queue, PCQ).Был приятно удивлен, когда преподаватель упомянул меня и одно решение из моей практики в качестве примера. Отдельной «шоколадкой» была практическая тема по конфигурированию HotSpot-a.

Третий день неожиданно оказался не таким тяжелым: тунели и WiFi. Темы для меня не новые. Но волновался из-за предстоящего экзамена – тест из 30 вопросов, на которые дается 1 час. Времени на повторение материала не было, опасался, что может не хватить времени на обдумывание. Волновался, что может не хватить моего английского (экзаменационный тест на английском языке). Волновался, что может чего-то недопонял, весь курс читался на латышском языке.

Все вопросы теста ответил за 30 минут. Еще 5 минут – на проверку. Понял, что нечего тянуть кота за хвост и отправил ответы на проверку. Результат - 82%  (достаточно 60%).

Короче, доволен:

  • Общением,
  • Полученными знаниями,
  • Своим результатом.

Примечание:

*) Wireshark (http://www.wireshark.org)is the world's foremost network protocol analyzer. It lets you see what's happening on your network at a microscopic level. It is the de facto (and often de jure) standard across many industries and educational institutions.

Рубрики:  Технические обзоры
Вообще

Метки:  

Я БУДУ РЯДОМ

Воскресенье, 10 Июля 2016 г. 07:47 + в цитатник
drama (380x541, 58Kb)

Я БУДУ РЯДОМ

Сильнейший фильм из просмотренных за последние лет пять.

торрент

Рубрики:  Вообще

Метки:  

Сладости SQL

Четверг, 26 Мая 2016 г. 19:37 + в цитатник
sql (204x204, 7Kb)

1.  Конструкция IN:

SELECT  * FROM  table WHERE  param1
IN ( 314, 320, 400)

2. Конструкция HAVING:

SELECT param1, count(*) c FROM table WHERE where param1 = '4' and del = 0 GROUP BY param1
HAVING c > 1

Рубрики:  Технические обзоры
Программирование

Метки:  

ssmtp настройка отправки почты с Ubuntu/Debian/Linux

Вторник, 09 Февраля 2016 г. 12:50 + в цитатник

ssmtp настройка отправки почты с Ubuntu/Debian/Linux

Источник: http://itautsors.ru/ssmtp-nastroyka-otpravki-pochty-s-ubuntudebianlinux

 

Устанавливаем ssmtp
Отправляем почту из консоли
Отрпавка текстового сообщения из файла message.txt
Отправим почтовое сообщение через PHP
Отправка письма при отсутвии пинга
Проблемы

Устанавливваем ssmtp

apt-get install ssmtp

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

man -m 5 ssmtp.conf

Делаем бекап файла конфигуации

mv /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.default

Копируем болванку файла конфигурации ssmtp.conf, столкнулся еще с тем что после последней строки
AuthPass=password, необходим перевод строки, иначе аутентификация не пройдет.

wget -P /etc/ssmtp http://itautsors.ru/ssmtp.conf

Редактируем файл конфигурации

nano /etc/ssmtp/ssmtp.conf
ПоказатьСодержимое файла ssmtp.conf
Далее правим файл revaliases
nano /etc/ssmtp/revaliases
ПоказатьСодержимое файла revaliases

В *NIX-мире для передачи почты первым был написан сервер sendmail. Этот сервер долгое время был стандартом де-факто. Постепенно была сформирована концепция MTA — то есть, концепция Mail Transfer Agent. MTA — это элемент системы передачи почты, который занимается только процессом передачи почтовых сообщений.

Однако исторически в системе Linux принято, что программа для передачи почтовых сообщений должна быть именно sendmail. Поэтому, когда устанавливается любая из MTA-программ, она создает файлы линков /usr/sbin/sendmail и /usr/lib/sendmail, которые указывают на нужную программу.

Посмотрим куда у нас ведет mail

whereis mail


Проверяем файл симилинк,

$ cd /usr/sbin && ls -l | grep sendmail

Должны увидеть

lrwxrwxrwx 1 root root 5 2011-04-07 03:09 sendmail -> ssmtp

Если же нет то виртуальный пакет mail-transfer-agent не ссылается на пакет ssmtp, и это необходимо исправить. Удалив пакеты на которые ссылается mail-transfer-agent, к примеру posfix. 

Примеры работы ssmtp

Отправляем почту из консоли

echo "Это тестовое письмо из консоли" | ssmtp -v -s адрескудаотправляем@domain.com

если письмо пришло то ssmpt работает

теперь отправляем

echo "Наше тест-сообщения" | mail -v -s "Наш заголовак письма" адрескудаотправляем@domain.com

если присьмо пришло то линки настроены правильно

Отрпавка текстового сообщения из файла message.txt

Создаем файл и пишем в него текст сообщения

echo "это наше сообщение из файла" > /home/NameUser/message.txt

Отправим текст из файла

ssmtp адрескудаотправляем@domain.com < /home/NameUser/message.txt

Отправим почтовое сообщение через PHP

Отправка писем для своего сайта, использующего php
Изменения файле php.ini, который может находится в разных каталогах в зависимости от способа подключения интерпретатора php:

# php подключен как модуль apache
$ nano /etc/php/apache2-php5.2/php.ini
# php в режиме php-fpm для nginx
$ nano /etc/php/fpm-php5.3/php.ini

Найдите в php.ini строку sendmail_path и отредактируйте ее до следующего вида:

sendmail_path = /usr/sbin/ssmtp -t

Для проверки сделанных настроек создайте файл в корневой директории вашего сервера вида phpinfo.php и вставьте в него следующий код:

<?php
phpinfo();
?>

Откройте созданную страницу в браузере http://мойсайт/phpinfo.php и в секции Configuration PHP Core найдите значение параметра sendmail_path.

Создать файл для проверки работы функции PHP mail():

<?php
mail('адрескудаотправляем@domain.com', 'Заработало', 'Это проверка работы ssmtp');
?>

Соответственно, на указанный ящик вы должны получить письмо.

Отправка письма при отсутвии пинга

создаем файл скрипта

touch /home/NameUser/test_ping.sh

 

ПоказатьСодержимое файла test_ping.sh
 
или скачиваем его
wget -P /home/NameUser/ http://itautsors.ru/ping_test.sh

Делаем файл исполняемым

chmod +x /home/NameUser/ping_test.sh

Зайдем в крон

crontab -e

И пропишем запуск нашего скрипта

SHELL=/bin/bash
MAILTO=user
0-59 * * * * /home/UserName/ping_test.sh

Проблемы

В конфигурационном файле ssmtp.conf Добавляем в самое начало конфига строчку:

Debug=YES


Далее в одной консоли запускаем

tail -f /var/log/maillog

из другой консоли шлем письмо

Рубрики:  Технические обзоры

Метки:  

Соединение Mikrotik и HP switch. VLAN-ы по агрегатированному соединению.

Вторник, 29 Декабря 2015 г. 23:29 + в цитатник

aggr_img (400x248, 205Kb)


По ходу дел появилась задача: соединить два узла на разных этажах одного здания.

Следом за задачей пришли идеи...

Идея №1 - трафик пустить по VLAN. Какая-никакая защита от вульгарного подключения.

Идея №2 - если все пустить через VLAN, то для надежности и повышения эффективности разумно обьединить физические линки в одно агрегатированное соединение.


3854108_aggr_link (440x461, 34Kb)/3854108_hpmikrotikconn (553x503, 50Kb)


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

Планирование назначения портов

Порядок в голове - первое условие успеха, поэтому начну с назначения портов.

3854108_mikrotikrouterboardrb951g2hnd (500x172, 14Kb)/3854108_rb951g2hnd (500x172, 15Kb)

3854108_switch_HP (700x215, 30Kb)

Конфигурирование агрегатированного соединения

Со стороны Mikrotik-а надо создать новый bonding-интерфейс и приписать к нему назначенные для uplink порты:

3854108_mikrotik_bonding (619x589, 44Kb)

 

Со стороны HP коммутатора несколько "чудесатее". Вместо использования link aggregation, которое применяется при соединении между коммутаторами, uplink-порты коммутатора надо перевести в режим "trunk":

3854108_switch_HP_link_type (700x401, 86Kb)

 

Конфигурирование VLAN со стороны HP коммутатора

1-й шаг - создание VLAN

3854108_switch_HP_create_vlan (700x402, 80Kb)

 

2-й шаг - назначение VLAN портам коммутатора:

3854108_switch_HP_edit_vlan (700x436, 97Kb)

 

3-й шаг - назначение ip-адреса (адресов) для доступа к web-консоли коммутатора:

3854108_switch_HP_create_ip (700x216, 51Kb)

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

 

Конфигурирование VLAN со стороны Mikrotik-a

1. Создаю VLAN-интерфейсы и приписываю их к uplink-интерфейсу

3854108_mikrotik_vlan (622x401, 34Kb)

 

2. Если надо, то создаю bridge для связывания VLAN и untagged-интерфейсов.

3. Назначаю ip-адрес интерфейсам.

Проверка

Конфигурирование закончено и можно приступать к тестам:

  • проверить прохождение трафика в каждой сети:
  • проверить изоляцию сетей друг от друга;
  • проверить скорость соединения;
  • проверить сохранение соединения после поочередного отключения uplink-линий.
Рубрики:  Технические обзоры

Метки:  

Kак создавать понятные логические (L3) схемы сети

Среда, 02 Декабря 2015 г. 22:44 + в цитатник

ПЕРЕВОД взят с habrahabr.ru
Оригинал: Jaakko Rautanen


Cамая большая проблема, с которой я сталкиваюсь при работе с сетями предприятий — это отсутствие чётких и понятных логических схем сети. В большинстве случаев я сталкиваюсь с ситуациями, когда заказчик не может предоставить никаких логических схем или диаграмм. Сетевые диаграммы (далее L3-схемы) являются чрезвычайно важными при решении проблем, либо планировании изменений в сети предприятия. Логические схемы во многих случаях оказываются более ценными, чем схемы физических соединений. Иногда мне встречаются «логически-физически-гибридные» схемы, которые практически бесполезны. Если вы не знаете логическую топологию вашей сети, вы слепы. Как правило, умение изображать логическую схему сети не является общим навыком. Именно по этой причине я пишу эту статью про создание чётких и понятных логических схем сети.

Какая информация должна быть представлена на L3-схемах?

Для того, чтобы создать схему сети, вы должны иметь точное представление о том, какая информация должна присутствовать и на каких именно схемах. В противном случае вы станете смешивать информацию и в итоге получится очередная бесполезная «гибридная» схема. Хорошие L3-схемы содержат следующую информацию:

подсети
VLAN ID (все)
названия VLAN\'ов
сетевые адреса и маски (префиксы)

L3-устройства
маршрутизаторы, межсетевые экраны (далее МСЭ) и VPN-шлюзы (как минимум)
наиболее значимые серверы (например, DNS и пр.)
ip-адреса этих серверов
логические интерфейсы

информацию протоколов маршрутизации

Какой информации НЕ должно быть на L3-схемах?

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

вся информация L2 и L1 (в общем случае)
L2-коммутаторы (может быть представлен только интерфейс управления)
физические соединения между устройствами

Используемые обозначения

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

Подсеть, представленная как трубка или линия:

VRF или другая не известная точно зона представляется в виде облака:




Какая информация необходима для создания L3-схемы?

Для того, чтобы создать логическую схему сети, понадобится следующая информация:

Схема L2 (или L1) — представление физических соединений между устройствами L3 и коммутаторами
Конфигурации устройств L3 — текстовые файлы либо доступ к GUI, и т.д.
Конфигурации устройств L2 — текстовые файлы либо доступ к GUI, и т.д.


Пример

В данном примере мы будем использовать простую сеть. В ней будут присутствовать коммутаторы Cisco и МСЭ Juniper Netscreen. Нам предоставлена схема L2, также как и конфигурационные файлы большинства представленных устройств. Конфигурационные файлы пограничных маршрутизаторов ISP не предоставлены, т.к. в реальной жизни такую информацию ISP не передаёт. Ниже представлена L2-топология сети:



А здесь представлены файлы конфигурации устройств. Оставлена только необходимая информация:

asw1
asw2
asw3
csw1
csw2
fw1
fw2
outsw1
outsw2

Сбор информации и её визуализация

Хорошо. Теперь, когда мы имеем всю необходимую информацию, можно приступать к визуализации.

Процесс отображения шаг за шагом

Сбор информации:
Для начала откроем файл конфигурации (в данном случае ASW1).
Возьмём оттуда каждый ip-адрес из разделов интерфейсов. В данном случае есть только один адрес (192.168.10.11) с маской 255.255.255.128. Имя интерфейса — vlan250, и имя vlan 250 — In-mgmt.
Возьмём все статические маршруты из конгфигурации. В данном случае есть только один (ip default-gateway), и он указывает на 192.168.10.1.

Отображение:
Теперь давайте отобразим информацию, которую мы собрали. Во-первых, нарисуем устройство ASW1. ASW1 является коммутатором, поэтому используем символ коммутатора.
Нарисуем подсеть (трубку). Назначим ей имя In-mgmt, VLAN-ID 250 и адрес 192.168.10.0/25.
Соединим ASW1 и подсеть.
Вставляем текстовое поле между символами ASW1 и подсети. Отобразим в нём имя логического интерфейса и ip-адрес. В данном случае имя интерфейса будет vlan250, и последний октет ip-адреса — .11 (это является общей практикой — отображать только последний октет ip-адреса, т.к. ip-адрес сети уже присутствует на схеме).
Также в сети In-mgmt есть другое устройство. Или, как минимум, должно быть. Нам ещё неизвестно имя этого устройства, но его IP-адрес 192.168.10.1. Мы узнали это потому, что ASW1 указывает на этот адрес как на шлюз по-умолчанию. Поэтому давайте отобразим это устройство на схеме и дадим ему временное имя \"??\". Также добавим его адрес на схему — .1 (кстати, я всегда выделяю неточную/неизвестную информацию красным цветом, чтобы глядя на схему можно было сразу понять, что на ней требует уточнения).


На этом этапе мы получаем схему, подобную этой:



Повторите этот процесс шаг за шагом для каждого сетевого устройства. Соберите всю информацию, относящуюся к IP, и отобразите на этой же схеме: каждый ip-адрес, каждый интерфейс и каждый статический маршрут. В процессе ваша схема станет очень точной. Убедитесь, что устройства, которые упомянуты, но пока неизвестны, отображены на схеме. Точно так же, как мы делали ранее с адресом 192.168.10.1. Как только вы выполните всё перечисленное для всех известных сетевых устройств, можно начать выяснение неизвестной информации. Вы можете использовать для этого таблицы MAC и ARP (интересно, стоит ли писать следующий пост, рассказывающий подробно об этом этапе?).

В конечном счёте мы будем иметь схему наподобие этой:





Заключение

Нарисовать логическую схему сети можно очень просто, если вы обладаете соответствующими знаниями. Это продолжительный процесс, выполняемый вручную, но это отнюдь не волшебство. Как только у вас есть L3-схема сети, достаточно нетрудно поддерживать её в актуальном состоянии. Получаемые преимущества стоят приложенных усилий:

вы можете планировать изменения быстро и точно;
решение проблем занимает гораздо меньше времени, чем до этого. Представим, что кому-то нужно решить проблему недоступности сервиса для 192.168.0.200 до 192.168.1.200. После просмотра L3-схемы можно с уверенностью сказать, что МСЭ не является причиной данной проблемы.
Вы можете легко соблюдать корректность правил МСЭ. Я видел ситуации, когда МСЭ содержали правила для трафика, который никогда бы не прошёл через этот МСЭ. Этот пример отлично показывает, что логическая топология сети неизвестна.
Обычно как только L3-схема сети создана, вы сразу заметите, какие участки сети не имеют избыточности и т.д. Другими словами, топология L3 (а также избыточность) является такой же важной как избыточность на физическом уровне.

Рубрики:  Технические обзоры

Метки:  

Абстрагирование в программировании

Воскресенье, 29 Ноября 2015 г. 15:32 + в цитатник

mathtest (620x415, 28Kb)

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

Дополнено 27 марта 2016 года:

Через 4 месяца эксплуатации на реальном производстве начала вылезать проблема.
На душе стало тяжело: неужели проблема в методе ?

Потратил целый день, исследовал 1200 строк кода, распечатал около 50 листов "кривых отчетов"
Причина была обнаружена - в процессе обработки не учитывался один аргумент. Как правило - незначительный. Настолько незначительный, что при постановке задачи о нем речь вообще не шла.
Это дело поправил.

А с души упал груз: неучтенный аргумент - это не ошибка в методе !

Рубрики:  Программирование


Понравилось: 1 пользователю

VLAN и радиолинк

Вторник, 23 Июня 2015 г. 20:51 + в цитатник

ubnt_ns_m5 (127x297, 17Kb)

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

Итак, что же такого было сделано? Запускали новую торговую площадку и, как обычно, в домик продавцов подали интернет (WAN) из соседнего здания через радиолинк. Однако, на соседнем здании мы расположили еще и ip-камеру видеонаблюдения. Ее надо включать в локальную сеть (LAN). Ставить для этого еще один радиолинк? Решение простое и на первый взгляд очевидное, но: - два радиолинка рядом будут друг другу мешать (интерференция).

Впервые в своей жизни (не считая случаев с виртуализацией) я подумал о применении VLAN, а коллега обратил внимание, что радиолинки Ubiquiti NanoStation M5, которые мы успешно применяем, имеют два физических ethernet-порта. Стали читать документацию на радиолинк (что не помогло) и смоделировали схему на рабочем столе. Через некоторое время разобрались, что прошивку радиолинков надо обязательно нужно обновить и научились конфигурировать VLAN в радиолинках.

Схема получилась такая:

3854108_UBNT_vlan (700x525, 47Kb)

Конфигурирование VLAN в UBNT несложное, но и не тривиальное. Основная идея - на каждом устройстве для каждого VLAN надо создать и конфигурировать bridge.

Пройдем по шагам конфигурирование VLAN для моей схемы.

Конфигурирую AccessPoint:

  1.  открываю раздел Networks вебконсоли UBNT;
  2. указываю параметр ConfigurationMode = Advanced, чтобы стали доступны для конфигурации дополнительные секции.
  3. конфигурирую VLAN Network . Суть этой настройки очень проста - приписать к интерфейсу VLAN, поэтому к интерфейсу WLAN0(собственно радиоканал) приписываю VLAN(100) для провайдера и VLAN(5) для LAN.
  4. в секции Bridge Network создаю два bridge: BRIDGE0 и DRIDGE1.
    К BRIDGE0 приписываю порты WLAN0.100 и LAN0 (Main)
    К BRIDGE1 приписываю порты WLAN0.5 и LAN1 (Secondary)
     

Конфигурирую Station:

  1.  открываю раздел Networks вебконсоли UBNT;
  2. указываю параметр ConfigurationMode = Advanced;
  3. конфигурирую VLAN Network  и к интерфейсу WLAN0(собственно радиоканал) и к интерфейсу LAN0 (Main) приписываю VLAN(100) для провайдера и VLAN(5) для LAN.
  4. в секции Bridge Network создаю два bridge: BRIDGE0 и DRIDGE1.
    К BRIDGE0 приписываю порты WLAN0.100 и LAN0.100
    К BRIDGE1 приписываю порты WLAN0.5 и LAN0.5 и LAN1 (Secondary)

     

Конфигурация выполнена. Хочу отметить, что включение интерфейса LAN1 (Secondary) в BRIDGE1 для Station не является очевидной необходимостью, однако это сделано для сохранения возможности прямого подключения компьютера к UBNT для конфигурирования.

Рубрики:  Технические обзоры

Метки:  

Что надо сделать для получения домашнего, надежного вай фая?

Понедельник, 30 Марта 2015 г. 06:17 + в цитатник

Статус статьи: не закончена.


Для надежного домашнего вайфая надо:

  1. иметь провод от хорошего провайдера;
  2. иметь хороший рутер.

На сайте www.speedtest.net проверяю, хорош ли мой провайдер:

Все показанные тестом параметры и 20-летняя безукоризненная репутация нашего сотрудничества подтверждают:
да, мой провайдер BaltiCom великолепен !

Далее разговор пойдет о техническом оснащении домашней сети. Важно понимать, что все написанное будет опираться на лично мой и достаточно приличный опыт работы в IT, а также при прочтении надо учитывать дату  написания этих строк. Т.е. из-за продолжающегося технического прогресса считаю, что  написанное здесь будет актуальным только на момент написания плюс 10-20 недель.  

Итак, про то, что значит "иметь хороший рутер".

Сначала про бренды. Есть десятки разных производителей сетевого оборудования (рутеров). Если зайти на сайт интернет-магазина, то можно увидеть подобную картину:

3854108_brands (304x509, 46Kb)

Больше 20-ти производителей и цены на разные модели колеблются от стоимости палки копченой колбасы до уровня минимальной зарплаты в стране. Как разобраться во всем этом великолепии и не остаться обманутым в собственных ожиданиях ? Как оптимально вложить свои деньги и получить адекватный результат?

Попробую смоделировать и оценить разные способы приобретения WiFi-рутера для дома.

Способ №1: Обратиться к провайдеру.
Способ достаточно правильный, так как все вопросы делегируются профессионалам. Затраты почти оптимальны. Результат - скромный, так как ставится не та техника, которая нужна вам, а то типовое решение, которое есть у провайдера. Собственоого развития не подразумевается, ибо все делают техники провайдера. 

Способ №2: Обратиться к продавцам в гламурном магазине.
Способ крайне рискованный. Все, что они вам льют в уши не факт, что это не акт самоутверждения вчерашнего троешника.

Способ №3: Читать форумы и отзывы в интернете.
Еще более плохой способ, так как интернет полон отзывов типа "не покупайте это - там в инструкции ничего не понятно и у меня ничего не получилось" или "атличный прибор, включил и все заработало само. Уже два часа как все замечательно работает!".  

Способ №4: Послушать совет знакомого продвинутого школьника.
Способ не так плох, но риски все-таки велики, т.к. или продвинутость окажется недостаточной, или школьник может оказаться шкодой, и загадит ваш комп и вашу сеть троянами, подпольными прокси и прочей нечистью. У детей часто такое считается проявлениям крутизны и хакеризма, хотя больше говорит  о пробелах отцовского воспитания...

Что же выбрать?

Предлагаю ознакомиться со способом №5: Попробовать вникнуть самостоятельно.
Этот способ, как не смешно, во многом схож с вопросами веры. Поэтому, если по каким-то причинам написанное здесь не нравится, не воспринимается, то надо перестать читать эту статью и попробовать поискать свой способ.
Если чтение продолжилось, то есть еще один важный момент - эта статья задумана как интерактивная. Это значит, что вопросы в комментариях будут обязательно влиять на содержание.  Итак,

Способ №5: Вникаем самостоятельно

Оставим на некоторое время вопрос выбора рутера и попробуем разобраться с WiFi :

  • какие скорости обеспечиваются сегодня;
  • что влияет на скорость WiFi;
  • выбор антенн и расположение устройства в квартире.

Cкорость WiFi

В первую очередь определяется поддержкой оборудованием стандартов. Так сложилось, что общепризнан стандарт IEEE 802.11b/g/n.
А теперь внимание: буквы показывают на поддерживаемую скорость

  • b - до 11 Mbps
  • g - до 54 Mbps
  • n - до 600 Mbps

Более подробно о стандартах IEEE 802.11 смотри здесь:

Следовательно, если в спецификации оборудования, например, указывается, что данный высокоскоростной рутер поддерживает стандарт 802.11b/g, то скоростей более 54 MBps от него ждать не приходится.

Рассмотрим другую ситуацию, рутер Asus RT-AC56U для которого заявлена поддержка стандартов 802.11ac/a/b/g/n и скорость передачи данных до 867 Mbps. Но стандарт IEEE 802.11ac не распространен и реальность такова, что скорость передачи вряд ли составит более 300 Mbps и то, при условии, что ваше принимающее устройство (ноутбук, мобильный телефон, ваш Смарт-ТВ и пр.) поддерживают такую скорость.

Вот здесь добрались еще до одной "заковыки": поддержка стандарта не подразумевает работы устройства на максимальной скорости для этого стандарта !  Т.е. поддержка устройством стандарта 802.11 b/g/n не тоже самое, что скорость передачи данных этим устройством 600 Mbps !!! Надо внимательно читать характеристики устройства, большая часть оборудования, которое продают сегодня поддерживает скорости не более 150 Mbps.

Из вышесказанного делаю
Вывод №1: Сейчас оборудование для домашнего WiFi должно обеспечивать скорость 300Mbps (802.11 b/g/n, N300)

Что влияет на скорость WiFi

На скорость WiFi влияют:

  • расстояние между вашим WiFi оборудованием и принимающим устройством (ноутбук, мобильный телефон, ваш Смарт-ТВ и пр.);
  • стены и препятствия;
  • помехи от других устройств.

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

Если посмотреть на помехи от WiFi-оборудования соседей, то это решается достаточно просто и в этом поможет либо смартфон с андроидом, либо ноутбук с операционной системой Windows. Apple для своих устройств iPhone, iPod все подобные аппликации несколько лет тому назад удалил со всех своих репозиториев по неизвестным причинам.

Для смартфона с андроидом есть замечательная апликация WiFi Analyzer
Для ноутбука с операционной системой Windows рекомендую замечательную программу InSSIDer (сайт разработчика). К сожалению, разработчик последнюю версию сделал платной, но можно легально скачать и пользоваться предыдущей версией, которую можно скачать по этой ссылке.

Эти программы наглядно показывают, что происходит вокруг вас и на каких каналах лучше будет работать вашему WiFi-оборудованию:

3854108_Screenshot_20150330072351 (700x437, 105Kb)


Вывод №2: Надо иметь инструмент (программу) для мониторинга WiFi-эфира

 

Выбор антенн и расположение устройства в квартире

 


продолжение следует...

Рубрики:  Технические обзоры

Метки:  

Мой интернет

Суббота, 07 Марта 2015 г. 15:56 + в цитатник

Рубрики:  Технические обзоры
Вообще

Ёлка. Пара...

Суббота, 07 Марта 2015 г. 13:17 + в цитатник



Рубрики:  Вообще

Метки:  

Про Брата. Храброво: Валерий Цветков, летописец аэропорта

Воскресенье, 01 Марта 2015 г. 00:54 + в цитатник

Перепечатано из http://skandinavia.livejournal.com/172403.html


Когда-то, в конце девяностых годов я поднялся на борт самолёта Ту-134А авиакомпании "Калининградавиа", для того, чтобы в первый раз в своей жизни отправиться в воздушное путешествие.Читать далее

 

Рубрики:  Вообще

Метки:  

Понравилось: 1 пользователю

Заметки непрограммиста: как пишу программу.

Воскресенье, 22 Февраля 2015 г. 09:32 + в цитатник

Диалог на производстве:

- Сделали проект для производства. Протестировали. Можно брать в работу?
- Не-е-ет.
- Почему?
- А надо еще, чтобы (по условию) результаты мастер проверял!

("Результаты" стоят в цехе, комп мастера стоит в бюро).

- Ладно... Давай так: система сама отследит наступление (события по условию) и на офисный принтер будет распечатывать задание на проверку? Мастер с заданием в цехе все проверит и потом в офисе на компе результат перенесет в систему?
- Давай попробуем.

Теперь надо браться за реализацию. С любого конца. Например, с этого:

Печать на офисный принтер

Хотелось бы следовать принципу, что вся конфигурация выполняется в программе и при замене, например, офисного принтера чтобы было достаточно указать его новый сетевой адрес.
Но есть еще драйверы принтеров и пришлось на сервере поставить CUPS и вывод на печать пустить через него:

   $printer = 'Samsung';  // название принтера в CUPS
   $cmd = "lp  -d ".$printer." /var/www/pdf.pdf";  //команду оформил как переменную PHP
   $log = "exec:".exec($cmd,$output)."<br>";    // и выполняю через ф-ю exec(). Результат

Наступление события по условию

После обдумывания немногочисленных вариантов (например с триггером MySQL) остановился на очевидном: проверять условие в PHP-скрипте при каждой регистрации единицы готовой продукции в базе данных.

Оформление задания

Хочется просто и эстетично. PDF-тэмплэйт ? Посмотрел, как из PHP сделать PDF-документ. Остановился на проекте mPDF

Нумерация задания

по порядку для каждой даты. Каждый день сначала. Формат: NN-YYMMDD

Педали

Надо добавить в панель управления возможность отключать эту проверку (1), менять параметр условия (2) и назначать принтер (3).

Запись в таблицу

Надо добавить в базу данных таблицу, в которой буду сохранять параметры задания (дата, номер, первый и последний проверяемый id) и отмечать выполнение (дата, кто проверял)

Запись в лог

"У меня все ходы записаны !" (Ильф, Петров. Двенадцать стульев)
Печать задания должна отображаться в логах.

Рубрики:  Технические обзоры
Программирование

Метки:  

Tunnelblick, добавление route после подключения

Четверг, 29 Января 2015 г. 07:49 + в цитатник

tblk (55x55, 4Kb)

В Tunnelblick добавление route после подключения можно сделать просто, если в состав tblk-пакета добавить скрипт connected.sh:

#!/bin/bash
/sbin/route -n add address gateway


Цитата: "...scripts are run as root..."

См.здесь: https://code.google.com/p/tunnelblick/wiki/cUsingScripts

Рубрики:  Технические обзоры

Метки:  

COMPRESS (ZIP) FOLDER ON LINUX DEBIAN

Понедельник, 26 Января 2015 г. 01:17 + в цитатник

Compress (ZIP) folder on Linux Debian:

tar -czvf name.tar.gz folder/

Decompressing (unzipping) is here:

gunzip name.tar.gz

Источник: https://jarik.wordpress.com/2013/04/05/compress-zip-folder-on-linux-debian/

Рубрики:  Технические обзоры

Метки:  

Тюнинг web-сервера

Пятница, 23 Января 2015 г. 22:31 + в цитатник
napiljnik (178x141, 31Kb)

Получил письмо с жалобой, что один из производственных серверов стал вместо отчетов возвращать сообщение об ошибке:

"Fatal error: Maximum execution time of 30 seconds exceeded in ..."

Ну что ж, не хватает 30 секунд, установленных по умолчанию?

Не проблема, в файле php.ini увеличил значение параметра max_execution_time в php.ini до 60 секунд.

Но проблема осталась, только изменилось сообщение об ошибке:

"Fatal error: Uncaught exception 'MyException' with message 'Database query failed! Query: exec rep_period...' Error: Timeout expired ' in [filename]:37 Stack trace: #0 [internal function]: __lambda_func(1024, 'Database query ...', [filename]', 37, Array) #1 [filename](37): trigger_error('Database query ...') #2 [filename](41): db_execute(Object(com), 'exec rep_period...') #3 {main} thrown in [filename] on line 37"

Почитал документацию и понял, что действие max_execution_time не распространяется на обращения к базе данных. Значит надо смотреть способ подключения сервера к базе данных. В данном случае в код скрипта добавил строку:

$cnn->CommandTimeout=60;

и всё получилось.

Рубрики:  Технические обзоры
Программирование

Метки:  

HTML: передавать через SELECT массив значений

Воскресенье, 11 Января 2015 г. 11:57 + в цитатник
Как-то раз потребовалось и, к удивлению, получилось.
Удивление было еще большим, когда возвращенный массив вернул не только значения элементов массива, но и разделительные запятые как члены массива. У меня два решения. Правильное: при помощи explode сделать "правильный " массив и пользоваться им. Неправильное: "забить" на все нечетные элементы (которые возвращают запятые) и вызывать только четные.

Пока пользуюсь неправильным решением, ибо оно оптимально.

Метки:  

XML_data = func(XML_схема, Excel_форма)

Воскресенье, 11 Января 2015 г. 02:50 + в цитатник

Если надо подготовить XML-файл с данными для отправки куда-то, который надо подготовить руками и есть XML-схема (xsd-файл), то может выручить MS Excel.
Сначала в Excele проверяем включен ли риббон "Developer":

3854108_excel_xml_1 (700x356, 114Kb)

Затем подключим XML-схему в наш новый excel-файл:

3854108_excel_xml_2 (700x615, 230Kb)

Последнее, что осталось - драг&дропом замэпировать каждый элемент схемы с конкретной  ячейкой листа таблицы, чтобы получилось нечто вроде такого:

3854108_excel_xml_3 (700x325, 101Kb)

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

После заполнения сохраняем:

3854108_excel_xml_4 (246x74, 2Kb)

Проверяю результат в notepad:

3854108_excel_xml_5 (594x639, 42Kb)

Вижу то, что и требовалось.

Рубрики:  Технические обзоры
Программирование

Метки:  

Поиск сообщений в a1addin
Страницы: 12 [11] 10 9 ..
.. 1 Календарь