воскресенье, 18 сентября 2016 г.

pptp static route mac os

==== Поднятие static route на macbook air XOS для VPN (pptp) /etc/ppp/ip-up====

  #!/bin/sh
  ifname=$1
  remoteip=$5
 
  case "$remoteip" in
          192.168.1.3)
                  /sbin/route -n add -host 192.168.0.213 192.168.88.249 > /tmp/ppp.log #user1
                  /sbin/route -n add -host 192.168.0.106 192.168.88.250 >> /tmp/ppp.log #user2
                  /sbin/route -n add -host 192.168.0.151 192.168.88.251 >> /tmp/ppp.log #user3
                  ;;
  esac
  exit 0;

==== Удаление static route на macbook air XOS для VPN (pptp)  /etc/ppp/ip-down====

  #!/bin/sh
  ifname=$1
  remoteip=$5
 
  case "$remoteip" in
          192.168.1.3)
                  /sbin/route -n delete -host 192.168.0.213 192.168.88.249 > /tmp/ppp.log #user1
                  /sbin/route -n delete -host 192.168.0.106 192.168.88.250 >> /tmp/ppp.log #user1
                  /sbin/route -n delete -host 192.168.0.151 192.168.88.251 >> /tmp/ppp.log #user1
                  ;;
  esac
  exit 0;

DVG

===== reboot DVG via telnet =====

  #!/usr/bin/perl
  use Net::Telnet;

  $connect = new Net::Telnet(Timeout => 10,
                                  Host => '192.168.99.15');
  $connect -> waitfor('/User:/');
  $connect -> print('admin');
  sleep 1;
  $connect -> print('admin');
  sleep 2;
  $connect -> print('RESTART');
  sleep 1;
  $connect -> print('Y');
  sleep 1;
  $connect -> print('');

=== DVG CPT ===
FORWARD

BTC SVS


BTC UFA





SPA



Comands enter with handset
Action Command Description
Manual Reboot73266
Factory Reset73738Confirm - Press

=== Dial plan examples ===
  code 34767 Октябрьский
  (<9:>x.<:@gw0>|*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)
  code 3473 Стерлик
  (*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)


DPH-150s

===== Rreboot DPH-150s via telnet =====

  #!/usr/bin/perl
  use Net::Telnet;
 
  $connect = new Net::Telnet(Timeout => 10,
                                  Host => '192.168.99.25');
  $connect -> waitfor('/Login:/');
  $connect -> print('admin');
  $connect -> waitfor("/Password:/");
  $connect -> print('admin');
  @answer = $connect -> cmd('reload');
  print @answer;

===== DPH-150S reset to default =====
  • Отключаете DPH-150S 
  • Включаете DPH-150S 
  • Нажимаете во время загрузки однократно # => на дисплее появится надпись **POST MODE** 
  • Набираете *#168 
  • Увидев надпись Configuration Reset, отключаете телефон DPH-150S 
  • Включаете телефон, настройки сбросятся

Mikrotik ipsec

====  Скрипт создание ipsec тоннеля на клиенте. ====

  # Этот скрипт для версии RouterOS 5.*
  # В шестой версии параметр my-id-user-fqdn="" указывать не надо.
 
  # point configurations
  :local pointip "77.77.77.77"
  :local pointnet "10.2.75.0/24"
 
  # server configurations
  :local srvip "99.99.99.99"
  :local authkey "Pa$$w0rd"
 
  /ip ipsec proposal set default auth-algorithms=md5 disabled=no enc-algorithms=3des lifetime=8h name=default pfs-group=none
  /ip ipsec peer add address=$srvip auth-method=pre-shared-key dh-group=modp768 disabled=no dpd-interval=2m dpd-maximum-failures=5 enc-algorithm=3des exchange-mode=main generate-policy=no hash-algorithm=md5 lifebytes=0 lifetime=8h my-id-user-fqdn="" nat-traversal=no port=500 proposal-check=obey secret="$authkey" send-initial-contact=yes
  /ip ipsec policy add action=encrypt disabled=no dst-address=192.168.0.0/16 dst-port=any ipsec-protocols=esp level=require priority=0 proposal=default protocol=all sa-dst-address=$srvip sa-src-address=$pointip src-address=$pointnet src-port=any tunnel=yes
  /ip ipsec policy add action=encrypt disabled=no dst-address=10.0.0.0/8 dst-port=any ipsec-protocols=esp level=require priority=0 proposal=default protocol=all sa-dst-address=$srvip sa-src-address=$pointip src-address=$pointnet src-port=any tunnel=yes

  1 - создание профиля для политики
  2 - параметры конфигурации для установки соединения
  3 - параметры безопасности для пакета


==== Скрипт создание ipsec тоннеля на сервере. ====

  # point configurations
  :local pointip "77.77.77.77"
  :local pointnet "10.2.75.0/24"
 
  # server configurations
  :local srvip "99.99.99.99"
  :local authkey "Pa$$w0rd"
 
  /ip ipsec peer add address=$pointip port=500 auth-method=pre-shared-key secret=$authkey generate-policy=no exchange-mode=main send-initial-contact=yes nat-traversal=no my-id-user-fqdn="" proposal-check=obey hash-algorithm=md5 enc-algorithm=3des dh-group=modp768 lifetime=8h lifebytes=0 dpd-interval=2m dpd-maximum-failures=5
  /ip ipsec policy add src-address=192.168.0.0/16 src-port=any dst-address=$pointnet dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=$srvip sa-dst-address=$pointip proposal=default priority=0
  /ip ipsec policy add src-address=10.0.0.0/8 src-port=any dst-address=$pointnet dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=$srvip sa-dst-address=$pointip proposal=default priority=0
  /ip firewall address-list add list=all_stores_sub24 address=$pointnet
  /ip firewall address-list add list=all_wan_stores_ip address=$pointip
  /ip route add dst-address=$pointnet gateway=$srvip
  /ip route add dst-address=$pointip gateway=$srvip

  1 - параметры конфигурации для установки соединения
  2,3 - параметры безопасности для пакета
  4,5 - добавление исключения в файрволл
  6,7 - добавление исходящего маршрута до pointip
 
  pointip - внешний ip точки
  pointnet - внутренняя подсеть точки
  srvip - внешний ip сервера
  authkey - пароль для сесии

simple mikrotik scripts

==== clean lease of android ==== 

  :foreach i in=[/ip dhcp-server lease find host-name~"android"] do={/ip dhcp-server lease remove $i}

==== drop bad coonections (NAT SIP) ====

  :foreach i in=[/ip firewall connection find assured=no && src-address~"192.168.0.24"] do={
  /ip firewall connection remove $i
  }

mikrotik script FTP Backup


  # ftp configuration
  :local ftphost "192.168.99.88"
  :local ftpuser "noc"
  :local ftppassword "Pa$$w0rd"
  :local ftppath "./backup/"
 
  # months array
  :local months ("nul","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
 
  # get time
  :local ts [/system clock get time]
  :set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
 
  # get Date
  :local ds [/system clock get date]
  # convert name of month to number
  :local month [ :pick $ds 0 3 ];
  :local mm [ :find $months $month];
  # set $ds to format YYYY-MM-DD
  :set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6])
 
  # file name for system backup - file name will be servername-date-time.backup
  :local fname1 ("/EDAY-".[/system identity get name]."-".$ds."-".$ts.".backup")
  # file name for config export - file name will be servername-date-time.rsc
  :local fname2 ("/EDAY-".[/system identity get name]."-".$ds."-".$ts.".rsc")
 
  # backup the data
  /system backup save name=$fname1
  /export file=$fname2
 
  # upload the user manager backup
  /tool fetch address="$ftphost" src-path=$fname1 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname1" upload=yes
  /tool fetch address="$ftphost" src-path=$fname2 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname2" upload=yes
  :delay 15
  # find file name EDAY
  :foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "EDAY-"]]!="nil") do={/file remove $i}; }



понедельник, 13 июня 2016 г.

Учим пользоватся iostat

Все параметры снимаются через iostat. О любом можно почитать в man pages


Пример стандартного вывода программы:

  Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
  sda               0,00     0,00    0,00    0,12     0,03    12,38   197,81     0,00    5,36  179,66    3,42   3,63   0,05
  sdb               0,03     3,00   16,70    7,83    99,67  1466,95   127,72     1,49   60,79    8,25  172,82   6,63  16,27
  sdc               0,02     2,99    3,85    7,84    26,38  1466,95   255,49     1,20  102,30   11,14  147,15   6,18   7,23
  sdd               0,00     0,00    9,23   10,21  1136,19   769,72   196,15     0,06    3,07    4,73    1,57   1,89   3,67

Формулы:

  • avgrq-sz = (rsec + wsec) / (r + w)
  • await = qutim + svctim
  • utilization = ( (read requests + write requests) * service time in ms / 1000 ms ) * 100% или %util = ( r + w ) * svctim /10


судя по оф ману параметр на svctm опиратся к сожалению нельзя(

Отзывчивость устройства

Время за которое в среднем обрабатывается запрос на ввод-вывод включая ожидание в очереди, причем наиболее характерно именно ожидание, ибо оно зависит от загрузки, а не собственно размера запроса. Чем выше это время, тем медленее отзыв системы на запрос приложения.


  • await (await) - Среднее время ожидания обработки одного запроса (миллисекунды). Время нахождение и на обработку в очереди - всключено.
  • read await (r_await) - Среднее время (в миллисекундах) обработки запроса на чтение. Время нахождение и на обработку в очереди - всключено.
  • write await (w_await) - Среднее время (в миллисекундах) обработки запроса на запись. Время нахождение и на обработку в очереди - всключено.


Вывод:
await - должно стремится к минимуму, так же можно посмотреть как устройство отзывается на запись и на чтение (r_await и w_await).
Зависит от утилизации диска.


Состояние очереди

Позволяет оценить характер нагрузки и степень загруженности устройства.


  • average queue size (avgqu-sz) -  средняя длина очереди запросов в драйвере диска.
  • average requests size (avgrq-sz) - средний размер запроса (в секторах).


Вывод:
avgqu-sz - должна стремится к нулю если стабильно больше 1 то очевидно диск не справляется.
avgrq-sz - говорит лишь о харрактере нагрузки.


Операции слияния в очереди

Количество запросов чтения/записи (в секунду) объединенных при постановке в очередь на выполнение.
Число запросов, которые приложения запросили выполнить,а система смогла их объединить в блоки в среднем по avgrq-sz байт, для экономии.


  • write requests merge per second (wrqm/s) - IOPs на запись в очереди
  • read requests merge per second (rrqm/s)- IOPs на чтение в очереди


Вывод:
Принципы использования диска.
Random Access - когда чтение поверхности случайно, для него харрактерено: r/s,w/s начнут стремиться к rrqm/s и wrqm/s, и avgrq-sz падать. Естественно при таком сценаррии, диск HDD будет тормозить.
Sequential Access - когда чтение последовательно, для него харрактерно rrqm/s и wrqm/s стремится к 0, avgrq-sz растет. При таком сценарии, HDD диск будет работать с максимальным КПД.


Текущие значения чтения/записи на устройство

Текущая скорость чтения/записи на устройство в килобайтах


  • read from device per second (rkB/s) - Колличество киллобайт прочитанных с устройства в секунду.
  • written to the device per second (wkB/s) - Колличество киллобайт записанных на устройство в секунду.

Вывод:
Тут особо нечего сказать, естественно надо понимать чем вызван скачек.


Утилизация блочного устройства

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


  • utilization (%util) - утилизация винта общая нагрузка на устройство.
  • write operations per second (w/s) - IOPs на запись.
  • read operations per second (r/s) - IOPs на чтение.


Вывод:
При значениях utilization близких к 100% система «встает», в том числе все приложения. Процессора уходят в iowait, а процессы, желающие ввода-вывода — в Disk Sleep.
Как следствие рост await, все плохо.