Повышение отказоустойчивости - сетевые карты с режимом bypass

Почему Вы рекомендуете покупать карты SILICOM?
Причины следующие:

Работает ли байпасс в сетевых картах SILICOM при отключении питания?

Есть ли ручное управление байпасс в сетевых картах SILICOM?
DPI управляет bypass самостоятельно.
В случае необходимости ручное управление bypass возможно с помощью утилиты bpctl_util:

Проблема: приобрели использованную карту и не работает bypass, что делать?
Проблема связана с картой перенастроенной в качестве стандартной, то есть с отключенной байпасс функциональностью.
Диагностика:

bpctl_util all get_std_nic
07:00.0 standard
07:00.1 slave
07:00.2 standard
07:00.3 slave

Должно быть non-standard.

Для установки карты в режим bypass требуется выполнить следующее:

bpctl_util all set_std_nic off

Команда переключает режим в не стандартный, то есть с bypass режимом.

Пояснение относительно времени переключения bypass?
Включение bypass длится короткий временной интервал около 0.5 с (по умолчанию), но по причинам передоговаривания интерфейсов в итоге может занять больший временной интервал, ниже пояснение относительно переключения bypass от производителя.
Такая длительность переключения может влиять на BGP, OSPF и другие механизмы, за счет кратковременного разрыва связи (продолжительность может варьироваться см. описание ниже) или нескольких разрывов связи как в случае перезагрузки сервера или сервиса ( сервис →разрыв→bypass→разрыв→ сервис), в этом случае время восстановления сессий (BGP, OSPF) зависит от их настроек и может длиться до нескольких десятков секунд. Для уменьшения данного интервала необходимо провести самостоятельно конфигурирование для уменьшения времени восстановления сессий после разрыва связи. Например, на оборудовании Juniper настраивается hold-timer down 500ms, что позволяет избежать разрыва BGP сессии и перестройки таблиц маршрутизации:

set interfaces <ifname> hold-time up 500 down 500

где 500 мс таймаут ожидания, прежде чем изменится operational status интерфейса

Basically, the time for the bypass mechanism to switch from one mode to another is 10mS.
The timing that you are seeing relates to re-establish the link and then re-establish 
the connection (with new routing tables in switches and devices).
This switch to bypass mode is done in our product by physically connecting the pair of 
the ports together (wire to wire). This means that when this happen our product is actually out 
of the picture and the start of the traffic with this new connection will depend on 
the two networking devices (router / switch / device) on how they link together and how 
they establish the connection again. You can try to  force fix mode (not auto-neg, 
change to force 1G FD or so) this might reduce the time needed for the negotiation. 
Not sure how much.
For the change from bypass mode to normal mode - all the above also stand as well. 
The networking devices (router / switch / device) loss the link with each other and 
starts establish the connection with the Silicom NIC . Here you have more control as 
the link is done between the two devices and your system (Check that all the devices 
are set to the same speed settings)
From our customer and our experience a 1-3sec is a reasonable time to get the Copper 1G link
to be establish between 2 network devices.

все хорошо кроме того, что один порт на сетевой работает в режиме байпасc и не фильтрует трафик.
Если в конфиге прописано (in/out_dev), но не переключает, то попробуйте сброс bypass свитча в карте в начальное состояние:

bpctl_util all set_bypass off
bpctl_util all set_dis_bypass off
bpctl_util all set_bypass_pwoff on
bpctl_util all set_bypass_pwup on
bpctl_util all set_std_nic off
bpctl_util all get_bypass_change on
bpctl_util all get_tx on
bpctl_util all get_tpl off
bpctl_util all get_wait_at_pwup off
bpctl_util all get_hw_reset off
bpctl_util all get_disc off
bpctl_util all get_disc_change off
bpctl_util all get_dis_disc off
bpctl_util all get_disc_pwup off
bpctl_util all get_wd_exp_mode bypass
bpctl_util all get_wd_autoreset disable

Если не помогает, значит дефект карты, меняйте ее по гарантии.

Настройка Juniper, чтобы перевод в bypass и обратно не приводил к перестроению маршрутов.

set interfaces <ifname> hold-time up 500 down 500
 
show xe-5/2/0    
 description "-= 20G UPLINK LAGG =-";
hold-time up 1000 down 1000;
gigether-options {
 802.3ad ae1;
}

Настройка Cisco, чтобы перевод в bypass и обратно не приводил к перестроению маршрутов.

int fa0/0
ip bgp fast-external-fallover deny   

Примечание:

BGP Fast-external-fallover command terminates external BGP sessions of any directly adjacent peer if the link used to reach the peer goes down; without waiting for the hold-down timer to expire

Cписок всех dna интерфейсов и их MAC
grep ^ /sys/class/net/dna?/address

Как проверить, оснащена ли карта bypass
Проверить наличие bypass можно выполнив команду

lspci -v|grep -A1 Eth

для карт с bypass в поле Subsystem будет указано

Subsystem: Silicom Ltd. Device