Отсылка RADIUS CoA пакетов из командной строки | Linux

Категория: system

RADIUS CoA (Change of Authorization) - это механизм изменения AAA сессий после ее установления, другими словами путем отсылки CoA пакетов можно на лету изменять параметры/атрибуты сессии не прибигая к остановке сессии и последующего старта с необходимыми атрибутами. При отладке приложений удобно подобные запросы отправлять непосредственно с командной строки. В Linux есть необходимая утилита, обычно применяющаяся для отладки FreeRADIUS сервера - radclient, с ее помощью можно непосредственно с командной строки выполнить CoA запрос:

echo User-Name="10.10.14.161", Nas-Identifier="192.168.122.111"  | radclient -d /opt/raddb/ -sx 127.0.0.1:3799 coa testpassword

Синтаксис, думаю, не требует разъяснений, но хотелось бы отметить пару моментов:

  • необходимые атрибуты и их значения указываются через запятую
  • опция -d - указывает путь до папки со словарем. в этой папке читается только один файл с именем dictionary, при необходимости подключения нескольких словарей, необходимо делать "include"ы непосредственно в этом файле (напр: $INCLUDE dictionary.cisco)
  • атрибуты передаваемые в radclient должный быть прописаны в словаре. Если при выполнении команды встречается неизвестный атрибут - он и последующие атрибуты не отправляются
  • не забывайте про кавычки в значениях атрибутов (например, таких как МАС-адрес)

При выполнении CoA запроса можно увидеть результат его выполнения, в частности переданные атрибуты и ответ:

Sending CoA-Request of id 169 to 127.0.0.1 port 3799
    User-Name = "10.10.14.161"
    NAS-Identifier = "192.168.122.111"
rad_recv: CoA-NAK packet from host 127.0.0.1 port 3799, id=169, length=26
    Error-Cause = NAS-Identification-Mismatch

Таким образом получаем простой способ для отладки RADIUS CoA приложений, так же данный способ удобен в применении в различных скриптах, если не хочется тратить время на написание обертки скажем на Perl или Phyton с применением RADIUS библиотек.

Теги: radius SoA AAA dictionary

Комментарии (0)


Хранение таблицы innodb в отдельном файле в MySQL

Категория: db

По умолчанию, при создании таблиц в версиях сервера mysql<5.5 все таблицы хранятся в одном файле ibdata1. Очевидно, при возрастании количества данных, объем данного файла становится непреемлимо большим, что в конечном итоге сказывается на скорости выполнения запросов. К счастью в сервере есть опция, которая позволяет размещать табличные пространства в отдельных tbl_name.ibd файлах. И так, добавляем в конфигурацию сервера опцию:

[mysqld]
innodb_file_per_table=1

И перезагружаем процесс на сервере. Или же это можно сделать на "лету" без перезагрузки сервера:

SET GLOBAL innodb_file_per_table=1;

После этого вновь созданные таблицы, будут размещаться в отдельных файлах. Чтобы применить сабж к существующим таблицам (с сохранением данных), необходимо выполнить SQL-запрос:

ALTER TABLE `table_name` ENGINE=InnoDB;

P.S. К сожалению, после переноса табличного пространства в файлы, на сколько я знаю, нет способа уменьшить размер файла ibdata1 (сделать аналог вакуумизации в postgres) - его просто можно будет удалить после переноса всех таблиц.

Теги: mysql innodb_file_per_table innobd ibdata1

Комментарии (0)


Показать SQL запрос CREATE TABLE для таблицы в phpmyadmin | MySQL

Категория: db

Для генерации sql запроса создания какой либо таблицы удобно использовать пару способов:

1) Делаем экспорт таблицы в формате SQL , скачиваем, и далее открываем получившийся файлик в текстовом редакторе - в нем содержится необходимый запрос.

2) Просто делаем SQL-запрос (вкладка SQL вверху окна):

SHOW CREATE TABLE `table_name`

Далее, для полного отображения результата, нажимаем по ссылке "версия для печати"

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

CREATE TABLE IF not EXISTS `table_name` ( `id` int ......

Теги: sql mysql bd create table phpmyqdmin

Комментарии (0)


Powered by emlog