Debian :Аппаратные ограничения для третьего монитора

Вот цели и средства ретранслятора (, т.е. relay1, relay2или relay3), для правильной обработки трафика, поступающего как через default-gateway(10.0.0.1), так и через HAProxymaster-relay(10.0.0.254)в прозрачном режиме, действуя как шлюз:

  1. Ретранслятор должен использовать обычный шлюз default-gatewayдля нормального трафика, то есть:

    • локально инициированный трафик,
    • исходящие ответы на удаленно инициированный трафик, который уже прошел через default-gateway.
  2. Ретранслятор должен использовать альтернативный шлюз master-relayдля прозрачно ретранслируемого трафика HAProxy, то есть только для:

    • исходящие ответы на удаленно инициированный трафик, который уже прошел через master-relay, действующий в качестве альтернативного шлюза.
  3. Селектор для различения случая маршрутизации 1. от случая 2. является MAC-адресом источника альтернативного шлюза master-relay. Скажем 02:03:04:05:06:07.

  4. Выбор, однажды сделанный в первом пакете соединения, должен оставаться тем же самым для всех других пакетов, входящих в это соединение.

Для этого требуется маршрутизация на основе политик с альтернативной таблицей маршрутизации (ip route add table..., дополнительное решение о маршрутизации (ip rule add fwmark...), основанное на iptablesиспользовании модуля соответствияmacдля селектора MAC-адресов, цельMARKдля изменения решение о маршрутизации и цельCONNMARKзапомнить решение для всего соединения.

Случай 1. является случаем по умолчанию без специальной обработки, а случай 2. является исключением, вам следует отменить изменение маршрутизации, чтобы использовать default-gatewayв качестве шлюза по умолчанию, как обычно:

ip route replace default via 10.0.0.1

Случай 2. будет сохранен в альтернативной таблице маршрутизации. Не надо его называть, любой номер подойдет, давайте выберем1000254(254был зарезервирован, это главная таблица...):

ip route add table 1000254 default via 10.0.0.254

Решение о маршрутизации будет инициировано значением метки (, поступающим от iptablesцели MARK). Давайте выберем254:

ip rule add fwmark 254 lookup 1000254

Как видно из Поток пакетов в Netfilter и общей сети ,правило iptablesв mangle/PREROUTINGили mangle/OUTPUTможет установить метку перед выполнением решения о маршрутизации (или проверки перемаршрута ). Вот так в итоге iptablesизменит маршрут. Таким образом, для одного входящего пакета это будет:

iptables -t mangle -A PREROUTING -m mac --mac-source 02:03:04:05:06:07 -j MARK --set-mark 254

Теперь, чтобы запомнить его для всего соединения, его следует обернуть вызовами CONNMARK, которые сохраняют и извлекают метку в записи conntrack для этого потока и позволяют установить ее только в первый раз, не забывая направление OUTPUT. Некоторые пояснения есть в этом блоге:Для Linux и не только! Сетевой фильтр Connmark . Нет необходимости помечать пакеты для трафика локальной сети, поэтому отфильтруйте их (, и это может помочь при использовании conntrack -L, см. в конце ). В итоге, включая предыдущее правило, получается:

iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j RETURN
iptables -t mangle -A PREROUTING ! -s 10.0.0.0/24 -m mac --mac-source 02:03:04:05:06:07 -j MARK --set-mark 254
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark

Вот именно. В этом случае даже не требуется переводrp_filterв свободный режим, поскольку задействован только один сетевой интерфейс.

Обратите внимание, что вы можете легко вставить больше таблиц, правил и меток, чтобы иметь более одной master-relay, если вам нужна избыточность (или просто добавить дополнительный MAC-адрес к master-relay, если его IP-адрес может изменить свой MAC-адрес. адрес по любой причине ). Пример дополнительного HAProxy с IP 10.0.0.250и MAC0A:09:08:07:06:05:

ip route add table 1000250 default via 10.0.0.250
ip rule add fwmark 250 lookup 1000250
iptables -t mangle -I PREROUTING 4 ! -s 10.0.0.0/24 -m mac --mac-source 0A:09:08:07:06:05 -j MARK --set-mark 250

conntrack -Lбудет отображать метку соединения и, таким образом, может использоваться для определения того, произошло ли соединение через master-relayвместо значения по умолчанию, потому что его метка будет 254вместо 0:

.

# conntrack -L -s 198.51.100.1
tcp      6 431635 ESTABLISHED src=198.51.100.1 dst=10.0.0.10 sport=50230 dport=25 src=10.0.0.10 dst=198.51.100.1 sport=25 dport=50230 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 use=1
tcp      6 431527 ESTABLISHED src=198.51.100.1 dst=10.0.0.10 sport=49554 dport=25 src=10.0.0.10 dst=198.51.100.1 sport=25 dport=49554 [ASSURED] mark=254 secctx=system_u:object_r:unlabeled_t:s0 use=1
conntrack v1.4.4 (conntrack-tools): 2 flow entries have been shown.

0
28.05.2021, 23:34
1 ответ

Кажется, что все iGPU Intel 2-го поколения имеют только 2 пиксельных конвейера , что означает, что они могут одновременно создавать контент только для двух отдельных дисплеев, если я правильно понял.

Можно использовать один конвейер для предоставления одного и того же содержимого дисплея на два дисплея (, то есть режим клонирования ), если оба дисплея могут принимать одинаковое разрешение и частоту обновления.

Поскольку разъем VGA использует аналоговые сигналы, для него также требуется RAMDAC. Некоторые графические процессоры могут иметь, например. четыре пиксельных конвейера, но только два RAMDAC, что ограничивает вас максимум двумя дисплеями с аналоговыми разъемами (VGA или DVI -A ); остальные должны быть подключены с использованием какой-либо формы цифровой сигнализации (DVI -D, HDMI или DisplayPort или внутреннего LVDS на ноутбуках ).

1
28.07.2021, 11:28

Теги

Похожие вопросы