Turris 1.x a UPC modem - špatná detekce rychlosti při zapnutí

Nemam tento problem, ale jen tak ze zvedavosti jsem vyzkousel vas prikaz. Spolehlive me odstrihl od internetu :slight_smile:

Ano to se může stát, když zařízení nemohou vzájemně komunikovat rychlostí 1Gb. Protože Turris má po tom příkazu pevně nastaveno jenom tu rychlost 1Gb a jinou se nespojí. Je vypnuto snížení rychlosti při nespojení se “autoneg off”

Stačí zadat v terminálu (nebo ve Forisu přes Sytém>Vlastní příkazy) ethtool -s eth2 autoneg on a zase vás to připojí.

Ahoj,
po přestěhování Turrisu 1.1 do nové lokality se u mě také projevil tento problém.
Po vypnutí / zapnutí rozhraní mezi Turrisem a modemem od UPC Cisco EPC3925 dojde k vyjednávání rychlosti linky, na chvilku tam naskočí gigabit, ale pak to spadne na 100. Děje se tak pokaždé jak při manuálním vypnutí / zapnutí rozhraní, například přes ifconfig, tak i při restartu sítě i routeru.
Zjistil jsem, že vytažení / zandání kabelu pomůže. Softwarově se dá problém vyřešit zadáním následujících dvou příkazů:

ethtool -s eth2 autoneg off speed 100
ethtool -s eth2 autoneg on

Při zadání pouze ethtool -s eth2 autoneg off speed 1000 zůstane linka offline.
Dávám k dispozici následující hotplug skript, který spustí výše zmínění příkazy při každém nahození WAN rozhraní eth2, pokud je rychlost nižší, než 1000 Mbps.
Skript si instalujte pouze, máte-li daný problém a pokud zařízení na druhé straně routeru Turris umí 1 Gbps. V opačném případě bude docházet k neustálému restartování rozhraní vlivem skriptu samotného (uvedené příkazy shodí a nahodí rozhraní, proto je přítomna podmínka na aktuální rychlost, testuje se, zda je potřeba spustit renegotiate).

# Place me in /etc/hotplug.d/iface/12-negotiate
logger -t hotplug Starting negotiate script
sleep 3
SPEED=`cat /sys/class/net/eth2/speed`
logger -t hotplug Speed is "$SPEED"
if [ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" -a "$SPEED" -lt 1000 ]; then
ethtool -s eth2 autoneg off speed 100
ethtool -s eth2 autoneg on
logger -t hotplug Negotiation of interface "$INTERFACE" was reset
fi

Dejte vědět, jestli vám to někomu funguje.
PS Při změně protějšku je třeba skript zase vymazat, pokud bude přítomno pouze 100 mbps zařízení, pak vůbec nepoužívat.

Mějte se,
H

2 Likes

Otestováno a u mě funguje ! (měl jsem stejný problém s UPC modemem model Ubee EVM 3230)

JOhnyRi - díky za skript!

1 Like