ISP BiDi SFP가 Cisco 스위치에서는 링크가 올라오는데 pfSense 박스의 X710 포트에서는 캐리어가 안 잡힙니다
홈 환경입니다. 통신사에서 넘어오는 광케이블은 1G BiDi 모듈인데, 미디어 변환만을 위해 박스 앞에 스위치를 하나 더 두는 대신 방화벽 자체에 바로 물리고 싶습니다.
- Protectli Vault 6, pfSense 구동, X710 포트, ixl 드라이버
- 통신사에서 준 1G BiDi 모듈, EZConn ETB43315-7S34-FR
- 같은 모듈이 Cisco 스위치에서는 아무 문제 없이 링크가 올라옴
- 같은 케이지에 Cisco 10G LR FTLX1474D3BCL-CS를 꽂아도 잘 올라옴
BiDi를 ixl1에 꽂으면 포트가 no carrier에서 절대 벗어나지 않고, 로그는 이유를 숨기지 않습니다.
ixl1: no carrier
i40e link status timeout, I40E_ERR_TIMEOUT
Link failed because an unqualified module was detected
같은 메시지 묶음에 PHY capabilities를 가져오다 나는 에러도 있습니다.
지금까지 시도한 것:
ifconfig ixl1 media 1000baseLX- 거부됨. 포트가 그 미디어 타입을 받지 않음sysctl dev.ixl.1.advertise_speed- 설정해도 아무 효과 없음- loader.conf에
hw.ixl.unsupported_sfp=1추가 후 재부팅 - 소용없음, unqualified module 줄이 여전히 나옴
그러니까 카드는 모듈을 인식은 하는데 마음에 안 든다고 판단하고 거기서 대화가 끝나버립니다. 이 포트들에서 1G 광모듈을 쓸 방법이 아예 없는 건가요, 아니면 방화벽 앞에 스위치를 두는 게 솔직한 답인가요?
Comments 6
서로 다른 문제 두 개가 겹쳐 있고, 순서대로 풀어야 합니다.
첫째, 펌웨어. 6.1은 너무 오래돼서 카드가 모듈을 제대로 표시하지도 못하는데, 그래서 파워 수치가 비어 있는 겁니다. 9.40으로 올려야 실제 RX/TX 파워가 나타납니다. 다른 무엇보다 이것부터 하세요. 안 그러면 눈감고 디버깅하는 셈이라 이후 테스트가 전부 의미 없어집니다.
둘째, 실제로 포트를 안 올라오게 만드는 부분입니다. X710에서는 모듈 검증이 드라이버가 아니라 NIC 펌웨어 안에 있어서, 시도한 어떤 옵션도 거기까지 닿지 않습니다.
hw.ixl.unsupported_sfp=1이 여기서 아무 효과가 없는 이유,sysctl dev.ixl.1.advertise_speed가 조용히 무시되는 이유,ifconfig ixl1 media 1000baseLX가 거부되는 이유가 다 이겁니다. 포트는Link failed because an unqualified module was detected로 이미 거부한 모듈에 대해 1G 미디어를 선택해주지 않습니다.저한테 통한 방법은 광모듈에 Intel 벤더 데이터를 다시 코딩하는 거였습니다. FS SFP-GE-BX 모듈을 써서 FS Box로 Intel 벤더 데이터를 써넣었더니, 이후로는 미디어 강제 지정도 sysctl도 전혀 없이 autoselect로 바로 올라왔습니다. 이건 카드가 아니라 모듈을 바꾸는 방법이고, 통신사가 준 EZConn은 재프로그램할 권한이 없는 물건이니 파장이 맞는 BX 페어를 직접 사서 그걸 리코딩하세요.
EEPROM은 건드리고 싶지 않다면 카드가 이미 받아들이는 광모듈을 쓰면 됩니다. 지금 쓰시는 Cisco 10G LR가 한 예고, 경로 어딘가에서 통신사가 구리선을 줄 수 있다면 FS RJ45 1G SFP+도 대안입니다.
다른 무엇보다 먼저: 그 X710에 올라간 NIC 펌웨어가 뭔가요? 이 카드들은 모듈이 표시되는 방식 자체를 바꿀 정도로 오래된 빌드를 달고 출하된 적이 있어서, 지금까지 건드려본 어떤 sysctl보다 이게 더 중요합니다.
같은 맥락에서 두 번째 질문. BiDi가 ixl1에 꽂혀 있을 때 포트 상태에 RX/TX 파워가 표시되나요, 아니면 모듈이 그냥 present로만 뜨고 수치는 없나요? 이 두 답을 합치면 카드가 읽을 수 있는 모듈을 거부하는 건지, 아니면 거기까지 가기도 전에 실패하는 건지 알 수 있습니다.
펌웨어는 6.1입니다, 박스가 나올 때 딸려온 그대로고 저는 손댄 적이 없습니다.
그리고 아니요, 수치는 전혀 없습니다. ixl1에 통신사 BiDi를 꽂으면 모듈은 present로 뜨는데 RX/TX 파워는 비어 있습니다. 같은 케이지의 Cisco 10G LR는 파워가 나오는데, 이게 바로 말씀하신 차이인 것 같습니다.
이 작업용 프로그래머를 주문하기 전에 알아둘 것: FS Box는 FS 모듈만 프로그래밍합니다. 다른 벤더 제품을 넣은 사람들은 계정이 일주일간 잠겼다고 하니, 범용 리코더가 아니라 한 벤더의 광모듈 전용 도구입니다.
아무 모듈이나 받아주는 게 필요하다면 Flexoptix를 비롯한 다른 프로그래머들이 같은 일을 하지만 값이 상당히 비싸고, Ubiquiti 마법사 쪽은 저렴한 축에 속합니다. BX 모듈 한 쌍 정도라면 대개 지금 쓰는 장비와 같은 벤더에서 광모듈을 사는 게 가장 속 편한 방법입니다.
증상은 비슷한데 원인은 완전히 다른 경우도 있으니 뻔한 확인들을 건너뛰지 마세요.
pfSense 밑에 Supermicro AOC-STGN-i2S를 쓰는데 ix1에 1G Ubiquiti UF-MM-1G를 꽂아도 계속 no carrier였습니다.
ifconfig -v ix1은 미디어로 autoselect와 10Gbase-SR만 나열했고,ifconfig ix1 media 1000baseTX는 device-not-configured 에러를 냈는데, 이건 딱 드라이버가 10G 포트에서 1G를 거부하는 모양새입니다. 카드를 Ubuntu 라이브 이미지로 옮겨봤는데 거기서도 DAC든 모듈이든 링크가 안 올라왔습니다. 그런데 두 번째로 똑같은 Unifi 모듈을 꽂았더니 Ubuntu에서도 pfSense에서도 바로 링크가 올라왔습니다. 첫 번째 모듈이 그냥 죽어 있던 거였습니다.모듈 하나 여분과 다른 호스트 하나면 20분 들여서 이론의 절반을 지울 수 있습니다. 지금 상황은 unqualified module 메시지가 범인을 꽤 명확히 짚어주고 있으니 아마 괜찮겠지만, 프로그래머에 돈 쓰기 전에 싸게 확인해볼 보험 정도는 됩니다.
결과를 일어난 순서대로 정리합니다.
먼저 펌웨어, 6.1에서 9.40으로. 모듈이 바로 RX/TX 파워를 표시하기 시작했지만, 통신사 BiDi는 여전히 링크를 거부했고 unqualified module 줄도 로그에 그대로 남아 있었습니다. 결국 펌웨어 업데이트로 얻은 건 가시성뿐이었습니다.
그다음 FS SFP-GE-BX 한 쌍을 Intel 벤더 데이터로 리코딩했습니다. 양쪽 다 미디어 강제 지정 없이,
hw.ixl.unsupported_sfp도 없이, loader.conf에 아무것도 안 남긴 채로 autoselect로 올라왔습니다. 허둥대며 걸어뒀던 sysctl들을 도로 빼도 링크는 그대로 유지됐습니다.통신사 모듈은 어차피 제 것이 아니라 재프로그램할 수 없으니 예비용으로 서랍에 넣어뒀고, 방화벽 앞의 스위치는 치웠습니다.