Вход на сайт
Яндекс.Метрика

Рейтинг@Mail.ru

Linux, принципы работы с сетевой подсистемой

Сетевая подсистема Linux

Сетевая модель TCP/IP условно согласуется с 7-ми уровневой моделью OSI. На платформе Linux сложилась следующая терминология разделения на подуровни, которой пользуются разработчики ядра:

  • Всё, что относится к поддержке оборудования и канальному уровню, описывается как сетевые интерфейсы и обозначается как L2 (обычно тут у нас Ethernet);
  • Протоколы сетевого уровня OSI (IP, IPX, RIP и т.д.) - как сетевой уровень стека протоколов или уровень L3;
  • Всё, что выше (ICMP, UDP, TCP, SCTP и т.д.) - как протоколы транспортного уровня или уровень L4;
  • Всё то, что относится к выше лежащим уровням (сеансовый, представительский, прикладной) модели OSI (например: SSH, SIP, RTP, HTTP, FTP и т.д.), не проявляется в ядре и относится уже к области клиентских и серверных утилит пространства пользователя.

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

Подробнее: Linux, принципы работы с сетевой подсистемой

Схема работы DNSSEC

DNSSEC — технология, которая позволяет удостоверяться в подлинности DNS информации при помощи криптографической подписи.

Максимально упрощенно это выглядит примерно так:

имеется корневая зона ".", которая содержит в себе информацию о всех доменах первого уровня. 
Условно говоря, это файл с множеством строк, который изменяется достаточно редко. Создается пара открытый+закрытый ключ и каждая запись в этом файле подписывается.
Имея открытый ключ от этой пары, можно удостовериться в подлинности каждой записи в этом списке. Например, проверить что за зону moscow. действительно отвечают сервера flexireg:
dig -t any +dnssec @k.root-servers.net moscow.
В ответе можно увидеть запись RRSIG содержащую хеш-подпись:

Подробнее: Схема работы DNSSEC

Если Linux сервер не перезагружается командой

Иногда возникает ситуация, когда при попытке ребутнуть Linux сервер стандартной командой reboot (shutdown) ничего не происходит, то есть команды просто висят в процессах, а сервер не ребутается.

Такое бывает в случаях, когда отказывает диск или глючит RAID контроллер.

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

Для начала включаем sysrq через proc:

echo 1 > /proc/sys/kernel/sysrq

Далее посылаем нужную команду в sysrq триггер:

echo b > /proc/sysrq-trigger

И сервер мгновенно уходит на перезагрузку.

 

 

Как распарсить JSON

В этой статье я покажу как можно распарсить JSON вывод с помощью простых команд Linux. Т.е. без применения языков программирования.

В Linux есть утилита jq, которая умеет парсить JSON формат. С её помощью можно парсить, фильтровать, сопоставлять и преобразовывать json-данные без усилий.

Установка в Debian:

$sudo apt-get install jq

Всё, установили. Начинаем парсить JSON.

Допустим у нас есть такой документ:

{ "cgi_json_version": "1.9.0",

"icinga_status": {

"status_data_age": 30,

Подробнее: Как распарсить JSON

MySQL перекодировка базы

Mysql поддерживает много кодировок и это нередко является головной болью для системных администраторов. 

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

Настройки mysql отвечающие за кодировки:
character_set_client - кодировка, в которой данные будут поступать от клиента
character_set_connection - кодировка по умолчанию для всего, что в рамках соединения не имеет кодировки
character_set_database - кодировка по умолчанию для баз
character_set_filesystem - кодировка для работы с файловой системой
character_set_results - кодировка, в которой будет выбран результат
character_set_server - кодировка, в которой работает сервер
character_set_system - кодировка, в которой задаются идентификаторы MySQL, всегда UTF8
character_sets_dir - папка с кодировками

Подробнее: MySQL перекодировка базы

Страница 2 из 6

unix-way