Проблема - не всегда согласовывается скорость с оборудованием провайдера. Да и черт с ней - можно же настроить скорость на карте. Так как моя проблема образовалась сразу при попытке это сделать, то я решил собрать стенд отдельно на другом интернет канале совершенно другого провайдера.
Собрал стенд: - 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 штук от разных производителей.