내 네트워크 연결이 불안정합니다. 스위치에서 서버로 연결되는 것 같은데 문제를 해결하는 방법을 모르겠습니다. 설정은 다음과 같습니다.
스위치는 N5860-48SC, 48포트 이더넷 L3 데이터 센터 스위치, 48 x 10Gb SFP+(8 x 100Gb QSFP28 포함)입니다. 서버는 광섬유 케이블을 통해 100G 포트 중 하나에 연결됩니다. 해당 포트에서 서버로 이동해야 한다고 생각하는 이유는 구리선을 사용하여 10G 포트에 연결된 다른 시스템에는 문제가 없기 때문입니다.
서버는 100G NIC를 갖춘 Intel 기반 서버입니다 - lspci 및 ethtool 표시:
# lspci
...
51:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP (rev 02)
51:00.1 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP (rev 02)
...
# ethtool ens4f0
Settings for ens4f0:
Supported ports: [ FIBRE ]
Supported link modes: 25000baseCR/Full
25000baseKR/Full
25000baseSR/Full
50000baseCR2/Full
100000baseSR4/Full
100000baseCR4/Full
100000baseLR4_ER4/Full
50000baseSR2/Full
100000baseSR2/Full
100000baseCR2/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: None
Advertised link modes: 25000baseSR/Full
50000baseCR2/Full
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: None
Speed: 100000Mb/s
Duplex: Full
Auto-negotiation: off
Port: FIBRE
PHYAD: 0
Transceiver: internal
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
다른 시스템(1G NIC를 통해)에서 핑하는 것은 이상합니다. 때로는 액세스할 수 없고 때로는 매우 길 수도 있습니다.
...
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=560 ttl=64 time=0.297 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=561 ttl=64 time=0.284 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=562 ttl=64 time=0.231 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=563 ttl=64 time=0.280 ms
From 192.168.50.29 (192.168.50.29) icmp_seq=567 Destination Host Unreachable
From 192.168.50.29 (192.168.50.29) icmp_seq=568 Destination Host Unreachable
From 192.168.50.29 (192.168.50.29) icmp_seq=569 Destination Host Unreachable
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=570 ttl=64 time=0.423 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=571 ttl=64 time=0.275 ms
...
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=591 ttl=64 time=0.298 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=592 ttl=64 time=0.267 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=598 ttl=64 time=1020 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=599 ttl=64 time=0.337 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=600 ttl=64 time=0.260 ms
...
마지막으로 /var/log/messages:
# cat messages
Aug 28 00:10:21 knox rsyslogd: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="785" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Aug 29 11:25:09 knox kernel: [2160313.695273] ice 0000:51:00.0 ens4f0: NIC Link is Down
Aug 29 11:25:09 knox kernel: [2160313.791123] ice 0000:51:00.0 ens4f0: NIC Link is up 100 Gbps Full Duplex, Requested FEC: RS-FEC, Negotiated FEC: RS-FEC, Autoneg Advertised: Off, Autoneg Negotiated: False, Flow Control: None
Aug 29 14:28:17 knox kernel: [2171301.703959] ice 0000:51:00.0 ens4f0: NIC Link is Down
Aug 29 14:28:17 knox kernel: [2171301.808407] ice 0000:51:00.0 ens4f0: NIC Link is up 100 Gbps Full Duplex, Requested FEC: RS-FEC, Negotiated FEC: RS-FEC, Autoneg Advertised: Off, Autoneg Negotiated: False, Flow Control: None
Aug 31 21:51:47 knox kernel: [2370711.058542] ice 0000:51:00.0 ens4f0: NIC Link is Down
Aug 31 21:51:47 knox kernel: [2370711.155567] ice 0000:51:00.0 ens4f0: NIC Link is up 100 Gbps Full Duplex, Requested FEC: RS-FEC, Negotiated FEC: RS-FEC, Autoneg Advertised: Off, Autoneg Negotiated: False, Flow Control: None
이는 문제와 관련이 없을 수도 있지만 확실히 제가 수동으로 수행할 작업은 아닙니다.
---편집하다---
방금 알아차린 또 다른 점은 패킷이 소리 없이 손실되는 것 같습니다. 시퀀스 번호가 7에서 16으로, 24에서 30으로 점프하는 것을 확인하세요.
# ping knox
PING knox.comind.io (192.168.50.7) 56(84) bytes of data.
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=1 ttl=64 time=0.374 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=2 ttl=64 time=0.233 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=3 ttl=64 time=0.267 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=4 ttl=64 time=0.234 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=5 ttl=64 time=0.277 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=6 ttl=64 time=0.301 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=7 ttl=64 time=0.234 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=16 ttl=64 time=0.273 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=17 ttl=64 time=0.224 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=18 ttl=64 time=0.224 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=19 ttl=64 time=0.312 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=20 ttl=64 time=0.291 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=21 ttl=64 time=0.275 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=22 ttl=64 time=0.282 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=23 ttl=64 time=0.243 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=24 ttl=64 time=0.274 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=30 ttl=64 time=0.260 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=31 ttl=64 time=0.497 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=32 ttl=64 time=0.280 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=33 ttl=64 time=0.273 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=34 ttl=64 time=0.283 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=35 ttl=64 time=0.273 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=36 ttl=64 time=0.297 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=37 ttl=64 time=0.244 ms
64 bytes from knox.comind.io (192.168.50.7): icmp_seq=38 ttl=64 time=0.273 ms
답변1
제안:
systemd-networkd(ifupdown의 시스템 번역)를 사용하여 구성을 확인하세요.
networkctl -a 상태
원하는 것인지 분석하십시오(이 명령은 systemd-networkd의 일부입니다). 이것이 정확히 /etc/network/interfaces를 스크립팅하려는 대상이 아닌 경우 ifupdown 대신 systemd를 직접 사용하는 것이 좋습니다.
실패한 서비스를 확인하십시오.
systemctl --type=서비스 --state=실패
/etc/network/interfaces를 사용하고 debian 11이 있는 경우 최신 systemd를 사용하여 레거시 구성에 대해 작업(번역)할 수 있습니다. 이 경우 /etc/network/interfaces를 /etc/network/interfaces.save로 이동하고 systemd를 사용하여 네트워크를 구성합니다. 만들다:
/etc/systemd/network/10-mynet1.network
/etc/systemd/network/20-mynet2.network
…
systemd-networkd의 구문은 인터페이스의 구문과 다릅니다.
데비안 11.x에는 기존 네트워크 시스템과 새로운 네트워크 시스템이 있습니다. 이 시스템은 Debian 11.5 최소 서버 설치의 가장 간단한 경우에만 작동합니다. ifupdown과 설명할 수 없는 동작에 익숙해지는 데 5일이 걸렸습니다. 1시간 후에 systemd로 옮겼고 모든 것이 예상대로 작동했습니다.
감사합니다, 보그단
답변2
첫째, 친절하게 도와주신 분들께 감사드립니다. 이 덕분에 제가 좀 더 심층적인 디버깅을 하도록 영감을 받았습니다. 몇 번 돌아다니다가 dmidecode
마침내 문제를 깨달았습니다. 카드가 PCIe 3.0 슬롯에 연결되어 있고 약 63Gbps의 속도만 제공할 수 있으므로 당연히 100Gbps로 실행되는 카드는 문제가 될 것입니다. 유일한 PCIe 4.0 슬롯으로 옮겼을 때 처음에는 트랜시버를 감지할 수 없었습니다. 이 문제는 BIOS 및 BMC 펌웨어를 업그레이드하여 해결되었습니다.
마지막 문제는 하나의 모듈만 활성화된다는 것입니다. 이를 활성화하려면 BIOS에서 해당 슬롯에 대해 PCIe 분기를 설정해야 합니다. 그러나 100Gbps는 RAID 카드(12Gbps)에서 지원하는 속도보다 훨씬 높기 때문에 이미 네트워크를 통해 디스크 어레이를 포화시켜 기다릴 수 있습니다.