Мне нужна небольшая помощь / объяснение, почему следующая netsetup не работает:
PC1 (192.168.66.1) <-- PLAIN --> (192.168.66.2)PC-GW(192.168.88.2) <-- ESP --> (192.168.88.1) PC2
Я могу отправлять пакеты с ПК1 192.168.66.1 на ПК2 192.168.88.1 и ПК-GW инкапсулирует esp, а ПК2 получает пакеты esp, он работает нормально.
Но если я отправляю пакеты esp с ПК2 192.168.88.1 на ПК1 192.168.66.1, ПК-GW пересылает пакеты esp без декапсуляции / дешифрования, и ПК1 получает пакет esp.
Если обе системы используют ESP, он работает нормально:
PC1 (192.168.66.1) <-- ESP--> (192.168.88.1) PC2
Я пробовал несколько различных конфигураций, вот команды, которые я использую:
ip xfrm state add src 192.168.66.1/32 dst 192.168.88.1/32 proto esp spi 0x01000000 reqid 0x01000000 mode transport aead 'rfc4106(gcm(aes))' 0x000000000000000000000000000000000000000000000000000000000000000000000000 128 sel src 192.168.66.1/32 dst 192.168.88.1/32
ip xfrm state add src 192.168.88.1/32 dst 192.168.66.1/32 proto esp spi 0x01000000 reqid 0x02000000 mode transport aead 'rfc4106(gcm(aes))' 0x000000000000000000000000000000000000000000000000000000000000000000000000 128 sel src 192.168.88.1/32 dst 192.168.66.1/32
ip xfrm policy add src 192.168.66.1/32 dst 192.168.88.1/32 dir out tmpl src 192.168.66.1/32 dst 192.168.88.1/32 proto esp reqid 0x01000000 mode transport
ip xfrm policy add src 192.168.88.1/32 dst 192.168.66.1/32 dir in tmpl src 192.168.88.1/32 dst 192.168.66.1/32 proto esp reqid 0x02000000 mode transport
С помощью tcpdump я захватил все интерфейсы.
Я не использую openswap, эта тестовая установка не подходит для реального использования. Это просто для того, чтобы попробовать, и я хочу узнать, как это работает.
Транспортный режим должен использоваться не так (т.е. с перенаправленным трафиком и IP-адресами, которые не являются локальными для системы).Возможно, вы захотите изучить режим BEET (никогда не стандартизированный), который похож на транспортный режим, поскольку он не добавляет дополнительный IP-заголовок, но позволяет заменять исходный и целевой IP-адреса, а также Поддержка ядра Linux и некоторых демонов IKE.
Сказав это, позвольте мне объяснить, что вы видите. Ядро Linux сопоставляет перенаправленный трафик сначала с политиками fwd , но затем и с политиками out , поэтому исходящий трафик обрабатывается исходящим IPsec SA. Однако поиск IPsec SA для входящего трафика отсутствует, поскольку IP-адрес назначения не является локальным, то есть этот трафик перенаправляется сразу для лучшей производительности.