상황은 다음과 같습니다. Linux 컴퓨터 클러스터가 개인 LAN에 연결되어 있고 운영 체제는 CentOS 7.5이고 커널은 v3.10입니다. 어느 날 실수로 컴퓨터 중 하나에서 이더넷 케이블을 뽑았다가 재빨리 다시 연결했지만, 이 컴퓨터에서 다른 컴퓨터를 ping할 수 없으며 그 반대의 경우도 마찬가지라는 것을 발견했습니다. 방금 "대상 호스트에 연결할 수 없음" 오류가 발생했습니다.
이제 케이블이 단단히 연결되었지만 문제는 사라지지 않았습니다. 네트워크 서비스를 다시 시작하고 컴퓨터도 다시 시작해 보았지만 아무것도 작동하지 않습니다. 케이블이 그렇게 쉽게 손상될 거라고는 생각하지 않습니다. 나는 클러스터의 다른 컴퓨터를 실험해본 결과 트리거가 단순히 이더넷 케이블을 뽑았다가 다시 연결하는 것임을 확인했습니다.
구성 파일은 다음과 같습니다 /etc/sysconfig/network-scripts
.
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eno1
UUID=b5727a1c-9c4f-46f4-b54d-988eff6e2b48
DEVICE=eno1
ONBOOT=yes
NETBOOT=yes
IPADDR=10.10.10.101
NETMASK=255.255.255.0
ZONE=trusted
출력은 다음과 같습니다 ip addr show eno1
.
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 6c:92:bf:fa:d9:da brd ff:ff:ff:ff:ff:ff
inet 10.10.10.101/24 brd 10.10.10.255 scope global eno1
valid_lft forever preferred_lft forever
inet 12.12.12.201/24 brd 12.12.12.255 scope global eno1:0
valid_lft forever preferred_lft forever
inet6 fe80::6e92:bfff:fefa:d9da/64 scope link
valid_lft forever preferred_lft forever
출력은 다음과 같습니다 ip route show
.
10.10.10.0/24 dev eno1 proto kernel scope link src 10.10.10.101
이것이 결과이다ping 10.10.10.100
PING 10.10.10.100 (10.10.10.100) 56(84) bytes of data.
From 10.10.10.101 icmp_seq=1 Destination Host Unreachable
다음은 이 인터페이스에 대해 tcpdump에서 얻은 처음 10개의 패킷입니다 eno1
. 그리고 mu02
호스트 이름은 입니다 10.10.10.101
. mu01
호스트 이름은 다음과 같습니다 10.10.10.100
.
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
22:34:11.758062 ARP, Request who-has mu01 tell mu02, length 28
22:34:12.408319 STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8001.04:31:10:83:5c:00.8002, length 43
22:34:12.760044 ARP, Request who-has mu01 tell mu02, length 28
22:34:13.762044 ARP, Request who-has mu01 tell mu02, length 28
22:34:14.412066 STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8001.04:31:10:83:5c:00.8002, length 43
22:34:14.764062 ARP, Request who-has mu01 tell mu02, length 28
22:34:15.766045 ARP, Request who-has mu01 tell mu02, length 28
22:34:16.095625 DTPv1, length 38
22:34:16.098088 Loopback, skipCount 0, Reply, receipt number 0, data (40 octets)
22:34:16.413602 STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8001.04:31:10:83:5c:00.8002, length 43
누구든지 합리적인 해결책을 제공해 주시면 매우 감사하겠습니다!
답변1
22:34:14.412066 STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8001.04:31:10:83:5c:00.8002, length 43
22:34:16.095625 DTPv1, length 38
22:34:16.098088 Loopback, skipCount 0, Reply, receipt number 0, data (40 octets)
Rapid Spanning Tree Protocol 패킷과 Dynamic Clustering Protocol 패킷을 보내는 스위치가 있습니다. 일종의 루프백 테스트도 있는 것 같습니다. 이는 컴퓨터를 연결하는 스위치일 수도 있고 아닐 수도 있지만 해당 세그먼트에 관리되는 스위치가 하나 이상 있을 가능성이 있음을 나타냅니다.
시스템이 관리형 스위치(Cisco로 추측됩니다)에 직접 연결되어 있는 경우 스위치 포트가 최적으로 구성되지 않을 수 있습니다. 스위치 구성 담당자에게 연락하여 함께 문제를 해결하도록 노력해야 합니다. 스위치의 로그 또는 기타 진단은 스위치가 알고 있는 포트의 현재 상태에 대한 정보를 제공하고 해당 포트를 작동 중인 다른 포트와 비교해야 합니다. 아마도 유용한 내용이 드러날 것입니다.
최적의 성능을 위해 일반적으로 각 스위치 포트를 다음과 같이 사용할지 여부를 관리형 스위치에 알릴 수 있습니다.액세스 포트(= 컴퓨터를 연결하는 데 사용되며 네트워크 세그먼트를 트리 다이어그램으로 생각할 때 "리프 포트"라고도 함) 또는트렁크 포트(= 두 스위치 사이 또는 스위치와 라우터 사이의 링크로).
지정하지 않으면 포트는 "모든 포트"로 작동할 수 있지만 스위치 포트에 연결된 컴퓨터(또는 다른 장치)가 링크를 활성화한 후 스위치는 포트가 다른 스위치에 연결되어 있는지 확인하는 데 시간을 소비합니다. 연결된 경우 연결된 두 스위치 간에 다양한 고급 기능을 협상해야 하는지 여부입니다. 이로 인해 "모든 포트"의 시작 속도가 느려질 수 있습니다.
스위치에 주소 하이재킹 방지 또는 기타 보안 옵션이 활성화되어 있고 컴퓨터가 개인 정보 보호를 위해 MAC 주소를 무작위로 지정하는 경우(최신 운영 체제는 특히 무선 네트워크에서 이 작업을 수행하도록 선택할 수 있음) 이러한 기능의 대화형 효과가 나쁠 수 있습니다. "귀하의 MAC이 예전과 같지 않기 때문에 누군가가 합법적인 시스템의 플러그를 뽑고 그 자리에 악성 시스템을 삽입했을 수 있습니다. 지금은 포트를 비활성화하고 네트워크 관리자에게 무슨 일이 일어나고 있는지 알아내도록 하겠습니다."라고 결정했습니다. "