[리눅스] Linux ethtool 옵션, 명령어 사용법 총정리

반응형

네트워크 인터페이스에 대한 정보를 확인하기 위해서 반드시 알고 있어야 할 명령어 바로 ethtool 입니다.

본론으로 이번 포스팅에서는 리눅스 ethtool 명령어 옵션과 사용법에 대해 자세하게 알아보도록 할게요~

 

ethtool 옵션

 

실습을 통해 자세하게 살펴볼게요.

 

# 네트워크 인터페이스 정보 출력

command :

ethtool [디바이스명]

 

[root@Eloquence ~]# ethtool enp0s3
Settings for enp0s3:   // enp0s3 인터페이스에 대한 정보
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s   // Speed값 (10, 100, 1000)
        Duplex: Full   // Duplex값 (Half, Full) = 전송 모드
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on  // Auto-nego 상태 (on/off)
        MDI-X: off (auto)
        Supports Wake-on: umbg
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes   // yes : 네트워크 링크가 감지되었다.    no : 링크가 감지되지 않았다

 

# ethtool -s (소문자) [인터페이스 설정값 변경]

스피드 값을 100Mb/s로 변경해볼게요.

command :

ethtool -s [디바이스명] autoneg [on/off]

ethtool -s [디바이스명] speed [10/100/1000] duplex [half/full]

 

[root@Eloquence ~]# ethtool -s autoneg off   // nego 기능으로 설정값들이 자동으로 픽스되는 것을 막고 우리가 원하는 대로 수정하기 위해 off 시켜줍시다.

[root@Eloquence ~]# ethtool -s enp0s3 speed 100 duplex full    // 설정값 변경

[root@Eloquence ~]# ethtool enp0s3   // 변경된 설정값 확인
Settings for enp0s3:
        Supported ports: [ TP ] 
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No 
        Supports auto-negotiation: Yes 
        Supported FEC modes: Not reported 
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No 
        Advertised auto-negotiation: Yes 
        Advertised FEC modes: Not reported 
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair 
        PHYAD: 0 
        Transceiver: internal 
        Auto-negotiation: off
        MDI-X: off (auto) 
        Supports Wake-on: umbg 
        Wake-on: d 
        Current message level: 0x00000007 (7) 
                               drv probe link 
        Link detected: yes

 

 

# ethtool -s

Duplex값을 half로 변경해볼게요.

[root@Eloquence ~]# ethtool -s enp0s3 speed 100 duplex half

[root@Eloquence ~]# ethtool enp0s3
Settings for enp0s3:
        Supported ports: [ TP ] 
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No 
        Supports auto-negotiation: Yes 
        Supported FEC modes: Not reported 
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No 
        Advertised auto-negotiation: Yes 
        Advertised FEC modes: Not reported 
        Speed: 100Mb/s
        Duplex: Half
        Port: Twisted Pair 
        PHYAD: 0 
        Transceiver: internal 
        Auto-negotiation: off
        MDI-X: off (auto) 
        Supports Wake-on: umbg 
        Wake-on: d 
        Current message level: 0x00000007 (7) 
                               drv probe link 
        Link detected: yes

 

 

※. 만약 Duplex 값 변경이 정상적으로 되지 않는다면 드라이버 Duplex 값 설정이 필요할 수 있다.

1. 자신이 사용하고 있는 드라이버를 확인하자

# lspci -v 또는 lspci -vv   [lspci 명령어 사용법은 [리눅스] Linux lspci 명령어 옵션 및 사용법 정리 참조해주세요]

 

2. 저는 e1000 드라이버를 사용하고 있습니다.

Kernel driver in use: e1000

 

3. e1000 드라이버 설정값 변경

# modprobe e1000 Duplex=0  // 0=auto-negotiate,  1=half,  2=full

 

# ethtool -i

사실 사용 중인 디바이스 드라이버 정보는 -i 옵션으로도 확인이 가능하다.. 헿.. 

위에 lspci로 설명드린 이유는 ... 헿.. 명령어 익숙해지시라구염~ (좋은 게 좋은 거예요)

command :

ethtool -i [디바이스명]

 

[root@Eloquence ~]# ethtool -i enp0s3
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:00:03.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

 

# ethtool -S (대문자) [인터페이스 통계 정보]

command :

ethtool -S [디바이스명]

 

[root@Eloquence ~]# ethtool -S enp0s3
NIC statistics:
     rx_packets: 51453
     tx_packets: 3723
     rx_bytes: 3626190
     tx_bytes: 427748
     rx_broadcast: 46581
     tx_broadcast: 13
     rx_multicast: 39
     tx_multicast: 8
     rx_errors: 0
     tx_errors: 0
     tx_dropped: 0
     multicast: 39
     collisions: 0
     rx_length_errors: 0
     rx_over_errors: 0
     rx_crc_errors: 0
     rx_frame_errors: 0
     rx_no_buffer_count: 0
     rx_missed_errors: 0
     tx_aborted_errors: 0
     tx_carrier_errors: 0
     tx_fifo_errors: 0
     tx_heartbeat_errors: 0
     tx_window_errors: 0
     tx_abort_late_coll: 0
     tx_deferred_ok: 0
     tx_single_coll_ok: 0
     tx_multi_coll_ok: 0
     tx_timeout_count: 0
     tx_restart_queue: 0
     rx_long_length_errors: 0
     rx_short_length_errors: 0
     rx_align_errors: 0
     tx_tcp_seg_good: 3
     tx_tcp_seg_failed: 0
     rx_flow_control_xon: 0
     rx_flow_control_xoff: 0
     tx_flow_control_xon: 0
     tx_flow_control_xoff: 0
     rx_long_byte_count: 3626190
     rx_csum_offload_good: 0
     rx_csum_offload_errors: 0
     alloc_rx_buff_failed: 0
     tx_smbus: 0
     rx_smbus: 0
     dropped_smbus: 0

 

# ethtool -a [auto nego 정보]

command :

ethtool -a [디바이스명]

 

[root@Eloquence ~]# ethtool -a enp0s3
Pause parameters for enp0s3:
Autonegotiate:  on
RX:             off
TX:             off

 

# ethtool -k [offload 정보]

command :

ethtool -k [디바이스명]

 

[root@Eloquence ~]# ethtool -k enp0s3
Features for enp0s3:
rx-checksumming: off
tx-checksumming: on
        tx-checksum-ipv4: off [fixed]
        tx-checksum-ip-generic: on
        tx-checksum-ipv6: off [fixed]
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp6-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on [fixed]
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: off [fixed]
rx-vlan-filter: on [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
busy-poll: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
rx-gro-hw: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]

 

# ethtool -p [LED 점등]

command : 

ethtool -p [디바이스명]

 

[root@Eloquence ~]# ethtool -p enp0s3 

명령어 입력 후 해당 장비 후면부 NIC 포트를 자세히 들여다보면 LED가 깜빡깜빡 거리는 포트 하나를 발견할 수 있습니다.

예문에서는 그 포트가 바로 enp0s3 인터페이스가 되겠죠?

리눅스 ethtool 명령어 옵션 및 사용법에 대해 자세히 살펴봤습니다. 감사합니다.

반응형

댓글

Designed by JB FACTORY