маршрутизация трафика между двумя туннелями wireguards

Я решил проблему, просто выполнив шаги, предложенные в записи ArchWiki, на которую Фокс ссылается в комментариях (Спасибо! ). В файл css пользовательского контента в моем каталоге firefox

~/.mozilla/firefox/xxxxxxxx.default/chrome/userContent.css

, я добавил следующий текст:

input:not(.urlbar-input):not(.textbox-input):not(.form control):not([type='checkbox']):not([type='radio']), textarea, select {
-moz-appearance: none !important;
background-color: white;
color: black;
}

#downloads-indicator-counter {
color: white;
}

, который после перезапуска Firefox решил проблему для меня.


Урок, который я извлек из этого, заключается в том, что в следующий раз нужно сначала проверить ArchWiki.

1
13.01.2020, 11:59
1 ответ

ОБНОВЛЕНИЕ:переписало существенные части этого ответа, который, хотя и заставил вопрос ОП работать, использовал ошибочное объяснение, которое я исправил. Ассоциация криптоключа, конечно же, независима между двумя интерфейсами WireGuard и не взаимодействует между ними. Есть взаимодействия только между несколькими одноранговыми узлами на интерфейс WireGuard, но OP использует только один одноранговый узел на интерфейс, поэтому здесь не было этой конкретной проблемы.

Криптографическая маршрутизация WireGuard представляет собой дополнительный уровень маршрутизации на основе ключа, помимо стандартной маршрутизации сетевого стека ядра. На каждом интерфейсе он связывает allowed-ipsс узлом. Он используется для маршрутизации к правильному (из нескольких )одноранговых узлов ()для выхода, а также для связывания пакета с заданным одноранговым узлом для входа и последующего принятия этого пакета. Таким образом, для правильной связи необходимо иметь правильные маршруты, и , совместимые , разрешенные -ips записи на интерфейсах WireGuard.

Это не написано, но я предполагаю, что OP также добавил в wg _term _2 маршрут к wg _client _1 LAN, как:

10.242.0.0/24 via 10.241.0.1 dev wg0 

или просто (, потому что это туннель уровня 3, поэтому шлюз не требуется):

10.242.0.0/24 dev wg0

когда wg _клиент _1 эхо-запросы 10.241.0.2 (т.е.:wg _термин _2 ),пакет:

  • маршрутизируется через интерфейс wg1
  • зашифровано к узлу на wg1 , где пункт назначения соответствует разрешенному -ips 10.0.0.0/8
  • поступает в wg _терм _1 черезUDP 192.168.123.23:49149 -> 192.168.123.21:51821
  • принято на wg1 , так как источник соответствует разрешенному -ips 10.0.0.0/8
  • маршрутизируется через интерфейс wg0
  • зашифровано к узлу на wg0 , где пункт назначения соответствует разрешенному -ips 10.241.0.2/32
  • поступает в wg _терм _2 черезUDP 192.168.123.21:51820 -> 192.168.123.22:51820
  • упал на wg0 , потому что источник не соответствует ни одному разрешенному -ips, поэтому не может быть связан с узлом.

Обратное, от wg _term _2 до wg _client _1(все еще с правильным маршрутом, но не правильным разрешено -ips)выдает здесь конкретную ошибку:

# ip route get 10.242.0.2
10.242.0.2 via 10.241.0.1 dev wg0 src 10.241.0.2 uid 0 
    cache 
# ping 10.242.0.2
PING 10.242.0.2 (10.242.0.2) 56(84) bytes of data.
From 10.241.0.2 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available
^C
--- 10.242.0.2 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

Единственная минимальная настройка, необходимая для того, чтобы это работало, — это добавить IP-адрес wg _client _1 на wg _term _2 's wg0 разрешенные ips:

# wg set wg0 peer HGF89Hcphaf+Uua214hSc/mZa/p2vmIUeT6IwrN7I3Y= \
    allowed-ips 10.241.0.1/32,10.242.0.2/32

Возможно, вместо этого можно было бы разрешить задействованные локальные сети:

# wg set wg0 peer HGF89Hcphaf+Uua214hSc/mZa/p2vmIUeT6IwrN7I3Y= \
     allowed-ips 10.241.0.0/24,10.242.0.0/24

А чтобы завершить настройку и крипто-маршрутизировать локальную сеть 10.243.0.0/24, это можно установить на wg _термин _1(также переписал прежний /32 на /24):

# wg set wg0 peer +xTyPmYo9+IPBC72MFzIWFHrQyz5N6v67rjZz3q5CR4= \
     allowed-ips 10.241.0.0/24,10.243.0.0/24

В этом конкретном случае можно было бы иметь один интерфейс WireGuard на wg _термин _1 с двумя одноранговыми узлами,но тогда следует позаботиться о том, чтобы записать минимальные разрешенные -ips записи для каждого узла :10.242.0.0/24 (вместо 10.0.0.0/8 )на одной стороне и 10.241.0.0/24,10.243.0.0/24 с другой стороны :В отличие от маршрутизации, где более узкий диапазон имеет преимущество над более широким диапазоном, криптомаршрутизация WireGuard не допускает перекрытия.

2
27.01.2020, 23:55

Теги

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