LINUX.ORG.RU
ФорумAdmin

Iptables маршрутизатор на несколько локальных сетей

 , , несколько сетей


0

2

К моему счастью на новой работе сдох 2008 R2 на маршрутизаторе. Установил Debian и теперь необходимо восстановить маршрутизацию с 5 сетевыми картами.

  • eth0 - статический адрес, интернет
  • eth1 - локальная сеть 10.0.0.0/24
  • eth2 - локальная сеть 10.0.1.0/24
  • eth3 - локальная сеть 10.0.2.0/24
  • eth4 - статический адрес, WAN

Но, так как у меня нет знаний по iptables, я сделал только следующий copy paste из гугла.

iptables -A FORWARD -o eth0 -i eth1 -s 10.0.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
Настроил DNS и DHCP. В итоге интернет пока есть только у сети 10.0.0.0/24 на eth1. Хочу дать доступ к интернету сетям 10.0.1.0/24 на eth2 и 10.0.2.0/24 на eth3. И что для этого сделать? Повторить первую команду, но только с соответствующими адаптерами и сетями? Или не прокатит? Еще надо разрешить локальным сетям общаться между собою, но сетям 10.0.1.0/24 на eth2 и 10.0.2.0/24 на eth3 запретить доступ на 10.0.0.0/24, кроме адреса 10.0.0.10.

И на последок с WANа (eth4) должна идти SIP телефония на адрес 10.0.0.хх (телефон).


WAN - не интернет ? Обычно так порт для подключения к внешней сети называют.

Но, так как у меня нет знаний по iptables, я сделал

Это плохо, лучше почитать и понять, надо ли оно. Чтобы заработало в первом приближении, достаточно сделать так:

iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

И всё заработает. Ну а дальше делать ограничения. Подумать, не стоит ли поменять MASQUERADE на SNAT и т.п.

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

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

tintix
() автор топика

ты несколько нетуда

чтобы просто заработала - ты уже сделал - это прописал ip на карты дальше надо включить форвардинг echo 1 > /proc/sys/net/ipv4/ip_forward (чтоб включалась при загрузке системы net.ipv4.ip_forward=1 добавить в /etc/sysctl.conf)

и чтобы пакеты потвергались маскараду при выходе в инет - правило iptables -t nat -A POSTROUTING -o eth4 -j MASQUERADE

и все все внутри сети будет ходить без вопросов sip тоже

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

Интернет идет через eth0 - это сделано и работает. Через eth4 - идет VLAN, в нем находится PBX для SIP (адрес ххх.ххх.ххх.ххх). Так-же этот адрес доступен через интернет, но SIP траффик пропускается только через VLAN. Дело в том, что мне на рутере надо перекидывать весь трафик идущий на адрес ххх.ххх.ххх.ххх на eth4, а не на eth0. Как это сделать?

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

твоих то адресов сколько ? адрес для сипа и адрес на eth0 - одни и теже или разные ?

если для sipа выделена провайдером мелкая сетка (30) и которая роутиться на втой ip внешний - то все заработает автоматом - ваще изменять не надо ничего

а если адрес у вас один - то сип будет ходить через маскарад - сип у вас как ? авторизуеться у сип-провайдера или провайдер просто знает его по ip ?
и включено ли у провайдера - потдержка ната для вашего сипа ?

1) если сип авторизуеться на правайдере и у провайдера включено потдержка ната - то все заработает автоматом
2) если провайдер знает ваш сип только по ip то надо настроить проброс портов с внешнего ip на внутренний
iptables -t nat -I PREROUTING -i eth0 -p udp --dport 5060 -j DNAT --to 10.0.0.xx (адрес сипа)
3) если же провайдер ктомуже и невключил потдержку ната - то надо подгрузить модуль
modprobe nf_conntrack_tftp.ko

4) ну или же - если не получиться то можно настроить stateless нат от ip провайдера сипа до вашего сипа - чтоб менялись только ip а не порты

ae1234 ★★
()
Ответ на: комментарий от tintix

если ничего неполучиться - то можно воткнуть астериск :)

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

Как у eth0, так у eth4 разные адреса. Интернет и VLAN идет через того самого провайдера. SIP провайдер - это наш главный офис, с которым мы соединены через VLAN. SIP PBX там на основе 3CX. Адрес PBX что через интернет, что через VLAN одинаковый. PBX принимает и отсылает пакеты только через VLAN. Сейчас пакеты тупо идут в PBX через интернет и SIP не работает. Надо, чтобы эти пакеты, идущие на дрес PBX, шли через eth4

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

нууу - если тебе надо один адрес сроутить на eth4 то так и пиши

ip route add XXX.XXX.XXX.XXX via ip_адресс_гатевей_на_eth4

задача неочень хорошо описана
постучи icq:79296695

ae1234 ★★
()
Ответ на: комментарий от tintix

дожили

без четкого понимания чего там у тебя на eth4 - и через какое место у вас сип работает - и подсказать то нечего

ну ладно - предположим
значит у тебя в eth1 локальный сип
а на eth4 какойто wan - насколько я понимаю - на этот интерфейс приходит vlan с другого офиса -где стоит sip сервер
и адресс sip сервера доступен и через инет и через этот vlan - насколько я понимаю

и надо как то заставить пакеты с локального сипа уходить в eth4 - в vlan что в нем - а не в инет ?
а какие адреса у тебя на этой стороне в eth4 и в влане что в нем ?
если у тебя в этом влане есть сеть реальных адрессов - в которую входит и сип сервер - то все просто
присваиваеш своему серверу ip из этой сети и делаеш
iptables -t nat -I POSTROUTING -o eth4.1000 -j MASQUERADE
где 1000 это номер влана

ты влан то поднял на eth4 ?

коли нет icq - gjcnexbnm xthtp майлру - aeforeve (8) mail.ru

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

Перед уходом домой успел пообщаться с админами главного офиса. Выяснилось, что меня до этого дезинформировали и в итоге я немного ошибся. Адреса PBX в интернете и VLAN разные. 86.254.208.122 - это адрес PBX в интернете. 86.254.209.57 - это адрес того-же PBX в VLAN. Адрес eth4 на VLAN - 86.254.209.2 на сетке 86.254.209.2/255.255.255.128. PBX в VLAN пингуется. Как оказывается, доступ к PBX в интернете - запасной вариант (он пока отключен). Сколько помню, SIP телефон запаролен, но он обращается на 86.254.208.122 (PBX Internet). В софтфоне, который работал до аварии - тот же адрес (PBX Internet), но он ругается, что нет связи с сервером. По ходу в умершем гейтвее была настроена хитрая маршрутизация, которая переносила весь трафик, идущий на 86.254.208.122 (PBX Internet) на 86.254.209.57 (PBX VLAN). Сейчас дома погуглил - в iptables это делать так?

iptables -t nat -A PREROUTING -s 86.254.208.122 -j DNAT --to-destination 86.254.209.57
-j MASQUERADE надо добавлять?

tintix
() автор топика
Ответ на: комментарий от ae1234

В общем все оказалось намного проще, чем подразумевалось. Теперь SIP работает. Сегодня выяснил, что на второй стороне сетки 86.254.209.0 через VLAN есть гейт, который и перекидывает пакты к PBX на сеть 86.254.208.0 При инициализации выполняется следующий скрипт:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #Включаем интернет
route add -net 86.254.208.0 netmask 255.255.255.0 gw 86.254.209.1 #Маршрутизируем запросы на сетку 86.254.208.0 через гейт 86.254.209.1 на eth4

Теперь осталось сделать фильтрацию на eth0, чтобы блокировать всякое ггно с интернета и запретить доступ с сеток 10.0.2.0, 10.0.3.0, 10.0.4.0 на сетку 10.0.0.0 кроме адреса 10.0.0.10

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

гатевеи они такие - они не могут не быть

адреса то у тебя серые - такчто ггна неособо то и нет посуществу
главное - никогда не забывай прикрывать sip - хоть он у тебя и на серых адресах

ae1234 ★★
()
Ответ на: комментарий от tintix

и кстати - в дебиане правильный способ прописывать роутинги
через post-up и post-down в /etc/network/interfaces
примерно так

iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.x
network xxx.xxx.x.x
broadcast xxx.xxx.x.x
post-up ip addr add xx.xx.xx.x/24 dev eth0
post-up ip addr add xx.xxx.xxx.xxx dev eth0
post-up ip addr add xxx.xxx.x.x/24 dev eth0
post-up ip rule add from all table bgp pref 32766
post-down ip addr del xx.xxx.x.x/24 dev eth0
post-down ip rule add from all table bgp pref 32766

тогда ifdown eth0 - правильно выключает все что с ним связано
и ifup eth0 - правильно все включает

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