?

Log in

No account? Create an account

Есть пара тонкостей, о которой забывают в мануалах по настройке ntp в cisco:

Первая:

 Cisco просматривает настройки доступа NTP в следующем порядке:

  • peer
  • serve
  • serve-only
  • query-only

Вторая:

Access is granted for the first match that is found. If any access groups are specified, only the specified access is granted.

В общем если хоть одна указана, то только она и будет работать!

В итоге, если мы зададим например только serve-only но  не укажем peer, то cisco не будет с серверами синхронизироваться.

Поэтому, необходимо прописывать, как минимум, acl к peer.

---
The following example shows how to configure a system to allow itself to be synchronized by a peer from access list 99.
 However, the system restricts access to allow only time requests from access list 42.
Router(config)# ntp access-group peer 99
Router(config)# ntp access-group serve-only 42
За основу взяты доки на cisco и admindoc.

Иногда приходится прописывать хосты вручную, дабы им отдавался всегда один и тот-же IP-ник.

Суть — что  указать при этом  для идентификации?

Итак, дока гласит что для Windows клиентов необходимо использовать 'client-identifier' c добавлением 01 в начале MAC-адреса, как префикс:


configuration terminal

ip dhcp pool new_pool

host ip_address subnet_mask

client-identifier 01XXXXXXXXXXXX

!--- xxxxxx represents 48 bit MAC address prepended with 01


Для всех-же других мы используем 'hardware-address' и префикс '01' добавлять уже не надо, пример:


configuration terminal

ip dhcp pool new_pool

host ip_address subnet_mask

hardware-address XXXXXXXXXXXX

!--- xxxxxx represents 48 bit MAC address


Tags:

Итак, мой самы любимый, простой но в тоже самое время не самый гибкий, третий способ.
Надо только отметить что для этого нужна 15-я версия Cisco IOS!!!
Если ее нет, то можно глянуть на первый и второй способ. Первый более замороченный, но и более гибкий в настройках маршрутов.
Этот похож на второй способ, но есть существенное отличие - в нем нет vrf Share, а потому он более проще для перехода на VRF-Lite.

Read more...Collapse )

Tags:

Собираем Freeswitch 1.8 на  Debian 9 ( stretch )

Будем считать что необходимые пакеты уже все установлены. Насколько я помню, даже при том что скрипт предлагает установить недостающзие пакеты, что-то пришлось доустанавливать позже. Тогда просто, выяснив чего не хватает и установив, опять его запускам. Пакет сам откатит на состояние 'я только-что скачал FS из гитхаба'. :-)
Так-же, при необходимости он сам скачает изменения с репозитория, на тот  случай если там они будут и Вы запустите его позже.

Итак, мой скрипт для сборки, в котором убраны проблемные места, в частности кодек iLBC (который я раньше собирал) и codec2.

Read more...Collapse )
Исходные: macOS Sierra 10.12.6, Xcode 9, brew
Установку самого R и  Rcode я расписывать не буду, там все просто и полно мануалов на сайтах.
Первым делом, после установки самого 'R', устанавливаем 5-тый  llvm с помощью brew:
~$ brew install -s llvm --without-compiler-rt
Скачивается быстро, компилируется долго.

Далее добавляем в '~/.bashrc':

# !!!Важно!!! Нужно для 'configure' в R-package
export RBIN=/usr/local/bin/R

#
if [ -d /usr/local/opt/llvm/bin ]; then
export PATH="/usr/local/opt/llvm/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"
# Needed for manual build
export CC=/usr/local/opt/llvm/bin/clang
export CXX=/usr/local/opt/llvm/bin/clang++
export CXX1X=/usr/local/opt/llvm/bin/clang++
export SHLIB_CXXLD=/usr/local/opt/llvm/bin/clang++
fi
if [ -d /usr/local/Cellar/llvm/5.0.0 ]; then
export C_INCLUDE_PATH=/usr/local/Cellar/llvm/5.0.0/lib/clang/5.0.0/include/:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/Cellar/llvm/5.0.0/lib/clang/5.0.0/include/:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/Cellar/llvm/5.0.0/lib/:$LIBRARY_PATH
export DYLD_LIBRARY_PATH=/usr/local/Cellar/llvm/5.0.0/lib/:$DYLD_LIBRARY_PATH
fi

Далее создадим каталог .R в домашнем каталоге:
$ mkdir ~/.R
И в нем файл:
~$ nano ~/.R/Makevars
С таким содержанием:

CC=/usr/local/opt/llvm/bin/clang
CXX=/usr/local/opt/llvm/bin/clang++
CXX1X=/usr/local/opt/llvm/bin/clang++
CXX11=/usr/local/opt/llvm/bin/clang++
CXX14=/usr/local/opt/llvm/bin/clang++
CXX17=/usr/local/opt/llvm/bin/clang++
SHLIB_CXXLD=/usr/local/opt/llvm/bin/clang++
SHLIB_OPENMP_CFLAGS= -fopenmp
SHLIB_OPENMP_CXXFLAGS= -fopenmp
SHLIB_OPENMP_FCFLAGS= -fopenmp
SHLIB_OPENMP_FFLAGS= -fopenmp
PKG_CPPFLAGS += -I/usr/local/Cellar/llvm/5.0.0/lib/clang/5.0.0/include/
LIBRARY_PATH=/usr/local/Cellar/llvm/5.0.0/lib
DYLD_LIBRARY_PATH=/usr/local/Cellar/llvm/5.0.0/lib
Нажимаем комбинацию: Ctrl + x и жмем Enter. Если все прошло, успешно редактор 'nano' закроется.

Закрываем терминал,  я кстати пользуюсь iTerm, запускаем поново и проверяем правильность:
~$ cat ~/.R/Makevars
и
~$ echo $CC
/usr/local/opt/llvm/bin/clang
~$ echo $C_INCLUDE_PATH
/usr/local/Cellar/llvm/5.0.0/lib/clang/5.0.0/include/:
~$

Так-же рекомендую проверить компиляцию данного файла:
#include <omp.h>
#include <stdio.h>
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Hello!" << std::endl;
#pragma omp parallel
printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());
return 0;
}

И компиляем его:
~$ /usr/local/opt/llvm/bin/clang++ sample.cpp -o sample -fopenmp

Проверяем (у меня 8 ядер):
~$ ./sample
Hello!
Hello from thread 0, nthreads 8
Hello from thread 1, nthreads 8
Hello from thread 3, nthreads 8
Hello from thread 2, nthreads 8
Hello from thread 4, nthreads 8
Hello from thread 7, nthreads 8
Hello from thread 6, nthreads 8
Hello from thread 5, nthreads 8
~$

Дальше все как обычно, тут собственно все расписано.

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
git submodule init
git submodule update
cd R-package
R CMD INSTALL .


После перезапуска RStudio он должен появится в списке пакетов.
Ну и загружаем его:
> library(xgboost)
>

 У меня он загрузился,можно начинать изучать R и xgboost :-)

Добавлено:
После 'cd R-Package' можно выполнить для начала проверку на  OpenMP:
~$ ./configure
Должно быть так:
checking whether OpenMP will work in a package... yes
...

Tags:

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

Особенность данного метода что в глобальном vrf нет никаких маршрутов и его можно использовать для целей когда нужно выделить управление маршрутизатором от остальных частей трафика. Например можно данный тип использовать для маршрутизации Wi-Fi, когда они подключены сразу к провайдеру(ам).

Read more...Collapse )

Tags:

Кратко что это такое и для чего это нужно.
Предлагаю воспринимать VRF как еще один вируальный маршрутизатор в вашей циске, который имеет свою табличку маршрутов.
Я его использую для нарезки разнесения маршрутов на провайдеров. Можно конечно использовать роут-мап-ы, но там свои тонкости ...

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

Read more...Collapse )

Tags:

Столкнулся вот сегодня с проблемой что не поднимается DMVPN с одного спока на хаб по одному из провайдеров.

Выключаю на хабе и споке "tunnel protection ipsec profile ..."  - все начинает работаь, правда само-собой другие споки отваливаются.
Включаю обратно protection и вижу такую картину:

Interface: Tunnel102, IPv4 NHRP Details
Type:Spoke, NHRP Peers:1,
# Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
----- --------------- --------------- ----- -------- -----
1 213.xxx.xxx.xxx   192.100.224.49 IPSEC    never     S
В логах такое :
*Mar  4 15:22:31.911: ISAKMP:(1015): IPSec policy invalidated proposal with error 8
*Mar  4 15:22:31.911: ISAKMP:(1015): phase 2 SA policy not acceptable! (local 194.xxx.xxx.xxx remote 213.xxx.xxx.xxx)
*Mar  4 15:22:31.911: ISAKMP: set new node -584932847 to QM_IDLE
*Mar  4 15:22:31.911: ISAKMP:(1015):Sending NOTIFY PROPOSAL_NOT_CHOSEN protocol 3

Но вот тут прочитал совет убрать туннель. Ага, стал смотреть туннели на споке, которые были когда-то, до dmvpn еще.

И вот наш герой:

interface Tunnel2
...
shutdown
tunnel source FastEthernet0/1
tunnel destination 213.xxx.xxx.xxx.xxx
tunnel mode ipsec ipv4
!

При этом нет никаких "левых" криптомапов, профилей, и т.п.

поменял в нем, оставив его в shutdown:
tunnel source 194.xxx.xxx.xxx
tunnel mode gre ip

И после этого dmvpn, в этом направлении, заработал!

Tags:

Тут только про регистрацию:

!
voice service voip
allow-connections sip to sip
supplementary-service h450.12
no supplementary-service sip moved-temporarily
no supplementary-service sip refer
fax protocol cisco
sip
rel1xx disable
sip-profiles 2
!
!
voice class sip-profiles 2
request REGISTER sip-header Authorization modify "73412345678" "345678"
!
sip-ua
credentials username 73412345678 password 7 xxxxxxxxxxxxxxx realm SIP-REGISTAR
authentication username 397287 password 7 xxxxxxxxxxxxxxx
retry invite 5
retry register 5
retry keepalive 10
timers connection aging 60
registrar dns:voip.domru.ru expires 300
sip-server dns:voip.domru.ru
no transport tcp
!


Проверяем статус:

#sh sip-ua register st
Line peer expires(sec) registered
================================ ========== ============ ==========
73412345678 -1 137 yes
#


Отлично, регистрация успешна !

Tags:

freeswitch в jessie

Обновил debian до jessie.

Freeswitch взял из репозитория, вот только запускаться он отказался:

#systemctl status freeswitch.service
● freeswitch.service - freeswitch
Loaded: loaded (/lib/systemd/system/freeswitch.service; disabled)
Active: failed (Result: start-limit) since Пт 2015-08-21 21:42:41 YEKT; 7s ago
Process: 7454 ExecStartPre=/bin/mkdir -p /run/freeswitch (code=exited, status=200/CHDIR)
авг 21 21:42:41 r59fsmg1 systemd[1]: Failed to start freeswitch.
авг 21 21:42:41 r59fsmg1 systemd[1]: Unit freeswitch.service entered failed state.
авг 21 21:42:41 r59fsmg1 systemd[1]: freeswitch.service start request repeated too quickly, refusing to start.
авг 21 21:42:41 r59fsmg1 systemd[1]: Failed to start freeswitch.
авг 21 21:42:41 r59fsmg1 systemd[1]: Unit freeswitch.service entered failed state.


Решение:
#cat /lib/systemd/system/freeswitch.service

;;;;; Author: Travis Cross <tc at traviscross.com>

[Unit]
Description=freeswitch
After=syslog.target network.target local-fs.target

[Service]
; service
Type=forking
RuntimeDirectory=freeswitch
PIDFile=/run/freeswitch/freeswitch.pid
PermissionsStartOnly=true
ExecStart=/usr/bin/freeswitch -ncwait -nonat -run /run/freeswitch
TimeoutSec=45s
Restart=always
; exec
WorkingDirectory=/run/freeswitch
User=freeswitch
Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
;LimitSTACK=240
LimitRTPRIO=infinity
LimitRTTIME=7000000
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007

[Install]
WantedBy=multi-user.target