네, 알겠습니다. 오늘 긴 시간 동안 진행했던 S32G GoldBox 두 대의 네트워크 연결 문제 해결 과정을 모두 정리하여, 마크다운 형식으로 상세하게 작성해 드리겠습니다.
두 개의 S32G 보드(G3, G2)를 이더넷으로 연결하여, 802.1CB (FRER)와 같은 고급 네트워크 기능 및 기본적인 통신 성능을 테스트한다.
두 보드를 물리적으로 연결하고 IP 주소를 할당했음에도 불구하고, 가장 기본적인 ping
통신조차 실패하는 현상이 지속적으로 발생했다.
ping: connect: Network is unreachable
From ... icmp_seq=1 Destination Host Unreachable
문제의 원인을 명확히 파악하기 위해, 가장 복잡한 환경에서 시작하여 점차 단순화하고 변수를 통제하는 체계적인 디버깅을 진행했다.
libfci_cli
사용)libfci_cli
유틸리티를 사용하여 L2 브릿지를 구성하고, hif0
인터페이스에 IP를 할당하여 통신을 시도했다.libfci_cli
명령어 실행 시 Failed to connect to libfci_cli daemon. errno= 101
오류 발생.ip addr add ... dev hif0
명령어 실행 시 Device "hif0" does not exist.
오류 발생.pfeng-slave
)가 정상적으로 로드되지 않아, 리눅스 스택과 PFE 하드웨어를 연결하는 hif0
인터페이스 자체가 생성되지 않았다. 이는 PFE 기능 전체가 마비된 상태임을 의미한다.brctl
사용)pfe*sl
)들을 묶어 통신을 시도했다.ping
실패. G3 보드의 ip route
결과에서 linkdown
플래그가 관찰되었다.linkdown
상태는 커널이 물리적 링크가 끊어졌다고 판단했음을 의미한다. 하지만 ethtool
명령어로 확인했을 때 G3 보드의 pfe0sl
포트는 Link detected: no
, pfe1sl
포트는 Link detected: yes
로 나타나, pfe0sl
포트 또는 관련 드라이버에 문제가 있음을 특정했다.eth0
활용)eth0
포트를 사용하여 통신을 시도했다.
G3(eth0) ↔ G2(eth0)
연결: ping
실패.G3(eth0) ↔ G2(pfe1sl)
교차 연결: ping
실패.EXT4-fs error ... checksumming directory block
과 같은 파일 시스템 손상 오류가 관찰되었다.ping
이 간헐적으로 실패하는 현상이 발생. iptables -L
명령어로 확인한 결과, K3s 에이전트가 자동으로 복잡한 방화벽 규칙을 생성하여 통신을 방해하고 있음이 확인되었다.k3s-agent
와 networking
등 관련 서비스를 모두 중지 (/etc/init.d/k3s-agent stop
).iptables
와 ip route
테이블을 수동으로 완전히 초기화.eth0
포트에 IP를 할당하자 마침내 양방향 ping
통신에 성공했다.eth0
포트 기반)모든 장애물을 제거하고 안정적인 통신 경로를 확보한 후, eth0
(GMAC) 포트의 성능을 종합적으로 측정했다.
iperf3
대역폭 측정ptp4l
시간 동기화 (802.1AS) 테스트linuxptp
패키지의 ptp4l
도구를 사용하여 한 보드를 마스터, 다른 보드를 슬레이브로 설정하고 L2 멀티캐스트 기반 시간 동기화를 시도.master offset
값이 수십 나노초(ns) 단위로 안정적으로 수렴하는 것을 확인했다.ping
(유니캐스트)뿐만 아니라 L2 멀티캐스트 통신까지 정상적으로 동작함을 증명했으며, 두 보드의 네트워크 하드웨어와 커널 스택이 완벽하게 정상임을 최종적으로 확인시켜 주었다.초기의 지속적인 통신 실패는 하드웨어 고장(냉납)이 아닌, 두 가지 소프트웨어 문제의 복합적인 작용 때문이었다.
iptables
방화벽 및 라우팅 규칙을 생성하여, 수동으로 구성한 테스트 네트워크의 통신을 차단했다. (→ 관련 서비스 중지 및 네트워크 설정 초기화로 해결)모든 문제를 해결한 결과, 두 S32G 보드는 eth0
포트를 통해 기가비트 이더넷의 최대 성능에 가까운 안정적인 통신이 가능함을 확인했다. 비록 G3 보드의 PFE 드라이버 문제는 플래시 재기록 전까지 해결되지 않아 802.1CB와 같은 TSN 하드웨어 가속 기능은 테스트하지 못했지만, 체계적인 디버깅을 통해 문제의 원인을 정확히 규명하고 시스템의 기본 성능을 성공적으로 검증할 수 있었다.