LINUX.ORG.RU
ФорумAdmin

[dd-wrt][не большой оффтоп] не работает маршрутизация на роутере

 


0

1

Доброго времени всем. Извиняюсь за небольшой оффтоп, но всё же. Поставил тут намедни свежую прошивку
dd-wrt и сразу возникла проблема с NATом и маршрутизацией. Со старой версией прошивки проблем не было.

Имеется роутер d-link dir825 внутренний адрес 192.168.1.1/24, подсеть «1» 192.168.1.0/24, белый
адрес x.x.x.x, так же имеется отдельная внутренняя подсеть «2» 192.168.2.0/24 (в ней сидят вируталки).

Когда я пытаюсь подключить к любому ресурсу подсети «1» (к примеру вебсервер), то локальный адрес
клиента (к примеру 192.168.1.2) менятся на x.x.x.x (видно через netstat), то же происходит, если подключаться к ресурсам подсети «2» из подсети «1».
Удалось выяснить, что всю малину портит iptables на роутере.

Покопавшись в iptables, удалось решить проблему так
iptables -t nat -I POSTROUTING -d ! 192.168.0.0/16 -j SNAT --to-source x.x.x.x

т.е. NAT будет работать только для адресов назначения не в подсети 192.168.0.0/16.

Но это как то не красиво, да и на старой прошивке всё работало.

Собственно в чём может быть проблема, ведь POSTROUTING должен отрабатывать после маршрутизации, а
получается до?

Маршрутизация на роутере
# route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 x.x.x.x 0.0.0.0 UG 0 0 0 ppp0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
192.168.2.0 192.168.1.2 255.255.255.0 UG 0 0 0 br0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0

Интерфейс на роутере
# ifconfig
br0 Link encap:Ethernet HWaddr 00:18:E7:EC:AE:D3
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:291559020 errors:0 dropped:207 overruns:0 frame:0
TX packets:175122285 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:403879585944 (376.1 GiB) TX bytes:29553370251 (27.5 GiB)

Сеть примерно такая:
192.168.1.0/24<-----[|192.168.1.1|]<-------> [|192.168.1.2||192.168.2.1|]----->192.168.2.0/24


Заранее спасибо.

★★★★★

Последнее исправление: cyclon (всего исправлений: 3)

Может, я не в курсе чего-то из специфики, но вообще можно выбрать, для какого интерфейса делать нат.

Это тычок пальцем в небо, так что нужны подробности:

- адрес х.х.х.х на схеме топологии

- конфиг iptables на роутере

- роутер и девайс, который соединяет сетки 1 и 2 совмещены, или это разные устройства?

и используйте тег [code], с ним лучше

pianolender ★★★
()

Ты сам хоть понял что написал и что нарисовал?

anonymous
()
Ответ на: комментарий от pianolender

1. Как то так, x.x.x.x это ppp0 на роутере, 192.168.1.1 это br0 на роутере

192.168.1.0/24<-----[|192.168.1.1|]<-------> [|192.168.1.2||192.168.2.1|]----->192.168.2.0/24
internet<-------------[|x.x.x.x|]

2. Он большой, http://pastebin.com/6A2ViiWc 3. Девайс соединяющий сетки 1 и 2 это отдельно стоящий сервер (в нём и крутиться эта подсеть для виртуалок).

cyclon ★★★★★
() автор топика
Ответ на: комментарий от pianolender

ppp0 это подключенное pppoe провайдера, удалённо подключаюсь через open-vpn

cyclon ★★★★★
() автор топика
Ответ на: комментарий от pianolender

Может, я не в курсе чего-то из специфики, но вообще можно выбрать, для какого интерфейса делать нат.

Поддерживаю. Разве классический вариант
iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
не работает?
selim
()
Ответ на: комментарий от selim

Что то совсем забыл про -o, вроде работает, спасибо. Непонятно, только как это в прошивке поломать умудрились.

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.