Jump to content

Recommended Posts

Posted

Есть локалка 192.168.0/24

 

Стоит сервер (Linux), на нем биллинг и все дела, к нему подключен ADSL, на сервере реальный IP на eth0, Skystar смотрит в небо, поднят OpenVPN канал на tap0, после соединения на нем адрес вида 10.255.239.XXX, клиенты цепляются к VPN PPTP серверу, им в зависимости от тарифа выдается адрес либо 192.168.2/24 либо из 192.168.3/24

 

Необходимо сделать так чтобы из 2/24 ходило все через спутник, а из 3/24 через ADSL.

 

this=192.168.0.251           # IP Сервера в локалке

inet=10.255.239.SSS         # IP Сервера по спутнику (tap0)

adsl=217.107.132.XXX       # IP маршрутизатора ( ADSL-модем ) eth0

ext=217.107.132.YYY         # Внешний IP серевера



iface_cli=eth1        # Локалка

iface_inet=tap0      # Спутник

iface_adsl=eth0     # ADSL

 

делаю так:

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 3128 -j REJECT

iptables -t nat -A PREROUTING -p tcp -s 192.168.2.0/24 -d ! 192.168.0.0/24 --dport 80 -j REDIRECT --to-ports  3128

iptables -t nat -A POSTROUTING  -s 192.168.2.0/24 -d ! 192.168.0.0/24 -j MASQUERADE

 

С этим вопросов нет, все работает на ура, что нужно переправляется на локальный проксик, остальное летит на спутиник ( т.к. deafult gw автоматом ставится ипишник tap0 )

 

Со второй подсетью проблема - как заставить ее ходить через землю ?

 

iptables -t nat -A POSTROUTING  -s 192.168.3.0/24 -d ! 192.168.0.0/24  -o $iface_adsl -j MASQUERADE

 

не работает, думаю маршрут не тот ? Добавляем

ip route add ADSL_IP/29 dev eth0 src EXT_IP table T1

ip route add default via ADSL_IP table T1

ip rule add from EXT_IP  table T1

 

т.е. попросту все что идет в T1 заворачиваем на адсл

ip rule add from 192.168.3.0/24 table T1

 

На eth0 tcpdump показывает наличие пакетов от сервера в инет и обратно, на интерфейсе пользователя (192.168.3.1 например ) видно что пакеты идут туда-сюда, происходит какая-то возня и коннект умирет, trcert с машины показывает что все идет через ADSL вроде как, пинг идет.

 

Не могу понять, что не нравится... может быть NAT не знает куда разворачивать пришедшие пакеты на 2.0 или на 3.0? Так вроде же таблица это помнит. Может с каким-нить MTU/MRU/RWIN что-то не так ?

Posted

Хм. А если прописать через SNAT?

У меня на внеше 4 каналд и 3 подсети хотят через разные каналы...

Вроде бы проблем нет. Если что могу завтра на раблоте глянуть таблицы

Posted

А подробнее можно, как оно работает ? )

У меня вроде в нате смотрится источник:

-s 192.168.3.0/24

Posted
Неужели никто с таким не сталкивался ?

 

iptables -A POSTROUTING -t nat -s 192.168.2.0/24 -j SNAT --to-source 10.255.239.SSS

iptables -A POSTROUTING -t nat -s 192.168.3.0/24 -j SNAT --to-source 217.107.132.XXX

Posted

TSM

Ну минимум не хватет

ip route flush table cache

 

после выполнения

 

ip rule add from EXT_IP table T1

ip rule add from 192.168.3.0/24 table T1

 

ну и опять же - представь в студию результаты вывода комманд:

ip r l t main

ip r l t local

ip r l t t1

ip ru li

ip r g 193.193.193.3 from 192.168.2.XX iif pppXX - 192.168.2.XX и pppXX поставиш тот который сейчас активен.

ip r g 193.193.193.3 from 192.168.3.XX iif pppXX - 192.168.2.XX и pppXX поставиш тот который сейчас активен.

iptables-save

 

затем выполни

 

tcpdump -i eth0 -n net 192.168.0.0/16

 

И сесли ты что нибудь там увидиш, то с натом у тебя плохо...

Posted

Я бы посоветовал метить нужные пакеты MARKом, потом меченные в нужную таблицу заворачивать, сразу завелось у мя именно так. Т.к. у мя unlim по PPPOE, а трафик IP на интерфейсе весит, пробыл в ip rule запихнуть подсеть, но не заработало, как метить стал и по метке заворачивать сразу всё пошло, попробуй метить одним словом.

Posted

Сбрасывал, Linux Advanced Routing Howto хорошо читал и много раз... Хотя фиг знает (я уверен, что у мя просто что-то не получилось), поэтому и предположил, что у человека может быть что-то похожее... Хоть может это и не правильно, но вообще предпочитаю классифицировать трафик файрволом, а потом по меткам и приоритеты выставялть и в таблицы загонять, о5 таки изменять в конечном счёте проще потом :)

Posted

v-m-k

Ну уж поверь, в данному случаю маркировка абсолютно не причем...

Пока клиент не выдаст на гора результаты вывода тех комманд что я перечислил, ничего понять нельзя будет.

Слишком сумбурно изложены условия.

 

Вот здается мне что правило ip rule add from EXT_IP table T1 в данном случае лишнее. Но опять же не берусь судить пока не увижу полной картины.

Posted

[root@t-lan scripts]# ip r l t main

80.254.111.254 via 217.107.132.233 dev eth0

192.168.2.8 dev ppp0  proto kernel  scope link  src 192.168.2.1

82.211.136.2 via 217.107.132.233 dev eth0

192.168.2.99 dev ppp1  proto kernel  scope link  src 192.168.2.1

80.81.208.66 via 217.107.132.233 dev eth0

192.168.2.7 dev ppp5  proto kernel  scope link  src 192.168.2.1

62.181.47.197 via 217.107.132.233 dev eth0

217.107.132.232/29 via 217.107.132.234 dev eth0  scope link

217.107.132.232/29 dev eth0  scope link

192.168.0.0/24 via 192.168.0.251 dev eth1  scope link

192.168.0.0/24 dev eth1  scope link

192.168.0.0/24 dev dvb0_0  proto kernel  scope link  src 192.168.0.231

10.255.239.0/24 dev tap0  proto kernel  scope link  src 10.255.239.158

127.0.0.0/8 dev lo  scope link

default via 10.255.239.1 dev tap0

==============================================

[root@t-lan scripts]# ip r l t local

broadcast 217.107.132.232 dev eth0  proto kernel  scope link  src 217.107.132.234

broadcast 192.168.0.255 dev eth1  proto kernel  scope link  src 192.168.0.251

broadcast 192.168.0.255 dev dvb0_0  proto kernel  scope link  src 192.168.0.231

broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1

local 217.107.132.234 dev eth0  proto kernel  scope host  src 217.107.132.234

local 192.168.0.251 dev eth1  proto kernel  scope host  src 192.168.0.251

broadcast 10.255.239.0 dev tap0  proto kernel  scope link  src 10.255.239.158

broadcast 217.107.132.239 dev eth0  proto kernel  scope link  src 217.107.132.234

local 192.168.2.1 dev ppp5  proto kernel  scope host  src 192.168.2.1

local 192.168.2.1 dev ppp0  proto kernel  scope host  src 192.168.2.1

local 192.168.2.1 dev ppp1  proto kernel  scope host  src 192.168.2.1

local 192.168.0.231 dev dvb0_0  proto kernel  scope host  src 192.168.0.231

broadcast 192.168.0.0 dev eth1  proto kernel  scope link  src 192.168.0.251

broadcast 192.168.0.0 dev dvb0_0  proto kernel  scope link  src 192.168.0.231

local 10.255.239.158 dev tap0  proto kernel  scope host  src 10.255.239.158

broadcast 10.255.239.255 dev tap0  proto kernel  scope link  src 10.255.239.158

broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1

local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1

local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1

==========================================

[root@t-lan scripts]# ip r l t T1

217.107.132.232/29 dev eth0  scope link  src 217.107.132.234

default via 217.107.132.233 dev eth0

==========================================

[root@t-lan scripts]# ip ru li

0:      from all lookup local

32764:  from 192.168.3.0/24 lookup T1

32765:  from 217.107.132.234 lookup T1

32766:  from all lookup main

32767:  from all lookup 253

===========================================

[root@t-lan scripts]# iptables -t nat -nL

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination

REDIRECT   tcp  --  192.168.2.0/24      !192.168.0.0/24      tcp dpt:80 redir ports 3128



Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination

SNAT       all  --  192.168.2.0/24       0.0.0.0/0           to:10.255.239.158

SNAT       all  --  192.168.3.0/24       0.0.0.0/0           to:217.107.132.234



Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

=============================================

ppp1      Link encap:Point-to-Point Protocol

         inet addr:192.168.2.1  P-t-P:192.168.2.99  Mask:255.255.255.255

         UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1

========================================

[root@t-lan scripts]# ip r g 193.193.193.3 from 192.168.2.99 iif ppp1

193.193.193.3 from 192.168.2.99 via 10.255.239.1 dev tap0  src 192.168.2.1

   cache <src-direct>  mtu 1400 advmss 1360 iif ppp1

===========================================

[root@t-lan scripts]# ip r g 193.193.193.3 from 192.168.3.99 iif ppp1

193.193.193.3 from 192.168.3.99 via 217.107.132.233 dev eth0  src 192.168.2.1

   cache <src-direct>  mtu 1400 advmss 1360 iif ppp1

===========================================================

Самое интересное, 192.168.3.99 машина

C:>tracert ya.ru

 1     2 ms     1 ms    <1 мс  192.168.2.1

 2     1 ms    <1 мс    <1 мс  router.t-lan.ru [217.107.132.233]

и пошло дальше

C:>ping ya.ru

Ответ от 213.180.204.8: число байт=32 время=56мс TTL=56

Ответ от 213.180.204.8: число байт=32 время=55мс TTL=56

Вот это меня ставит в тупик .. пинги есть, а ничего не работает ....

============================================================

После tcpdump тишина в течении 5 минут, дольше ждать не стал, пакеты локальные туда не летят...

 

А с маршрутизацией действительно беда какая-то ... Не сильно шарю я в ней, учусь :)

 

Спасибо за помощь!

Posted

невозможно штатно сделать сначала нат локальных соединений (от прокси на этом сервере) потом на основании уже измененного адреса источника отроутить

 

приглядись к картинке

http://www.opennet.ru/docs/RUS/iptables/mi...es_traverse.jpg

 

выход - добавить после ната -j ROUTE (нужен патч) или вынести проксю

 

и юзай лучше SNAT, IP если что скриптом выцепишь... можно его через ppp-up.local (или как там его) поднимать

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.