The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"freebsd маршрутизация без NAT"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"freebsd маршрутизация без NAT"  +/
Сообщение от KomaLexemail (??), 28-Дек-24, 14:49 
Подскажите в чем может быть проблема, никак не могу понять в чем затык.
Общая схема:
1. Есть в локальной сети сервер FreeBSD у него один интерфейс: 192.168.11.17/24 шлюз 192.168.11.254, так же на нем поднят openvpn клиент до впн сервера в интернете. Адрес на интерфейсе vpn tun0 10.23.23.5, адрес на серверной стороне туннеля 10.23.23.1
Так же на нем включен форвардинг в rc.conf

gateway_enable="YES"

ifconfig

em0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=48525bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,LRO,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,HWSTATS,MEXTPG>
        ether 6a:c8:76:e2:46:98
        inet 192.168.11.17 netmask 0xffffff00 broadcast 192.168.11.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        groups: lo
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
tun0: flags=1008043<UP,BROADCAST,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 10.23.23.5 netmask 0xffffff00 broadcast 10.23.23.255
        groups: tun
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        Opened by PID 756

Для проверки адрес 8.8.8.8 завернул в туннель
netstat -nr

default            192.168.11.254     UGS             em0
8.8.8.8            10.23.23.1         UGHS           tun0
10.23.23.0/24      link#3             U              tun0
10.23.23.5         link#2             UHS             lo0
127.0.0.1          link#2             UH              lo0
192.168.11.0/24    link#1             U               em0
192.168.11.17      link#2             UHS             lo0


2. Есть сервер в интернете ubuntu 22.04, на нем openvpn сервер, принимающий подключения. Задача приходящий трафик из туннеля отправлять в интернет через nat на внешний интерфейс
На этом сервере стоит iptables, все что можно уже открыл на нем:

iptables -S


-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i ens3 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ens3 -m conntrack --ctstate INVALID -j DROP
-A INPUT -i ens3 -p tcp -m tcp --dport 1194 -j ACCEPT
-A INPUT -i ens3 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i ens3 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i ens3 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -s 192.168.11.0/24 -i tun0 -j ACCEPT
-A INPUT -i ens3 -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -i ens3 -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -i ens3 -p esp -j ACCEPT
-A INPUT -i ens3 -p ah -j ACCEPT
-A INPUT -i ens3 -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT
-A INPUT -i ens3 -j DROP
-A FORWARD -i ens3 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o ens3 -j ACCEPT
-A FORWARD -i ens3 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Собственно задача маршрутизировать на сервере 1 в локальной сети, нужный трафик в туннель (для проверки прописал маршрут до 8.8.8.8 через туннель), на сервере 2 принимать из тунеля и через нат отправлять в интернет

Если я отправляю пакеты с сервера 1 на freebsd пакеты на адрес 8.8.8.8 все замечательно работает, пакеты идут через туннель и сервер в интернете. А вот если я с другого компьютера отправляю пакеты и в качестве шлюза указываю сервер 1, то те пакеты, которые должны идти по дефолтному маршруту просто в интернет идут без проблем, а те что должны идти через туннель не идут. Причет они на сервере 1 на интерфейсе туннеля появляются:

192.168.11.22 адрес компьютера с которого отправляю пакеты

tcpdump -host 192.168.11.22 -i tun0


tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on tun0, link-type NULL (BSD loopback), snapshot length 262144 bytes
19:47:36.781754 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 158, length 40
19:47:41.467940 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 159, length 40
19:47:46.481366 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 160, length 40
19:47:51.473760 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 161, length 40

А вот на сервере 2 в интерфейсе туннеля уже ничего нет.

Мне не нужен файервол на сервере 1 и нат там не нужен, нужно просто пересылать пакеты в туннель.

Подскажите что и где не так. Вроде задача то простая, но не идут пакеты.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "freebsd маршрутизация без NAT"  +/
Сообщение от Pahanivo (ok), 28-Дек-24, 23:32 
> Подскажите что и где не так. Вроде задача то простая, но не
> идут пакеты.

Вангую в tun с сервака они летят с src тоннеля, а при маршрутизации srс локалки, и впн (запрещено в российской федерации) хз что с твоими локальными адресами делать у себя.
Вообще странно, строишь систему из двух серваках, а маршрутизацию настраиваешь только на одном.

> нужно просто пересылать пакеты в туннель

мы все прекрасно понимаем что тебе нужно

> "freebsd маршрутизация без NAT"
> -P INPUT ACCEPT

и заголовки внятные пиши, а то бегло пролистав подумал что ты обкурился ))

Ответить | Правка | Наверх | Cообщить модератору

2. "freebsd маршрутизация без NAT"  +/
Сообщение от KomaLexemail (??), 29-Дек-24, 06:10 
>[оверквотинг удален]
> маршрутизации srс локалки, и впн (запрещено в российской федерации) хз что
> с твоими локальными адресами делать у себя.
> Вообще странно, строишь систему из двух серваках, а маршрутизацию настраиваешь только на
> одном.
>> нужно просто пересылать пакеты в туннель
> мы все прекрасно понимаем что тебе нужно
>> "freebsd маршрутизация без NAT"
>> -P INPUT ACCEPT
> и заголовки внятные пиши, а то бегло пролистав подумал что ты обкурился
> ))

На втором сервере, который должен выпускать из туннеля в интернет, маршрутизация тоже настроена.


# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway.reserve 0.0.0.0         UG    0      0        0 ens3
10.22.22.100    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.22.22.101    0.0.0.0         255.255.255.255 UH    0      0        0 ppp1
10.22.22.102    0.0.0.0         255.255.255.255 UH    0      0        0 ppp2
10.22.22.103    0.0.0.0         255.255.255.255 UH    0      0        0 ppp3
10.22.22.104    0.0.0.0         255.255.255.255 UH    0      0        0 ppp4
10.23.23.0      0.0.0.0         255.255.255.0   U     0      0        0 tun0
x.y.z.0         0.0.0.0         255.255.255.0   U     0      0        0 ens3
192.168.11.0    10.23.23.5      255.255.255.0   UG    0      0        0 tun0

Пробовал на втором сервере на интерфесе тунеля вешать нат, не помогает. Хотя это вряд ли влияет. По идее при такой схеме, ну по крайней мере мне так нужно, на внешний интерфейс второго сервера должен приходить пакет с обратным адресом из подсети 192.168.11.0/24 и там уже нат меняет алрес. Но почему то не дохоит куда надо пакет.
Тунель внутри ssh, провайдер ничего не видит и не блокирует.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру