pfSense에서 Chelsio T580: 브레이크아웃 케이블용으로 QSFP+ 포트를 4x10G로 바꾸려면
Chelsio T580가 꽂힌 작은 장비에서 pfSense를 돌리는데, QSFP+ 포트 하나를 단일 40G 링크 대신 10G 호스트 네 대로 나눠 쓰고 싶어요. 브레이크아웃 케이블은 아직 오는 중이라, 도착하기 전에 카드를 미리 맞는 모드로 해두고 싶어요.
- pfSense 장비, Chelsio T580, QSFP+ 포트 하나는 지금 40G DAC가 꽂혀 있고 두 번째 케이지는 비어 있음
- cxgbe 드라이버, 셸에서 cxgbetool 사용 가능
- QSFP+/4xSFP+ 브레이크아웃 DAC, OCTTAPCABLE3M (백업 플랜으로 OCTCABLE5M-SR AOC)
- 반대편은 10G 호스트, 그냥 SFP+ 케이지
지금은 카드가 늘 40G 인터페이스 두 개로만 보여요:
cxgbe0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000
media: Ethernet 40Gbase-CR4 <full-duplex>
cxgbe1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
media: Ethernet autoselect
status: no carrier
이미 해본 것:
- cxgbetool 서브커맨드를 다 훑어보면서 포트 모드 설정 비슷한 걸 찾아봤는데 아무것도 없었어요
- 포트를 나눠줄 cxgbe용 loader tunable도 찾아봤는데 역시 없었어요
- 케이블만으로는 안 되고 어댑터가 먼저 4x10G 모드여야 한다는 걸 확신할 만큼은 읽어봤어요
그러면 40G/4x10G 분할이라는 게 FreeBSD 드라이버가 아예 전환할 수 있는 건가요, 아니면 어댑터 설정에 있는 건가요? 설정 쪽이라면, FreeBSD 기반 장비에서 그걸 바꾸는 지원되는 방법은 뭔가요?
Comments 5
짧게 말하면: 드라이버는 그걸 못 해요. 포트 구성은 어댑터에 로드된 설정에서 나오는 거라, cxgbe도 cxgbetool도 모드 전환을 노출하지 않는 거예요. Chelsio 자체 설정 유틸리티로 바꿔야 하고, 그러면 카드가 새 구성으로 돌아와요.
유틸리티를 장비에 가져다놓고(USB 스틱을 아무 데나 마운트하는 걸로 충분해요) 실행하세요:
어느 어댑터인지 묻고, 그다음에 어떤 모드를 원하는지 물어요. 브레이크아웃 모드는 Spider (4x10G)로 나오는데, 그게 QSFP+ 포트를 10G 레인 네 개로 바꿔주는 항목이에요.
새로 설치한 환경에서는 첫 실행이 바로 죽는 경향이 있어요:
별건 아니고, 그냥 라이브러리 하나가 없는 거예요. flashrom을 설치하면 의존성으로 같이 딸려와요:
그러면 libpci 3.5.6_1이 같이 들어오고, 그 뒤로는 스크립트가 실행되고 모드 변경도 성공으로 나와요.
케이블이 도착하기 전에 이 작업을 하시는 거니까 하나만 주의하세요: 그 시점에 얻는 건 유틸리티가 모드가 적용됐다고 알려주는 것뿐이에요. 레인 네 개가 실제로 올라오는지는 브레이크아웃 케이블을 케이지에 꽂아봐야만 증명되니까, 테스트해보기 전까지는 40G 쪽 설정을 없애지 마세요.
드라이버 옵션을 계속 찾아보기 전에요: 카드가 실제로 어떤 설정으로 돌아가고 있나요, 그리고 그 장비에 python2.7을 설치할 수 있나요? 이걸 바꾸는 건 FreeBSD 툴링의 일부가 아니라 Chelsio 유틸리티고, 기본 설치 상태에서는 기본으로 없는 몇 가지가 더 필요해요.
하나 더, 지금 cxgbe0가 40G로 링크돼 있는 상태인데: 그 포트에 끊기면 안 되는 게 물려 있나요? 모드는 어댑터에 로드된 설정에서 나오는 거라서, 카드가 다른 구성으로 돌아오는 동안 포트 두 개가 다 사라져요. 40G 링크를 통해서가 아니라 콘솔에서 작업하세요.
확인했어요, 순서도 정확히 그대로였어요. 첫 실행은 이걸로 죽었고
그다음 pkg install flashrom이 libpci 3.5.6_1을 가져오니까 스크립트가 잘 떴어요. 어댑터 목록이 나오고 Spider (4x10G)를 골랐더니 모드 변경이 성공했다고 나왔어요.
케이블은 아직 안 와서 네 포트 자체에 대해서는 아직 아무 말도 못 하겠어요. OCTTAPCABLE3M이 실제로 케이지에 꽂히면 다시 알려드릴게요.
스위치 실리콘에서도 같은 개념인데, 절차는 훨씬 많아요. ICX 7750에서는 장비가 cut-through 모드에서 빠져나오기 전까지는 40G 포트가 안 나뉘어요:
그다음 40G 포트의 설정을 다 지우고 거기서 breakout을 활성화해요:
두 번째 reload 뒤에는 서브 포트 네 개가 1/2/1:1부터 1/2/1:4까지로 나타나고 평범한 독립 10G 인터페이스처럼 동작해요. 케이블 하나 꽂자고 reload를 두 번이나 해야 하지만, 적어도 존재하는지 알아야만 하는 숨겨진 어댑터 설정이 아니라 문서화된 동작이긴 해요.
모드는 싸움의 절반일 뿐이고, 반대편도 케이블 자체를 받아줘야 한다는 것도 덧붙일게요. MX204랑 MX10003에서는 예전 Junos에서는 평범한 40G DAC가 잘 링크됐는데, 100G DAC가 공식 지원을 받게 되면서 40G 쪽은 조용히 목록에서 빠졌고, 지금은 그 장비들에서 아예 지원이 안 돼요. 지원되는 건 4x10G 브레이크아웃 광모듈인 QSFPP-4X10GE-LR이나 SFPP-4X10GE-SR이고, 서드파티 부품은 보통 맞는 SKU로 코딩돼 있어야 포트가 봐줘요.
그 Chelsio는 라우터 라인카드보다 훨씬 덜 까다롭긴 한데, 네 갈래가 벤더 장비로 들어간다면 어댑터 모드를 다시 탓하기 전에 그 장비가 브레이크아웃 DAC를 어떻게 다루는지부터 확인해보세요.