IPsec маршрутизация между 3 сетей
- 
 Здравствуйте, господа. Структура сети выглядит вот так. Сеть А (192.168.88.0/24) -> IPsec -> Сеть В шлюз (192.168.99.0/24) <- IPsec <- Сеть С (192.168.111.0/24) Есть следующая задача, из сети с адреса 88.115 получить доступ до адреса из сети 111.103 с портом 6666 IPsec в туннельном режиме. 
 Понимаю что нужно делать через NAT DST/SRC, но не работает почему-то,
 трафик в одну сторону доходит обратно приходит на шлюз (pfSense) но к 88.115 не возвращается.Сеть B (pfSense) шлюз Как можно такое реализовать? 
- 
 Здр 
 несколько вопросов
 туннели какие используются ? Классический ipsec или vti ?
 покажите настройки фазы 2 на каждом шлюзеДля понимания происходящего 
 у PFsense есть такой интерфейс , называется enc0[2.4.4-RELEASE][admin@ruxxx.org]/root: ifconfig enc0 enc0: flags=41<UP,RUNNING> metric 0 mtu 1536 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> groups: encиспользуя tcpdump и этот интерфейс можно посмотреть , что происходит [2.4.4-RELEASE][admin@ru.xxx.org]/root: tcpdump -netti enc0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enc0, link-type ENC (OpenBSD encapsulated IP), capture size 262144 bytes 1616235541.120633 (authentic,confidential): SPI 0x0266669b: 192.168.1.1.22 > 192.168.200.166.57203: Flags [P.], seq 1176455558:1176455762, ack 3697119262, win 513, options [nop,nop,TS val 2778733444 ecr 829096582], length 204 1616235541.120990 (authentic,confidential): SPI 0x0266669b: 192.168.1.1.22 > 192.168.200.166.57203: Flags [P.], seq 204:472, ack 1, win 513, options [nop,nop,TS val 2778733445 ecr 829096582], length 268 1616235541.121147 (authentic,confidential): SPI 0x0266669b: 192.168.1.1.22 > 192.168.200.166.57203: Flags [P.], seq 472:716, ack 1, win 513, options [nop,nop,TS val 2778733445 ecr 829096582], length 244 1616235541.121322 (authentic,confidential): SPI 0x0266669b: 192.168.1.1.22 > 192.168.200.166.57203: Flags [P.], seq 716:960, ack 1, win 513, options [nop,nop,TS val 2778733445 ecr 829096582], length 244
- 
 @konstanti ipsec который обычный, не VTI. От сети B (шлюза) с сетью А фаза 2 имеет следующие настройки - Remote subnet: 192.168.88.0/24, Mode: Tunnel, Local subnet: LAN (192.168.99.0/24) От сети B (шлюза) с сетью C фаза 2 имеет следующие настройки - Remote subnet: 192.168.111.0/24, Mode: Tunnel, Local subnet: LAN (192.168.99.0/24) 
- 
 @operator2024 
 для решения Вашей задачи надо
 1 или добавлять еще одну фазу 2 на каждом шлюзе
 2 или использовать NAT в точке B ( с доп фазой 2 )
- 
 @konstanti я пытаюсь сделать через NAT, но оно не работает. Вариант с фазой я сразу отбросил. Так как ради одного маршрута делать фазу не хочу. 
- 
 доп фазу 2 придется делать на шлюзе B 
 иначе никак
- 
 @konstanti Если я правильно понимаю, то нужен сначала DST-NAT, затем SRC-NAT. 
 Сейчас добавлю картинку как я делаюSRC-NAT 
  DST-NAT 
  
- 
 @konstanti не могу только понять зачем фазу 2 добавлять на шлюзе. 
- 
 неправильно понимаете вот тут это настраивается 
  NAT/BINAT раздел я бы лично , на Вашем месте , сначала отладил бы все , используя доп фазы 2 . А потом бы шел по пути упрощения 
 Проблема NAT-а в том , что связь будет односторонней
 те при верных настройках Вы сможете из А соединится с С,
 а в обратном направлении уже нет
- 
 @konstanti так и нужно только из А в С 
- 
 Классический вариант 
 шлюз А - 2 фазы 2
 A-B
 A-C
 шлюз B - 4 фазы 2
 B-A
 C-A
 B-C
 A-C
 шлюз C - 2 фазы 2
 C-B
 C-AВариант NAT 
 шлюз А - 2 фазы 2
 A-B
 A-C
 шлюз B - 4 фазы 2
 B-A
 C-A
 B-C
 A-C (NAT используем 192.168.99.0/24 )
 шлюз C - 1 фаза 2
 C-B
- 
 @konstanti то есть получается в NAT варианте на А и В придется добавлять новую фазу Я думал можно как-то попроще сделать, через обычный Port forwarding 
- 
 а как иначе ??? ipsec работает немного по-другому , чем классическая маршрутизация . Он работает на основе перехвата "интересного трафика" путем установки ловушек , указанных в настройках фазы 2 Поэтому от доп фаз 2 Вам не уйти в классическом варианте 
 как вариант смотреть в сторону машрутизируемых туннелей на основе ipsec ( GRE over IPSEC. или VTI )
- 
 @konstanti изначально я сделал то что хотел, но для этого понадобился ещё один роутер, так как почему-то pfSense не хотел обрабатывать ответный трафик. Изначально я сделал так. 
 У меня в этой сети 192.168.99.0/24 есть ещё роутер (микротик)
 С адреса 192.168.88.115 я подключался на 192.168.99.1:666, так можно ведь они знают друг о друге.На микротике просто сделал два правила DST-NAT с адреса 192.168.99.1:666 на адрес 192.168.111.103:6666 и второе правило SRC-NAT src адрес 192.168.88.115 заменил на 192.168.99.1 и при помощи маршрута отправил на 192.168.99.82, а он уже знает путь до 192.168.111.103. Так работает. Но сейчас я хочу сделать тоже самое, но уже на самом шлюзе pfSense, чтобы не юзать левый роутер для этой манипуляции и избежать путаницы в правилах, в общем просто чтобы был порядок. Пробую так сделать, но как я описал в первом сообщении темы, трафик идет от 192.168.88.115 до 192.168.111.103. от 192.168.111.103 до 192.168.99.82, а дальше нет. Хотя повторюсь, когда теже действия делаю на микротике всё ходит отлично. 
- 
 @operator2024 
 Не вижу никаких проблем в использовании дополнительных фаз 2 при таком виде подключения. Такой фокус ,который Вы описали, боюсь , не пройдёт с pf
- 
 @konstanti спустя 4 дня проб и разных комбинаций я это понял, что либо что-то с фазами 2 нужно делать, либо юзать мой рабочий вариант. К сожалению, я не нашел packet flow для pfSense. Вот для Mikrotik она есть и там понятно как цепочки работают и, где можно трафик перехватить и заюзать NAT, а тут я просто наугад это определяю по состояниям во вкладке Diagnostic - States. 
 Единственное что удалось найти это openbsd pf packet flow diagram, но там не все подробно и я не уверен, что она точная.
- 
 @konstanti буду пробовать сделать этот вариант Вариант NAT 
 шлюз А - 2 фазы 2
 A-B
 A-C
 шлюз B - 4 фазы 2
 B-A
 C-A (1)
 B-C
 A-C (NAT используем 192.168.99.0/24 ) (2)
 шлюз C - 1 фаза 2
 C-BНужно уточнение, пометил цифрами 1 и 2. 
 Там где 1, нужно добавлять вторую фазу к С с удаленной сетью А, верно?
 Там где 2, нужно добавлять вторую фазу к А с удаленной сетью, С через NAT/BINAT?
- 
 @operator2024 
 Попробуйте , для начала, настроить по-правильному .
 Без Nat. Nat нужен в этой схеме , когда нет доступа к настройкам удаленного шлюза . У Вас этот доступ есть . Смысла использования Nat я не вижу .На ваши вопросы отвечу - да . 
- 
 @konstanti сделал без NAT, фазы поднялись (established), но трафик не идет 
- 
 @konstanti на шлюзах А и С получается нужно добавить доп. интерфейс, чтобы трафик увидел маршрут через что ходить или всё должно заработать без дополнительного интерфейса. 
 Я под интерфейсом имею ввиду на А нужно добавить ip из сети 111, а на С из сети 88
