Назад | Перейти на главную страницу

Сверхмедленная скорость загрузки при подключении с помощью iptables

Я настраиваю сеть, и мне нужно разрешить доступ только для определенных MAC-адресов.

Пусть eth0 и eth1 - физические интерфейсы. eth1 подключен к внешней сети, а eth0 и его vlans находятся во внутренней сети.

Для этой цели я использую Linux iptables, и у меня есть следующий код для конфигурации по умолчанию.

# Allowing ip forwarding and loopback

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT

# Setting up nat and default chains settings

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -N FILTER
iptables -P FORWARD DROP

# Setting up default configuration

iptables -A FORWARD -p tcp -m conntrack --ctstate NEW -i eth0+ -o eth1 -j FILTER
iptables -A FORWARD -p tcp -m conntrack \
--ctstate RELATED,ESTABLISHED,DNAT,SNAT,INVALID -i eth0+ -o eth1 -j ACCEPT
iptables -A FORWARD ! -p tcp -i eth0+ -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0+ -m state \
--state RELATED,ESTABLISHED -j ACCEPT

Делая это, я фильтрую весь входящий трафик TCP с состоянием NEW и разрешаю весь трафик любого другого протокола или TCP с другими состояниями. Я обрабатываю эти отфильтрованные tcp-запросы по следующему правилу

# Allowing tcp traffic with ctstate NEW for certain mac

iptables -A FILTER -p tcp -m conntrack --ctstate NEW -i eth0+ -o eth1 \ 
-m mac --mac-source <mac> -j ACCEPT

В тестовой среде с этой конфигурацией разрешенные MAC-адреса могут получать доступ к Интернету с нормальной скоростью загрузки, но скорость загрузки почти равна нулю. Я что-то забываю?

Лучший способ устранить подобные проблемы - захватить трафик и проанализировать его с помощью wireshark.

В большинстве случаев проблемы со скоростью вызваны проблемами MTU. Проблемы с MTU могут быть вызваны блокировкой ICMP пакетов, требуемых Path MTU discovery.

Вставьте полный набор правил брандмауэра. Использовать iptables-save -c команда, чтобы вывести список всех правил, а не только из filter стол.

Проверьте счетчики правил. Помните, что порядок правил брандмауэра очень важен.