Что происходит, когда я перезапускаю службу через systemctl или init

Как уже упоминал пользователь Ferenc, маршрутизация на основе политик, вероятно, является лучшим решением.

Взгляните на ip rule, обычно это выглядит так:

# ip rule
0:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

Это отсортированный список приоритетов правил, за которым следует спецификация правила. local, mainи default— это таблицы маршрутизации, на которые стоит обратить внимание. Чтобы увидеть конкретную таблицу маршрутизации, запустите ip route show table <table>или короче ip r s t <table>.

Для маршрутизации разных исходных IP-адресов к разным целям или через разные устройства нам потребуются отдельные таблицы маршрутизации и правила маршрутизации для перехода к этим таблицам.

Предположим, нам нужен специальный маршрут для IP 10.0.0.42 и специальный маршрут для сети 10.0.0.128/25. Нам нужно создать два дополнительных правила и две дополнительные таблицы , порядок не имеет значения. Давайте создадим правила. Пример:

# ip rule add from 10.0.0.42 lookup 300 prio 5
# ip rule add from 10.0.0.128/25 lookup 301 prio 6

Давайте посмотрим на них:

# ip rule
0:  from all lookup local 
5:  from 10.0.0.42 lookup 300 
6:  from 10.0.0.128/25 lookup 301
32766:  from all lookup main 
32767:  from all lookup default

300и 301— это наши имена таблиц (таблицы обычно представляют собой просто числа, но им также можно давать имена, добавляя их к/etc/iproute2/rt_tables). Остальное должно быть -самоочевидным.

Теперь нам нужно заполнить эти таблицы. Пример:

# ip route add default via 10.0.0.1 dev eth1 table 300
# ip route add 192.168.178.0/24 dev eth2 table 301

Давайте посмотрим на них:

# ip route show table 300
default via 10.0.0.1 dev eth1 scope link 
# ip route show table 301
192.168.178.0/24 dev eth2 scope link

Как видите, можно добавить любой понравившийся маршрут. Система с адреса 10.0.0.42 теперь будет маршрутизироваться через 10.0.0.1 через eth1. Системы из сети 10.0.0.128/25 теперь будут маршрутизироваться через eth2 , если их адрес назначения находится внутри сети 192.168.178.0/24.

Если ни один маршрут не совпадает с вашими специальными таблицами маршрутизации, оценивается следующее правило маршрутизации. Например, если системы из сети 10.0.0.128/25 не хотят выполнять маршрутизацию к 192.168.178.0/24, они возвращаются к основной таблице.

Если вы хотите удалить какое-либо правило, просто замените addна del.Таблицы маршрутизации будут существовать до тех пор, пока вы не удалите все их маршруты, т.е. запустив ip route flush table <table>. Если вы хотите увидеть все правила маршрутизации, просто запустите ip route show table all.

Правила маршрутизации очень гибкие, вы можете использовать различные другие селекторы, такие как входящие/исходящие интерфейсы, исходные/целевые порты и протоколы. Подробности см. в man ip rule.

Будьте осторожны, чтобы не заблокировать себя при редактировании маршрутов и правил через SSH.

0
29.01.2021, 06:35
1 ответ

Процессу сервера будет отправлен сигнал SIGTERMс ожиданием завершения процесса. Сам процесс должен поймать сигнал и сделать все необходимое для корректного выхода. т.е. сам процесс должен позаботиться об удалении файлов, закрытии открытых сетевых подключений и т. д.

Если процесс не завершается в течение установленного времени ожидания, он принудительно завершается сигналом SIGKILL. Значение таймаута по умолчанию составляет 90 секунд.

0
18.03.2021, 22:33

Теги

Похожие вопросы