Для того чтобы понять как трафик проходит через маршрутизатор (не важно будь то cisco, MikroTik, Linux router и т. д.) мне кажется лучше всего рассмотреть схему от компании MikroTik, т. к. она более подробно описывает все этапы.
Ниже рассмотрим какие элементы и цепочки присутствуют на схеме, для чего они предназначены, а также в каком порядке обрабатываются.
Основные узлы прохождения трафика
- INPUT INTERFACE - входная точка Traffic Flow. Может быть физическим интерфейсом, или виртуальным (например точка входа VPN)
- OUTPUT INTERFACE - выходная точка Traffic Flow.
- Local Process IN - конечная точка Traffic Flow, адресованного к маршрутизатору
- Local Process OUT - начальная точка Traffic Flow, сгенеренного самим маршрутизатором
- Routing Decision - решение по маршрутизации. Решение может касаться перенаправления на INPUT или FORWARD, но также может быть и досрочное прекращение обработки, в случае отсутствия подходящего маршрута
Цепочки
- input - Через эту chain идет трафик, направленный на интерфейсы роутера.
- forward - Любой транзитный трафик.
- output - Трафик, источниками которого являются интерфейсы роутера.
- Prerouting - Трафик вошел в порт, но ещё не принято Routing Decision
- Postrouting - Chain перед выходным портом.
Интерфейс
На любом устройстве всегда будет будет 2 интерфейса Traffic Flow (не стоит путать с физическим интерфейсом, он может быть один)
INPUT INTERFACE - входная точка Traffic Flow. Может быть физическим интерфейсом, или виртуальным (например точка входа VPN)
OUTPUT INTERFACE - выходная точка Traffic Flow.
Так например при прохождении Chain Input и Chain Prerouting никогда не будет задействован OUTPUT INTERFACE,
ROUTING DECISION (BRIDGE DECISION), TTL, ROUTING ADJUSTMENT являются автоматизированными процессами.
Остальные объекты являются настраиваемыми объектами.
- HOTSPOT-IN и HOTSPOT-OUT относятся к возможностям Hotspot.
- RAW PREROUTING и RAW OUTPUT – это частный случай файрвола, который служит дляснижения нагрузки на ЦП во время DOS-атак.
- CONNECTION TRACKING – отслеживание соединений.
- MANGLE PREROUTING, MANGLE INPUT, MANGLE FORWARD, MANGLE OUTPUT и MANGLEPOSTROUTING чаще всего служат для маркировки трафика.
- DST-NAT и SRC-NAT – служат для настройки NAT.
- FILTER INPUT, FILTER FORWARD и FILTER OUTPUT – брандмауэр.
- HTB GLOBAL (QUEUE TREE) и SIMPLE QUEUS служат для манипуляций с трафиком:назначения приоритета, ограничений скоростей и др.
- BRIDGE DECISION (ROUTING DECISION) – решение об обработке в мостовом соединении.
- TTL – это Time To Live: когда пакет проходит через маршрутизатор, TTL пакета уменьшается на 1.
- ACCOUNTING – возможности RADIUS-сервера.
- ROUTING ADJUSTMENT – донастройка маршрутизации.
Имея такую схему под рукой, всегда можно понять как именно проходит трафик, под такие правила фильтрации он попадает, а под какие нет, что позволит не создавать избыточные правила а также провести траблшутинг проблемы.