Комбинированное правило маркировки
Для создания правила маркировки сетевого трафика на основе ip-адресов источника и назначения необходимо выполнить команду «nft add rule ip filter smark ip saddr <ip-адрес или подсеть> ip daddr <ip-адрес или подсеть> ip dscp set <dscp number> accept»:
# nft add rule ip filter smark ip saddr 172.16.16.0/24 ip daddr 192.168.100.100 ip dscp set af22 accept # # nft list ruleset table ip filter { chain input { type filter hook input priority 30; policy accept; } chain forward { type filter hook forward priority 30; policy accept; } chain output { type filter hook output priority 30; policy accept; } chain smark { type filter hook forward priority filter; policy accept; ip saddr 172.16.16.0/24 ip daddr 192.168.100.100 ip dscp set af22 accept } } table ip nat { chain prerouting { type nat hook prerouting priority 30; policy accept; } chain postrouting { type nat hook postrouting priority 30; policy accept; } }
Для создания правила маркировки сетевого трафика на основе ip-адреса источника и группы сетевых портов назначения для протокола tcp необходимо выполнить команду «nft add rule ip filter smark ip saddr <ip-адрес или подсеть> tcp dport {<номера портов>} ip dscp set <dscp number> accept»:
# nft add rule ip filter smark ip saddr 192.168.1.0/24 tcp dport {443, 590, 700, 800} ip dscp set af41 accept # # nft list ruleset table ip filter { chain input { type filter hook input priority 30; policy accept; } chain forward { type filter hook forward priority 30; policy accept; } chain output { type filter hook output priority 30; policy accept; } chain smark { type filter hook forward priority filter; policy accept; ip saddr 192.168.1.0/24 tcp dport { 443, 590, 700, 800 } ip dscp set af41 accept } } table ip nat { chain prerouting { type nat hook prerouting priority 30; policy accept; } chain postrouting { type nat hook postrouting priority 30; policy accept; } }
Для создания правила маркировки сетевого трафика на основе ip-адреса назначения (10.10.17.200/30) для протокола icmp необходимо выполнить команду «nft add rule ip filter smark ip protocol icmp ip daddr 10.10.17.200/30 ip dscp set <dscp number> accept»:
# nft add rule ip filter smark ip protocol icmp ip daddr 10.10.17.200/30 ip dscp set af43 accept # # nft list ruleset table ip filter { chain input { type filter hook input priority 30; policy accept; } chain forward { type filter hook forward priority 30; policy accept; } chain output { type filter hook output priority 30; policy accept; } chain smark { type filter hook forward priority filter; policy accept; ip protocol icmp ip daddr 10.10.17.200/30 ip dscp set af43 accept } } table ip nat { chain prerouting { type nat hook prerouting priority 30; policy accept; } chain postrouting { type nat hook postrouting priority 30; policy accept; } }
Чтобы сохранить настройки с правилами маркировки сетевого трафика необходимо перенести их в инициализирующий файл «run-post.sh», который будет автоматически выполняться при каждом запуске устройства. Файл находится в папке «/media/storage/overlay/». Чтобы перейти в папку «/media/storage/overlay» необходимо выполнить команду «cd /media/storage/overlay/» .
Чтобы открыть файл для задания конфигурации необходимо выполнить команду «nano /media/storage/overlay/run-post.sh» и задать конфигурацию управление пропускной способностью (изобр. 11.f.1).
Для сохранения настроек необходимо нажать комбинацию клавиш «Ctrl + X», на вопрос о сохранении изменения ответь «Yes» и нажать на клавишу «Enter». Проверить, что настройки сохранены можно с помощью команды «cat run-post.sh».После сохранения настроек, для их инициализации необходимо выполнить команду «/media/storage/overlay/run-post.sh».
Настройки управления пропускной способностью будут автоматически применяться при каждом запуске устройства.
При настройке правил фильтрации через web-интерфейс настройки маркировки сетевого трафика будут затираться. Для восстановления настроек необходимо выполнить инициализирующий файл с настройками маркировки сетевого трафика.