BiDi SFP от провайдера линкуется в коммутаторе Cisco, но не даёт carrier на портах X710 в pfSense
Домашняя конфигурация. Оптический ввод от провайдера - это модуль BiDi на 1G, и я хотел бы поставить его прямо в файрвол, вместо того чтобы держать перед устройством отдельный коммутатор только ради конвертации среды.
- Protectli Vault 6 под pfSense, порты X710, драйвер ixl
- модуль BiDi 1G от провайдера, 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.
Что уже пробовал:
ifconfig ixl1 media 1000baseLX- отклоняется, порт не принимает этот тип средыsysctl dev.ixl.1.advertise_speed- установил, никакого эффектаhw.ixl.unsupported_sfp=1в loader.conf плюс перезагрузка - ничего, строка про unqualified module всё равно появляется
Получается, карта видит модуль, решает, что он ей не нравится, и на этом разговор заканчивается. Есть ли вообще способ запустить оптику 1G на этих портах, или честный ответ - держать коммутатор перед файрволом?
Comments 6
У вас наложены друг на друга две разные проблемы, и разбираться с ними нужно по порядку.
Во-первых, прошивка. 6.1 настолько старая, что карта вообще не умеет нормально показывать модули, поэтому у вас и пустые показания мощности. Переход на 9.40 - это то, что заставляет их отображаться с реальными значениями RX и TX. Сделайте это прежде всего остального, иначе вы отлаживаетесь вслепую и все последующие тесты бессмысленны.
Во-вторых, и это та часть, которая реально держит порт down: на X710 квалификация модуля живёт в прошивке сетевой карты, а не в драйвере, поэтому ни одна из опций, которые вы пробовали, до неё не дотягивается. Именно поэтому
hw.ixl.unsupported_sfp=1здесь ничего не делает, почемуsysctl dev.ixl.1.advertise_speedмолча игнорируется, и почемуifconfig ixl1 media 1000baseLXотклоняется - порт не станет выбирать среду 1G для модуля, который он уже отклонил с сообщениемLink failed because an unqualified module was detected.Мне помогло перекодирование оптики данными вендора Intel. Я использовал модули FS SFP-GE-BX, записал в них данные вендора Intel через FS Box, и после этого они поднимались на autoselect без принудительного выбора среды и вообще без sysctl. Учтите, что это меняет модуль, а не карту, а EZConn от провайдера вам не принадлежит, чтобы его перепрошивать - купите собственную пару BX с нужными длинами волн и перекодируйте их.
Если не хочется трогать EEPROM, используйте оптику, которую карта уже принимает. Ваш Cisco 10G LR - один пример, а FS RJ45 1G SFP+ - другой, если провайдер может где-то в тракте передать вам медь.
Прежде всего: какая прошивка сетевой карты стоит на этом X710? Эти карты поставлялись со сборками достаточно старыми, чтобы в принципе менять то, как представляется модуль, и это важнее любых sysctl, которые вы дёргали.
Второй вопрос сразу же: когда BiDi стоит в ixl1, показывает ли статус порта хоть какие-то значения RX и TX для него, или модуль просто числится как present без показаний? Ответы на эти два вопроса вместе покажут, отказывается ли карта от модуля, который она может прочитать, или падает ещё до этого.
Прошивка 6.1, то, с чем устройство поставлялось - я её никогда не трогал.
И нет, показаний никаких нет. С BiDi от провайдера в ixl1 модуль числится как present, но значения RX и TX power пустые. Cisco 10G LR в том же порту показания мощности выдаёт - полагаю, это как раз та разница, на которую вы указывали.
Стоит знать перед заказом программатора для этой задачи: FS Box программирует только модули FS. Люди, которые пытались скормить ему что-то от другого вендора, получали блокировку аккаунта на неделю, так что это не универсальный перекодировщик, а инструмент под оптику одного конкретного вендора.
Если нужно что-то, что берёт произвольные модули, Flexoptix и другие программаторы делают ту же работу, но стоят значительно дороже, а wizard от Ubiquiti находится в дешёвом сегменте. Для одной пары BX-модулей наименее болезненный путь обычно - купить оптику у того же вендора, что и уже имеющееся у вас устройство.
Похожий симптом, совершенно другая причина, так что не пропускайте скучные проверки.
У меня был Supermicro AOC-STGN-i2S под pfSense с 1G Ubiquiti UF-MM-1G в ix1, постоянно в состоянии no carrier.
ifconfig -v ix1показывал в качестве среды только autoselect и 10Gbase-SR, аifconfig ix1 media 1000baseTXвозвращал ошибку device-not-configured, что выглядит в точности как отказ драйвера запускать 1G на 10G-порту. Я перенёс карту в live-образ Ubuntu: линка не было и там, ни с DAC, ни с модулем. Потом поставил второй, идентичный модуль Unifi, и он залинковался мгновенно - и под Ubuntu, и под pfSense. Первый экземпляр был просто мёртв.Запасной экземпляр модуля и второй хост стоят двадцать минут и отсекают половину теорий. В вашем случае сообщение про unqualified module довольно чётко называет виновника, так что у вас, вероятно, всё в порядке, но это дешёвая страховка перед тем, как тратить деньги на программатор.
Результат, в том порядке, в котором всё происходило.
Сначала прошивка, с 6.1 на 9.40. Модули сразу начали показывать RX и TX power, но BiDi от провайдера всё равно отказывался линковаться, и строка про unqualified module всё ещё была в логе - то есть обновление прошивки даёт только видимость и больше ничего.
Потом пара FS SFP-GE-BX, перекодированных данными вендора Intel. Оба конца поднялись на autoselect, без принудительного выбора среды, без
hw.ixl.unsupported_sfp, в loader.conf ничего не осталось. Я откатил sysctl, которые выставлял в процессе метаний, и линк всё равно держался.Модуль от провайдера отправился в ящик как запасной, поскольку перепрошивать его мне всё равно нельзя, а коммутатор перед файрволом убран.