Добро пожаловать в базу знаний

Статьи по настройке

О маршрутизации по протоколу BGP

Хостинг-провайдер CISHost предоставляет услуги VDS в России и Болгарии на собственных адресах. Используются диапазоны: Россия: 31.41.44.1 - 31.41.47.254;Болгария: 185.68.93.1 - 185.68.95.254. Протокол BGP позволяет…

Хостинг-провайдер CISHost предоставляет услуги VDS в России и Болгарии на собственных адресах. Используются диапазоны: 
Россия: 31.41.44.1 - 31.41.47.254;
Болгария: 
185.68.93.1 - 185.68.95.254.

Протокол BGP позволяет выбрать какие сети и где анонсировать, то есть какую из подсетей прикреплять к России, а какую к Болгарии. При этом совсем не обязательно подцеплять целиком всю сеть. Самая маленькая единица /24. 
О том, как определить границы, имея IP и маску с длиной 21 сети читайте тут: https://vk.com/wall-29173255_8632, о вычислении ip адресов доступных к выдаче из заданной подсети: https://vk.com/@cishostru-razbiraemsya-s-ip-rossiiskoi-podseti-314140021https://vk.com/@cishostru-razbiraemsya-s-ip-rossiiskoi-podseti-314140021, о маске подсети (чем меньше длина маски, тем больше диапазон) - тут: https://vk.com/wall-29173255_8631, IP калькулятор:https://ivit.pro/services/ip-kalkulyator/

Общий принцип подключения сети по протоколу BGP

При настройке выбираем какую сеть анонсировать, создаем нужный route объект в БД RIPE и анонсируем через BGP. При настройке указываются AS (номера автономных сетей ASN) соседних провайдеров. Таблицы маршрутизации с номерами AS, через которые проходят пакеты, есть на BGP роутерах, называются full view. Подробнее тут: https://linkmeup.gitbook.io/sdsm/8.-bgp-i-ip-sla/2.-bgp/2.-nastroika-bgp-i-praktika/1.-full-view-i-default-route

Пример настройки интерфейса BGP на маршрутизаторах Microtik приведен в статье:
https://itproffi.ru/nastrojka-bgp-na-marshrutizatorah-mikrotik/

Пример того, как выглядит настройка BGP на российском роутере Microtik (на скриншотах)

BGP1.png

BGP3.png
BGP2.pngBGP4.png

! IP BGP шлюза могут быть атакованы, в результате чего может упасть сеть, поэтому в целях безопасности реальные ip скрыты.

Инциденты с BGP
В связи с тем, что BGP не имеет встроенных механизмов верификации маршрутов, сети BGP подвержены различного рода атакам, таким как утечка и подмена BGP-маршрутов (атаки BGP hijacking), взлом BGP-маршрутизаторов, BGP- перехват (https://www.securitylab.ru/news/490369.php?R=1https://habr.com/ru/companies/mws/articles/459400/). Поэтому, как вариант, для защиты от DDos ЦОДы сами анонсируют сети, при этом атакуемые IP сбрасываются в blackhole, внедряются инструменты проверки маршрутов, обнаружения подмены маршрутов, разрабатываются международные стандарты (MANRS) обмена маршрутами в сети.

Варианты подключения в видео: https://youtu.be/ZfAxtNp_ZU0
- Если есть своя сеть, но нет AS, то можно "подселиться" к AS ЦОДа и работать с этого ЦОДА
- Можно договориться о BGP сессии с двумя провайдерами ISP-1 и ISP-2, оба выдадут маршруты по умолчанию и можно ходить по маршруту того провайдера, который нам больше нравится. В этом случае надо второй иметь маршрутизатор. То есть должно быть 2 точки включения (между которыми так же должно быть соединение).

Об IP в Болгарии
Нам часто задают вопрос, о том что IP адрес VDS сервера, заказанного в Болгарии, некоторыми сервисами определяется как российский.
Мы, компания зарегистрированная в РФ и используем собственные IP-адреса, подключенные по протоколу BGP, возможно поэтому некоторые IP-lookup сервисы и определяют локацию некорректно. Официальный источник занимающийся регистрацией автономных сетей (RIPE NCC), подтверждает информацию о том что сеть используется на территории Болгарии:
https://stat.ripe.net/widget/whois#w.resource=185.68.93.0-185.68.95.255
Официальный источник (country: BG): https://apps.db.ripe.net/db-web-ui/query?searchtext=185.68.9X.XX

BGP5.pngBGP6.png

Информация полезна?
0

Поддержка NVMe m2 SSD на VDS

Мы не раз указывали о наличии поддержки NVMe m.2 SSD на всехcерверах CISHost. Что же это означает?SSD-диск, Solid State Drive, — это твердотельный накопитель,…

Мы не раз указывали о наличии поддержки NVMe m.2 SSD на всех
cерверах CISHost. Что же это означает?

SSD-диск, Solid State Drive, — это твердотельный накопитель, сохраняет информацию на полупроводниковых чипах в ячейках памяти, Главное отличие от HDD — в отсутствии движущихся частей. В результате чего — занимает меньше места, бесшумный, более надежный (не «изнашивается» из-за чтения данных), быстрее записывает и считывает данные. Для сравнения: время полной загрузки Windows 7 у HDD составляет в среднем 49 секунд, а у SSD — 19 секунд.

NVMe (Non-Volatile Memory Host Controller Interface Specification) — это стандарт передачи данных с ним скорость SSD может достигать до 3,2 ГБ/с, что в 6 раз больше, чем у SATA 3, изначально разрабатываемого для HDD-дисков.

M.2 — это форм-фактор SSD. Это тот же SSD, но без пластикового корпуса: просто плата, на которой расположены чипы, контроллер, буферная память. Накопители SSD M.2 подключаются в специальные слоты, без кабелей питания или шлейфов. Питаются от материнской платы.

Подробнее: https://selectel.ru/blog/ssd-m2-nvme/

Точно узнать hdd или ssd используется на VDS нельзя, так как сервер виртуальный, для физических серверов DS можно воспользоваться командой:

 
root@s14:~# cat /sys/block/sda/queue/rotational
1
root@s14:~#
 
Начиная с версии ядра 2.6.29 Linux автоматически опеределяет SSD и HDD диски.
Если в результате вы получаете 0 - значит SSD, если 1 - тогда установлен HDD.

nvme.png



Информация полезна?
0

Как проверить, запущен ли сервис на VDS

Вариант1 ~# service название status или ~$ systemctl status название.service active (running) означает, что сервис запущен и работает. enabled означает, что он…

Вариант1

~# service название status

status1.png

или

~$ systemctl status название.service

  • status3.png
  • active (running) означает, что сервис запущен и работает.
  • enabled означает, что он автоматически запустится после перезапуска системы.

 

Вариант 2

Запускаем htop
И фильтруем (F4) по названию службы, например, exim
Видим, что процесс запущен

htop1.png

Расшифровка htop - > тут

Информация полезна?
0

Как узнать и обновить дату и время на сервере

Выполняем команды Узнать текущее время:~# dateВс фев 17 04:59:16 MSK 2019 Вариант 1: с помощью встроенной утилиты systemd-timesyncd Сервер синхронизации указан…

Выполняем команды

Узнать текущее время:
~# date
Вс фев 17 04:59:16 MSK 2019

Вариант 1: с помощью встроенной утилиты systemd-timesyncd

Сервер синхронизации указан в файле /etc/systemd/timesyncd.conf
[Time]
NTP=pool.ntp.org
Сервер pool.ntp.org можно заменить на свой при желании

Активировать systemd-timesyncd можно так:
~# systemctl enable systemd-timesyncd.service

Дополнительные команды:
systemctl status systemd-timesyncd - узнать статус работы службы
systemctl start systemd-timesyncd - запуск, если деактивирован

Вариант 2: Обновление по протоколу NTP — протокол для синхронизации системного времени с эталонным

1) устанавливаем утилиту синхронизации времени

~# apt-get install ntpdate
Следующие НОВЫЕ пакеты будут установлены:
ntpdate

2) обновляем дату и время с указанием сервера времени
~# ntpdate time.nist.gov
1 Jul 10:07:25 ntpdate[30476]: step time server 132.163.97.4 offset 169448733.370653 sec

Проверка результата:
~# date
Пн июл 1 10:07:28 MSK 2024

Вариант 3: Chronyальтернативный клиент и сервер протокола сетевого времени NTP


Требует установки при этом удаяются другие запущенные службы NTP :
~# apt install chrony
Следующие пакеты будут УДАЛЕНЫ:
systemd-timesyncd
Следующие НОВЫЕ пакеты будут установлены:
chrony

Файл конфигурации для редактирования серверов: /etc/chrony.conf:
# Use Debian vendor zone.
pool 2.debian.pool.ntp.org iburst
Здесь араметр iburst используется для ускорения начальной синхронизации

Для синхронизации достаточно перезапустить данный сервис:
~# service chrony restart

 

Перевод времени

Выполняем команду:
dpkg-reconfigure tzdata

После чего в консоли откроется выбор географического положения и город, соответсвующей временной зоне
Для перевода часов на московское время, выбираем Европу, затем Москву
timezone1.png
После чего получим сообщение с установленной временной зоной

 timezone2.png

 

Используемые ресурсы:
https://habr.com/ru/companies/vdsina/articles/505314/
https://redos.red-soft.ru/base/arm/arm-network/synchro-time/chrony/
https://rubukkit.org/threads/kak-postavit-msk-vremja-na-server.127003/

Информация полезна?
0

Автозапуск сервисов или скриптов в Debian на примере Apache

Вариант1: с помощью команды systemctl в подсистеме systemd Systemd - менеджер управления службами в Linux - система инициализации. Система инициализации —…
Вариант1: с помощью команды systemctl в подсистеме systemd

Systemd - менеджер управления службами в Linux - система инициализации. Система инициализации — это система в Linux, которая подготавливает к работе операционную систему, запускается ядром как первый процесс в операционной системе. И уже затем, этот первый процесс, запускает все остальные процессы. Также при выключении система инициализации занимается остановкой всех процессов. Подробнее: https://sysadminium.ru/adm-serv-linux-systemd-init-system/ )

Systemctl - команда для управления Systemd

Команда включает автозапуск службы apache:

systemctl enable apache2

Подробнее тут: https://www.dmosk.ru/miniinstruktions.php?mini=systemctl 

Systemd - система инициализации по умолчанию в Linux с 2010 года. В некоторых ОС при использовании команды systemctl все еще может возникать ошибка systemctl is not installed. Это значит, что на вашей машине установлена другая система инициализации. Но сменить её на systemd несложно. Первое, что нужно сделать — установить пакет systemd:

sudo apt-get install systemd 

Затем в настройках ядра Linux нужно прописать использование systemd. Для этого откроем файл с настройками загрузчика GRUB: 

 sudo nano /etc/default/grub 

и добавим в настройку GRUB_CMDLINE_LINUX_DEFAULT опцию init=/lib/systemd/systemd. 

Чтобы применить изменения нужно сгенерировать новый файл конфигурации grub и перезапустить систему: 

sudo update-grub
sudo shutdown -r now

Источник: https://timeweb.cloud/tutorials/linux/kak-ispolzovat-systemctl-dlya-upravleniya-sluzhbami-systemd

Вариант2: с помощью rc.local - для запуска произвольных скриптов

Например, с помощью скрипта можно настроить автозапуск apache2, nginx, zram и другое. Для этого в файле rc.local необходимо прописать команды запуска

1) Узнаем, где лежит скрипт запуска. В случае с apache Для запуска демона httpd лучше всего использовать скрипт apachectl. Этот скрипт устанавливает ряд переменных окружения, необходимых для правильной работы сервера под некоторыми операционными системами, а затем запускает исполняемый файл httpd (Источник: https://httpd.apache.org/docs/2.2/ru/invoking.html ).

~# which apache2ctl
/usr/sbin/apache2ctl

2) Прописываем его в файле /etc/rc.local с флагом -k, необходимым для запуска, остановки (подробнее: https://httpd.apache.org/docs/2.4/programs/httpd.html)

~# nano /etc/rc.local
/usr/sbin/apache2ctl -k start

rc-local.png

Детальная инструкция по применению скрипта rc.local тут: https://azrr.info/page/view/65-zastavlyaem-rabotat-rclocal-na-debian-10.html 

Вместо /usr/sbin/apache2ctl -k start можно прописать /usr/sbin/apache2 start или /etc/init.d/apache2 start, где /etc/init.d/apache2 - скрипт, который запускает исполняемый бинарный файл /usr/sbin/apache2.

sbin.png

Обращаем Ваше внимание, что rc.local - это старый метод автозапуска. Скрипты init.d заменил systemd. Поэтому лучше использовать Вариант1- systemctl для управления службами Systemd.

Информация полезна?
0

Повышаем приоритет IPv4 перед IPv6 в Ubuntu | Debian

Когда у домена есть A и AAAA записи, то по умолчанию сперва ищется AAAA (ipv6), а уже после этого A…

Когда у домена есть A и AAAA записи, то по умолчанию сперва ищется AAAA (ipv6), а уже после этого A (ipv4) запись .

Пример

Ресурс ya.ru при пинге выдает только ipv6, вместо ipv4

root@debian:~# ping ya.ru
PING ya.ru(ya.ru (2a02:6b8::2:242)) 56 data bytes
From 2a05:1700:0:1:0:1fff:fe29:2d5a (2a05:1700:0:1:0:1fff:fe29:2d5a) icmp_seq=1 Destination unreachable: Address unreachable
From 2a05:1700:0:1:0:1fff:fe29:2d5a (2a05:1700:0:1:0:1fff:fe29:2d5a) icmp_seq=2 Destination unreachable: Address unreachable

Проверка

1) работает ли сеть:

root@debian:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=108 time=15.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=108 time=15.8 ms
--- 8.8.8.8 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 15.750/15.797/15.845/0.134 ms

2) пингуется ли ресурс по ipv4:

C:\Users>ping ya.ru
Обмен пакетами с ya.ru [77.88.55.242] с 32 байтами данных:
Ответ от 77.88.55.242: число байт=32 время=9мс TTL=55
Ответ от 77.88.55.242: число байт=32 время=9мс TTL=55
Статистика Ping для 77.88.55.242:
Пакетов: отправлено = 2, получено = 2, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс:
Минимальное = 9мсек, Максимальное = 9 мсек, Среднее = 9 мсек

Решение

Назначаем приоритет для IPv4 выше чем у IPv6.

Для этого в файле /etc/gai.conf раскомментируем строку (убираем # вначале строки)

precedence ::ffff:0:0/96 100

После этого, если у ресурса в DNS есть и IPv6 и IPv4 запись , то будет выбираться IPv4.

ipv4.jpg

Итог

Первоначально выбирается IPv4. При этом IPv6 так же остается рабочим.

root@debian:~# ping ya.ru
PING ya.ru (77.88.55.242) 56(84) bytes of data.
64 bytes from ya.ru (77.88.55.242): icmp_seq=1 ttl=55 time=8.81 ms
64 bytes from ya.ru (77.88.55.242): icmp_seq=2 ttl=55 time=8.59 ms
64 bytes from ya.ru (77.88.55.242): icmp_seq=3 ttl=55 time=10.4 ms
64 bytes from ya.ru (77.88.55.242): icmp_seq=4 ttl=55 time=8.68 ms
--- ya.ru ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 8.595/9.142/10.477/0.777 ms

Информация полезна?
1

Как заменить имя хоста (на примере Debian 11)

Если, к примеру, Вы работаете в одной сессии ssh c несколькими виртуальными машинами c именем хоста по умолчанию, то может…

Если, к примеру, Вы работаете в одной сессии ssh c несколькими виртуальными машинами c именем хоста по умолчанию, то может возникнуть путаница, на каком конкретно сервере Вы сейчас выполняете команды. Чтобы такой ситуации не возникло, можно поменять имя хоста:

user@debian на user@новое_имя_хоста

1. Для этого переходим в режим суперпользователя

user@debian:~$ su -

2. Уже под рутом проверяем текущее имя хоста

root@debian:~# hostname

debian

3. Задаем предпочитаемое имя_хоста

root@debian:~# hostnamectl set-hostname новое_имя_хоста

4. Проверяем, что оно сменилось в файле hostname

root@debian:~# nano /etc/hostname

новое_имя_хоста

5. Производим замену имени хоста в файле hosts

root@debian:~# nano /etc/hosts

127.0.0.1 localhost

127.0.1.1 новое_имя_хоста

6. Перезагружаем ОС для применения изменений

root@debian:~# systemctl reboot

После следующего подключения по ssh к данному серверу мы увидим приглашение к указанию команд с уже замененным именем хоста

root@debian:~# ssh Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.

Last login: Wed Oct 12 14:50:06 2022 from 31.41.XX.XX

user@новое_имя_хоста:~$

Информация полезна?
0