т.е. вот ситуация: ПК находится в одной сети (users-net), веб сервер находится в другой сети (www-net). Правило взаимодействия между сетями настроено так: chain=forward src-address=users-net dst-address=www-net action=reject. Если пользователь с ПК пытается открыть сайт, расположенный на сервере www, то роутер получив пакет с ПК, дропнет его, и сам роутер ответит ПК, что хост www недоступен по такой то причине. А до сервера www пакет соответственно не дойдет, т.к. его дропнули ранее. Правильно?
На картинке привожу простую схему сети, приближенную к реальным сетям, с которыми приходится работать: Есть три площадки - офис, завод, склад. Провайдеры у всех разные, и все дают разную скорость, для офиса внешний линк 100Мб\сек, для склада - 10Мб\сек, для завода - 60Мб\сек. Все площадки объединены посредством VPN по топологии "звезда", офис - центр (завод и офис через ipip с ipsec, склад и офис через чистый ipsec в туннельном режиме). На заводе и в офисе, в качестве шлюзовых маршрутизаторов стоят ccr1016 (порты соответственно гигабитные). На складе стоит rb2011, у него часть портов гигабитные, часть 100Мб На всех площадках сети сегментированы (пользовательские сети, серверные сети, гостевые, ДМЗ и т.д.), поэтому активно используем vlan и транки. Для примера, на схеме показаны две локальных подсети, на одном физическом интерфейсе eth5, vlan41 (192.168.41.0/24) - пользовательский сегмент, и vlan51 (192.168.51.0/24) - серверный сегмент (который содержит для примера файловый сервер), пользовательский сегмент на заводе - 192.168.31.0/24 (я его на схеме не указал). Вопрос 1: Задача маркировать трафик загрузки файлов на сервер с клиентского ПК, и скачивания файла с сервера на клиентский ПК. Для упрощения принимаем, что сервер для upload и download открывает подключение по 445 tcp порту. Вопрос в том, правильны ли мои действия (рассуждения)? правила mangle для загрузки файла из локальной сети 192.168.41.0 на сервер: add chain=forward src-address=192.168.41.0/24 dst-address=192.168.51.0/24 protocol=tcp dst-port=445 connection-mark=no-mark action=mark-connection new-connection-mark=vl41uploadfiles connection-state=new add chain=forward connection-mark=vl41uploadfiles action=mark-packed new-packed-mark=vl41uploadfiles правила mangle для скачивания файла с сервера на ПК в локальной сети 192.168.41.0: add chain=forward src-address=192.168.51.0/24 dst-address=192.168.41.0/24 protocol=tcp src-port=445 connection-mark=no-mark action=mark-connection new-connection-mark=vl41downloadfiles connection-state=new add chain=forward connection-mark=vl41downloadfiles action=mark-packed new-packed-mark=vl41downloadfiles Аналогично и для удаленной заводской сети правила mangle для загрузки файла из удаленной сети 192.168.31.0 на сервер: add chain=forward src-address=192.168.31.0/24 dst-address=192.168.51.0/24 protocol=tcp dst-port=445 connection-mark=no-mark action=mark-connection new-connection-mark=net31uploadfiles connection-state=new add chain=forward connection-mark=net31uploadfiles action=mark-packed new-packed-mark=net31uploadfiles правила mangle для скачивания файла с сервера на ПК в удаленной сети 192.168.31.0: add chain=forward src-address=192.168.51.0/24 dst-address=192.168.31.0/24 protocol=tcp src-port=445 connection-mark=no-mark action=mark-connection new-connection-mark=net31downloadfiles connection-state=new add chain=forward connection-mark=net31downloadfiles action=mark-packed new-packed-mark=net31downloadfiles Опять же повторю вопрос, правильно так маркировать или нет, т.к. в таком ключе планирую отмаркировать весь трафик известных служб, для последующей приоритезации. Вопрос 2: Как правильно маркировать http(s) трафик upload и download? Т.е. вот такая схема имеет место быть? Маркировка подключения к сайтам из пользовательской сети офиса add chain=forward src-address=192.168.41.0/24 protocol=tcp dst-port=80,443 connection-mark=no-mark action=mark-connection new-mark-connection=vl41uplinternet connection-state=new add chain=forward connection-mark=vl41uplinternet action=mark-packet new-mark-packet=vl41uplinternet Маркировка загрузок с сайтов из пользовательской сети офиса add chain=forward dst-address=192.168.41.0/24 protocol=tcp src-port=80,443 connection-mark=no-mark action=mark-connection new-mark-connection=vl41downinternet connection-state=new add chain=forward connection-mark=vl41downinternet action=mark-packet new-mark-packet=vl41downinternet Приведенные примеры маркировки верные? Вопрос 3: Выбор интерфейсов. Касаемо фильтра, правила должны привязываются к тому интерфейсу, через который пойдет трафик (либо к физическому, либо к логическому), а в случае очередей interface Queue Tree, как правильно делать? Т.е. если у нас на интерфейсе eth5 есть несколько vlan интерфейсов, в дереве queue tree parent-ом будет физический eth5, или логические vlan интерфейсы. Для для интерфейса, подключенного в провайдерсую сеть вопрос аналогичен (на схеме это eth1), на нем создаются туннельные интерфейсы, а parent-ом берем физический интерфейс, или по ситуации? Я вообще предполагаю, что надо брать физический интерфейс, т.к. сумма скоростей на логических интерфейсах не превысит скорость физического и то же касается и очереди. А если у нас на одном физическом интерфейсе несколько vlan и нам надо приоритезировать трафик проходящий с одного vlan в другой (в рамках одного физического интерфейса), надо брать родителем физический интерфейс для upload и download деревьев или соответствующие логические (логических интерфейсов кстати у нас обычно больше двух на одном физическом). Есть ещё вопросы связанные непосредственно с приоритезацией (проектированием деревьев queue tree), но смогу их корректно сформулировать, когда прояснится вопрос выбора parent интерфейса.
На самом деле сертификат МТСТСЕ у меня имеется, но чисто субъективно у официалов очень слабо дается теория по части QoS (не буду озвучивать название учебного центра, в котором проходил обучение), как рассчитывать HTB научили, а вот правильно делать маркировку не научили (например акцентировать внимание на том, что сначала маркируем соединение, затем по соединению маркируем пакеты), по выбору интерфейса так же мало информации было на курсе, я когда сертификат получил, много дров наломал, пришлось оплачивать дополнительные курсы у неофициального учебного центра, чтобы разобраться в MTCTCE. Теперь могу сказать, что по первой части моего вопроса ответ такой: трафик маркируется для соединения в обе стороны, т.е. разово отмаркировал, и используешь эту маркировку для правил queue входщего трафика и исходящего. По второму вопросу ответ примерно такой: Если на внешнем интерфейсе провайдер дает 100Мб/сек, а у меня через этот интерфейс и vpn и NAT, то очередей будет по количеству сабинтерфейсов плюс физический, при этом в качестве MaxLimit мы сможем на всех корнях указать максимальную скорость физического интерфейса, а сумма LimitAt в листьях по всем всем деревьям на данном физическом интерфейсе не должна превышать скорость на физическом интерфейсе. Как то так.
Если VPN-ы типа GRE/IPIP и EoIP там есть inherit dscp Тогда в мангл вешаем на пакеты DSCP, а потом на основании DSCP маркируем пакеты на WAN интерфейсе.