LINUX.ORG.RU
ФорумAdmin

ограничение скорости на сетевой карте и snat


0

1

Проблема - не всегда согласовывается скорость с оборудованием провайдера. Да и черт с ней - можно же настроить скорость на карте. Так как моя проблема образовалась сразу при попытке это сделать, то я решил собрать стенд отдельно на другом интернет канале совершенно другого провайдера.

Собрал стенд: - OS Debian 6 - две карты eth0 (local), eth1 (интернет)

Схема банальная:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 10.10.10.10
echo "1" >> /proc/sys/net/ipv4/ip_forward

Проверяем - все пингуется и работает, машина из локальной сети ходит в интернет через наш новый шлюз на полной скорости интернет канала. Задача - поставить eth1 в режим 10baseTX и отключить согласование. Да не вопрос...:

ethtool -s eth1 speed 10 autoneg off

И тут начинается проблема. С машины из локальной сети в интернет пинг идет. Но сайты ползать начинают, скорость потоковой скачки 10-30Kb, тормоза сплошные. С самого сервера по wget все качается на всю ширину канала. Смотрю ifconfig и вижу, что стало расти RX errors на этом интерфейсе.

eth1      Link encap:Ethernet  HWaddr 00:22:15:d6:36:fc
          inet addr:10.10.10.10  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::222:15ff:fed6:36fc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16756 errors:95 dropped:0 overruns:0 frame:95
          TX packets:7364 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4758942 (4.5 MiB)  TX bytes:1274824 (1.2 MiB)
          Interrupt:23 Base address:0xec00

Не понимаю почему так происходит... Может через ethtool еще что-то надо выключить/включить? Сетевые карты переменял 5 штук от разных производителей.

А может tc заюзать например?

DALDON ★★★★★ ()

не всегда согласовывается скорость с оборудованием провайдера. Да и черт с ней - можно же настроить скорость на карте.

А что же за сетевые платы у вас ?

vlb ★★★ ()

А может Squid поставить и там скорость порезать?

ivanlex ★★★★ ()
Последнее исправление: ivanlex (всего исправлений: 1)
Ответ на: комментарий от vlb

Карты использовал разные, Surecom, realtek, 3com.

Для предлагающих порезать скорость - прочтите моё первое предложение в теме.

smserg ()

Я думаю, т.к. отключил auto-negotiation, а удаленный порт провайдера находится в этом режиме, то у тебя вышла ситуация, когда твой eth1 - fullduplex, а порт провайдера - halfduplex (выбрал минимальный дуплекс, т.к. не получил ответ от auto-negotiation). Попробуй руками выставить half-duplex на eth1, чтобы проверить.

Ну и ethtool -S eth1, ethtool eth1 в момент набегания ошибок неплохо бы посмотреть.

Chumka ★★★ ()

wget качает на все 10 Мбит и при этом растёт RX-errors? А если этот канал в Инет шейпится провайдером, то там скорость закачки может определятся размером окна tcp, поэтому сравните параметры tcp-соединения при закачке wget'ом с сервера и с компьютера локальной сети.

Вобще, вроде как неправильно выставлять скорость и отключать автосогласование, по хорошем автосогласование нужно оставлять, но указывать ″advertise″.

А вобще, оборудование способно творить чудеса, у меня дома линк в Инет может устойчиво работать неделями на 100 Мбит, а потом внезапно начинаются ощутимые потери пакето, от которые лечатся только переключением на небольшое время в режим 10 Мбит HD. Так что попробуйте не только разные карточки, но и разные свичи.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.