Категорії
FreeBSD Misc, staff, other Routers, GW, Internet

[FreeBSD] затримка з підняттям інтерфейсу

Дана стаття буде актуальна тим, у кого мережевий інтерфейс з “особливостями”: USB-мережева карта, яка довго ініціалізується, чи отримання адреси через pppoe, чи DHCP сервер дуже повільний. На що це впливає? Припустимо, що у вас є деякі сервіси, які повинні “слухати” ці інтерфейси, які довго піднімаються. За замовчуванням, сервіси піднімаються одразу, не дочекавшись, поки інтерфейс отримає адресу. Як результат, частина сервісів може не піднятися через це. Можна, звичайно, міняти кожен стартовий скрипт, додаючи у секцію REQUIRED відповідну залежність, але ця зміна затреться після чергового оновлення. І навіщо, коли є штатний інструмент для цього?

netwait_enable="YES"
netwait_timeout="10" # Total number of seconds to perform pings.
netwait_ip="1.1.1.1" # Wait for ping response from any IP in this list.
netwait_if="ue0" # Wait for active link on each intf in this list.
netwait_if_timeout="30" # Total number of seconds to monitor link state.

Категорії
FreeBSD Linux OpenBSD Routers, GW, Internet Solaris

ToS / DSCP

Нагадаю, що таке ToS (Type of Service) – це можливість пріоритезувати певний трафік за рахунок виставлення спеціального байта у заголовку IP пакету. DSCP – деяке розширення (або в деякому сенсі новіша версія ToS), бо має більше різних пріоритетів (64 проти 7 у ToS).

Категорії
Misc, staff, other Routers, GW, Internet

[NAT] Log sessions

В данній статті розглянемо, як можна логувати сесії NAT в різних файерволах.

iptables

Тут є декілька варіантів, почнемо з найнадійнішого:

conntrack -E --event-mask NEW --any-nat >> /var/log/nat_log

Є ще класичний варіант

iptables -t nat -I PREROUTING 1 -j LOG
iptables -t nat -I POSTROUTING 1 -j LOG
iptables -t nat -I OUTPUT 1 -j LOG

але, як пишуть у мережі, частина пакетів може не попадати в лог, якщо використовувати маркування або додаткову обробку.

pf

Є застарілий проект , який працює виключно на BSD-системах (на Solaris – ні)

ipfw

Тут мені не вдалося нічого знайти.

Категорії
Misc, staff, other Routers, GW, Internet

[squid] TCP_MISS_ABORTED/000, TCP_MISS/503

Що можуть означати ці коди в логах squid’a? Якщо вони у вас почали зʼявлятися після того, як все працювало, то в 99% ваш proxy сервер втратив вихід в інтернет. Перевірте просто через curl, чи відкриваються сайти, чи ні.

Причини можуть бути різні: від заблоковано у файерволі до втрат в мережі.

PS. Завжди перевіряйте, чи збігається у вас локальний час на proxy з вашим сервером авторизації (AD, Kerberos,…)

Категорії
Linux Misc, staff, other Routers, GW, Internet

[Linux] Tracing: bcc-tools, bpftrace, bpftop

BCC is a toolkit for creating efficient kernel tracing and manipulation programs, and includes several useful tools and examples. It makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature that was first added to Linux 3.15. Much of what BCC uses requires Linux 4.1 and above.

bpftrace is a high-level tracing language for Linux enhanced Berkeley Packet Filter (eBPF) available in recent Linux kernels (4.x)

bpftop provides a dynamic real-time view of running eBPF programs. It displays the average runtime, events per second, and estimated total CPU % for each program. It also provides graphical views of these statistics over time. This tool minimizes overhead by enabling performance statistics only while it is active.

Категорії
FreeBSD Routers, GW, Internet

[FreeBSD] Альтернативний TCP-стек на прикладі RACK

Дана стаття є вільним перекладом цієї .

Якщо вас якимось чином не влаштовує стандартний стек TCP, то, починаючи з 13.0, можна використовувати свій власний. В даній статті ми розглянемо RACK-TLP TCP стек. Основна суть якого, в передачі timestamps, і при втраті пакету за рахунок цього швидше відновлюється передача даних. Тобто, даний стек буде біль ефективним в мережах з частими обривами звʼязку. У стабільних мережах, його немає сенсу застосовувати.

Категорії
FreeBSD Misc, staff, other Routers, GW, Internet

FreeBSD: порядок прохождения файерволов

Помниться шутка ещё из fido:

Q: У FreeBSD есть 3 файервола, какой использовать?
A: Правильно настроенный.

Категорії
Linux Misc, staff, other Routers, GW, Internet

Завернуть часть трафика в OpenVPN туннель.

Вводные данные: 2 сервера Linux связаны между собой через OpenVPN туннель. Нужно для части клиентов за одним из концов VPN’a завернуть весь трафик в туннель, то есть, что бы они выходили в интернет не через свой GW, а через удалённый GW, пройдя через VPN.

UPD. В данной схеме есть нюанс: она будет работать, если клиентские машины находятся за хостом, который является OpenVPN-клиентом. В обратном случае, пакеты просто не будут покидать хост, хотя через tcpdump вы их будете видеть. Связано это с особенностями самого OpenVPN’a. Пока не нашёл как это можно решить. Как workaround, можно либо изменить роли клиент-сервер, либо использовать простой туннель или другой тип VPN’a.

Категорії
Misc, staff, other Routers, GW, Internet

OpenVPN: iroute not working

iroute в OpenVPN нужен для того, что бы добавлять маршруты в подсеть клиентов, когда они подключаются. Данный параметр прописывается исключительно в CCD (client-config-dir). Но есть нюанс: обязательно с iroute нужно прописывать route в конфиге server.conf. Да, про это упомянуто в документации, но не все ёё внимательно читают

Remember that you must also add the route to the system routing table as well (such as by using the –route directive). The reason why two routes are needed is that the –route directive routes the packet from the kernel to OpenVPN. Once in OpenVPN, the –iroute directive routes to the specific client.

То есть, если нужно добавить клиентскую подсеть 192.168.10.0/24, то правильно сделать так:

ccd/client:

iroute 192.168.10.0 255.255.255.0

server.conf:

route 192.168.10.0 255.255.255.0

Категорії
Misc, staff, other Routers, GW, Internet

Анализатора трафика sniffglue

Сетевого анализатор sniffglue 0.14.0 , выполняющий анализ трафика в пассивном режиме и использующий многопоточность для распределения работы по разбору пакетов по всем ядрам процессора. Проект нацелен на безопасную и надёжную работу при перехвате пакетов в сетях не заслуживающих доверия, а также на вывод наиболее полезной информации в конфигурации по умолчанию. Код продукта написан на языке программирования Rust и распространяется под лицензией GPLv3+. Поддерживается работа на системах Linux и macOS.

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff