comvir
comvir
1342 просмотров0 комментариев

Пакетный шлюз из репки

Собрал тестовый стенд, для проверки сетевой производительности репки:

Встроенный сетевой адаптер в тестировании не будет принимать участия, т.к. 100 мегабит/сек маловато будет. Из запасника были извлечены два гигабитных USB 3.0 сетевых адаптера (TP-Link UE300), которые в теории могут передавать данные на скоростях до 480 мегабит/сек в режиме USB 2.0.

На репку пролита прошивка 1.0.14

Установлен и настроен пакет nftables:

apt install nftables

systemctl enable nftables

vi /etc/nftables

#!/usr/sbin/nft -f

flush ruleset
table inet filter {
       chain input {
               type filter hook input priority filter; policy drop;
               ct state established,related accept
               ip protocol icmp accept
               meta l4proto ipv6-icmp accept
               iif { "lo", "eth0" } accept
               iifname "wlan0" accept
               iifname "enxd03745fc3890" accept
     }

       chain forward {
               type filter hook forward priority filter; policy drop;
               tcp flags syn tcp option maxseg size set rt mtu
               ct state established,related accept
               ip protocol icmp accept
               meta l4proto ipv6-icmp accept
               ip6 saddr { ::1, fc00::/7 } accept
               ip saddr { 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } accept
       }

       chain output {
               type filter hook output priority filter; policy accept;
       }
}
table inet nat {
       chain prerouting {
               type nat hook prerouting priority dstnat; policy accept;
       }

       chain postrouting {
               type nat hook postrouting priority srcnat; policy accept;
               ip6 saddr { ::1, fc00::/7 } oifname "enxd03745c256df" masquerade
               ip saddr { 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } oifname "enxd03745c256df" masquerade
       }
}

Применена конфигурация nftables:

systemctl restart nftables

systemctl status nftables

nft list ruleset

Затем подключил ко второму гигабитному порту репки ноут, проверил что есть связь с внешней сетью (по отношению к репке) и NAT66 работает. Затем попробовал загрузить на ноут несколько увесистых файлов с ближайшего сервера:

В это-же время в htop на репке показывал следующее:


В итоге пиковая скорость передачи данных в режиме NAT66 составила 259 мегабит/сек (32.4 мегабайта/с) в одну сторону, установившаяся скорость составила 240 мегабит/с (30 мегабайт/сек) в одну сторону при суммарной пакетной скорости в 90 килопакетов/сек.

Загрузка CPU во время теста была менее 2%, т.к. репка вполне может перелопатить и более серьёзные сетевые нагрузки. Ограничивающим фактором вероятно является подсистема USB 2.0

Интересно будет посмотреть на следующие итерации репки.


Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Темы

Навигация

ВойтиРегистрация