Nettverk: Sette Full-Duplex

Forfatter: Trond Hasle Amundsen
Kontakt: unix-drift@usit.uio.no
Dato: 2011-10-06

Linux prøver å forhandle med svitsjen om hvilken båndbredde og duplex som skal brukes. Dersom svitsjen er satt til fast 100Mbit full-duplex (uten autonegotiation) vil Linux falle tilbake på 100Mbit half-duplex. Dette er korrekt oppførsel.

Du kan sjekke hva som kjører på et nett-interface med kommandoen ethtool:

maskin.uio.no# ethtool eth1
Settings for eth1:
        Supported ports: [ MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Half
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g

I eksemplet kjører eth1 i half-duplex, noe som generelt ikke er ønskelig. For å bøte på dette er det to alternativer:

  1. Endre innstillingene på den aktuelle porten på svitsjen slik at den støtter autonegotiation på både båndbredde og duplex (dvs. auto/auto).

  2. Dersom alternativ 1 er upraktisk eller umulig, kan man tvinge Linux til å kjøre 100Mbit full-duplex på nettkortet. Det gjøres best ved å legge inn følgende linje i /etc/sysconfig/network-scripts/ifcfg-ethX, der X vanligvis er 0 eller 1:

    ETHTOOL_OPTS="speed 100 duplex full autoneg off"
    

    Etter dette kan interfacet restartes:

    maskin.uio.no# ifdown ethX
    maskin.uio.no# ifup ethX
    

For å tvinge nettkortet til 100Mbit full-duplex med det samme, kan man kjøre følgende kommando (forutsatt at nettkortet støtter MII, noe de fleste gjør):

maskin.uio.no# mii-tool -F100baseTx-FD ethX
Publisert 5. okt. 2011 21:48 - Sist endret 6. okt. 2011 15:02