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