Posted: Thu Jul 25, 2013 3:35 Post subject: Надо раздать интернет на 2 сети
Добрый день.
Роутер ASUS RT-N10U, поставил на него DD-WRT v24-sp2
Есть две подсети 192.168.11.х и 192.168.12.х, надо раздать на обе подсети интернет (Интернет - динамика по DHCP на Wan порт) и настроить маршрутизацию между сетями.
IP адреса на шлюзе 192.168.11.11 и 192.168.12.12
Posted: Thu Jul 25, 2013 5:07 Post subject: Re: Надо раздать интернет на 2 сети
AlexeyZ wrote:
Добрый день.
Роутер ASUS RT-N10U, поставил на него DD-WRT v24-sp2
Есть две подсети 192.168.11.х и 192.168.12.х, надо раздать на обе подсети интернет (Интернет - динамика по DHCP на Wan порт) и настроить маршрутизацию между сетями.
IP адреса на шлюзе 192.168.11.11 и 192.168.12.12
Либо вариант 2: Две сети соединены Свитчем и приходят на роутер через один провод в любой LAN, на роутере должно быть настроено 2 IP и соответственно раздавать инет всем.
Либо вариант 2: Две сети соединены Свитчем и приходят на роутер через один провод в любой LAN, на роутере должно быть настроено 2 IP и соответственно раздавать инет всем.
Чем проще настройка, тем лучше
При наличии роутера на чипе от Ralink вариант реализации:
-LAN1-LAN2 - сет.интерфейс vlan1
-LAN3-LAn4 - сет.интерфейс vlan3 (будет создан из вырезания двух портов из switch в отдельный vlan)
-WAN порт - сет.интерфейс vlan2
По умолчанию будут прописаны правила iptables для доступа vlan1 к vlan2, и маршрутизация.
Нужно будет добавить несколько правил для доступа vlan3 к vlan2 и стат.маршрутизацию.
Если нужно чтоб сети vlan1 и vlan3 видели друг друга, так же правила iptables.
Не так и сложно, данные примеры уже есть на данном форуме, попробуйте поиск по "vlan3".
Второй вариант проще, но в dd-wrt имеем основной сет.интерфейс br0 в котором есть LAN порты все и Wi-fi. IP поэтому будет иметь br0 и все правила для NAT будут висеть на данном IP.
Вешаете на br0 alias (второй IP), но будут проблемы с NAT для данного IP, придется добавлять правила iptables для второго IP и т.д. мелкие заморочки.
Самый простой приводите все к одному сегменту сети, т.е. один диапазон IP - 192.168.11.х например.
У Asus RT-N10U чип Broadcom BCM5357, будут ли различия в конфигурации?
vasek00 wrote:
Самый простой приводите все к одному сегменту сети, т.е. один диапазон IP - 192.168.11.х например.
Так и планируем, просто не реально всех в раз перебить в другой сегмент, причем нам надо будет не выбрать один из существующих, а перевести всех в абсолютно новый сегмент.
Пока просто решаем более мелкие задачи, а именно надо убрать половину старых серваков в серверной и освободить место под стойки и новое оборудование..
Еще. Я так понимаю там используется обычный iptables, соответственно вопрос, каким именно образом поднимается NAT?
Если можно, пример команды, чтобы поднять NAT для разрешения доступа к интернет для второй подсети?
или для протокола и порта
iptables -A PREROUTING -p tcp -d [IP_выхода] --dport 22 -j DNAT --to-destination [IP_router]:22
iptables -A PREROUTING -p icmp -d [IP_выхода] -j DNAT --to-destination [IP_router]
iptables -A POSTROUTING -s 192.168.12.х/24 -o [interface_vlan_wan_port] -j SNAT --to-source [IP_wan_port]
где 192.168.12.х ip адрес роутера dd-wrt, остальные параметры interface_vlan_wan_port и IP_wan_port беруться из результата вывода команды ifconfig
Правило с маскарадингом, знаю что не совсем правильно, что я указываю подсеть класса B, но так сейчас у меня настроено на текущем шлюзе (старенький сервак Linux) и так работает...
Проблема правда в вот чем:
Внешний адрес на WAN приходит с опозданием, может секунда через 10 даже...
После получения этого адреса, настройки NAT'a вероятнее всего сбрасываются и прописываются на основе каких-то базовых правил... При этом все мои настройки загруженные в скрипте автозапуска, удаляются...
И приходится уже после того как модем загрузился и адреса получились, запускать правило с маскарадингом вручную!
Как можно прописать правила, чтобы они применялись после получения WAN адреса по DHCP ?
Для начало пусть заработает в ручном режиме, а потом можно будет и в автомате подумать, если данный вариант вас устроит или он уже работает?
Вы хотите получить на br0 три IP адреса :
- для самого dd-wrt
- 192.168.12.12 для сегмента 12
- 192.168.11.11 для сегмента 11
Далее пакет для интернета пришел от клиента на 11 сегменте на роутер и он его от своего WAN IP отправил на ружу, теперь пакет вернулся и роутер его должен отправить именно тому клиенту, а теперь пакет с 12 сегмента то же в интернет и как тут быть роутре вернуть пакет именно клиенту в 12 сегменте.
Берем пример в самой dd-wrt при подключении роутера к интернету имеем так же два IP на WAN порту, а точнее два сетевых интерфейса, один для локальной сети провайдера назовем его vlan2, другой для выхода в интернет назовем его ppp0 (имена могут отличаться, проверка по ifconfig),
br - 192.168.130.1/24
IP_inet - IP для выхода в интернет
IP_лок_пров - для локальной сети провайдера
все понятно и просто
-s --source IP_address[/mask]
-o --out-interface name
-i --in-interface name
-p --protocol protocol
--to-source прямое указание IP
на роутере для лок. сети есть еще один сетевой интерфейс и IP отличное от основного 192.168.230.1, для выхода в интернет клиентов с этого интерфейса имеем тогда :
Маскировка (MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от последней, MASQUERADE дает более сильную нагрузку на систему. Происходит это потому, что каждый раз, когда требуется выполнение этого действия - производится запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT IP адрес указывается непосредственно. Однако, благодаря такому отличию, MASQUERADE может работать в случаях с динамическим IP адресом, т.е. когда вы подключаетесь к Интернет, скажем через PPP, SLIP или DHCP.
...
Маскарадинг подразумевает получение IP адреса от заданного сетевого интерфейса, вместо прямого его указания, как это делается с помощью ключа --to-source в действии SNAT. Действие MASQUERADE имеет хорошее свойство - "забывать" соединения при остановке сетевого интерфейса. В случае же SNAT, в этой ситуации, в таблице трассировщика остаются данные о потерянных соединениях, и эти данные могут сохраняться до суток, поглощая ценную память. Эффект "забывчивости" связан с тем, что при остановке сетевого интерфейса с динамическим IP адресом, есть вероятность на следующем запуске получить другой IP адрес, но в этом случае любые соединения все равно будут потеряны, и было бы глупо хранить трассировочную информацию.
...
действие MASQUERADE может быть использовано вместо SNAT, даже если вы имеете постоянный IP адрес, однако, невзирая на положительные черты, маскарадинг не следует считать предпочтительным в этом случае, поскольку он дает большую нагрузку на систему.
Для начало пусть заработает в ручном режиме, а потом можно будет и в автомате подумать, если данный вариант вас устроит или он уже работает?
Уже работает.
Там получается даже 4 IP,
1) br0 192.168.1.1 - По умолчанию на роутере
2) br0:0 169.254.x.x - тоже настроен по умолчанию(точный IP не помню)
Я добавил
3) br0:1 192.168.11.11
4) br0:2 192.168.12.12
vasek00 wrote:
Далее пакет для интернета пришел от клиента на 11 сегменте на роутер и он его от своего WAN IP отправил наружу, теперь пакет вернулся и роутер его должен отправить именно тому клиенту, а теперь пакет с 12 сегмента то же в интернет и как тут быть роутре вернуть пакет именно клиенту в 12 сегменте.
Роутер Натирует сеть 192.168.0.0 - 192.168.255.255
Тут ему на самом деле все равно с какой подсети прийдет пакет... Он отрабатывает нормально.
vasek00 wrote:
Берем пример в самой dd-wrt при подключении роутера к интернету имеем так же два IP на WAN порту, а точнее два сетевых интерфейса, один для локальной сети провайдера назовем его vlan2, другой для выхода в интернет назовем его ppp0
Как я понимаю, тут все зависит от настройки WAN порта... Если выбрана статика или DHCP, то и интерфейс ppp0 подниматься на будет, ибо незачем. И натироваться будет интерфейс на котором висит сам WAN порт - vlan2
A если WAN настроен на любое соединение которое поднимается поверх Ethernet, то вначале будет подниматься интерфейс ppp0, и уже на него вешаться NAT.
В моем же случае, адрес получается по DHCP, ppp0 нету. Причем если в статике IP заранее известен и прописывается в интерфейс еще при загрузке, то по DHCP все сложнее... Во первых, адрес может получиться сразу, а может через пол часа после включения, а может и вообще не получится... Соответственно скрипт автозагрузки будет отрабатываться раньше, чем поднимется интерфейс vlan2 с DHCP... (Так мне кажется)
И тут задача, либо править конфиги и скрипты которые прописывают правила Iptables при подключении с DHCP, что сделать сложно, ибо нужно хорошо разбираться в самой прошивке.
Либо после поднятия и применения настроек по умолчанию, затереть их и внести свои.
vasek00 wrote:
Маскировка (MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от последней, MASQUERADE дает более сильную нагрузку на систему. Происходит это потому, что каждый раз, когда требуется выполнение этого действия - производится запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT IP адрес указывается непосредственно. Однако, благодаря такому отличию, MASQUERADE может работать в случаях с динамическим IP адресом.
Можно по идее обойтись и без MASQUARADE
но это надо использовать хитрый скрипт, для определения Внешнего IP, и потом прописывания правил SNAT.
Но куда вставлять этот скрипт в прошивке, я понятия не имею.
Еще заметил такую особенность, Видать система в прошивке настроена таким образом, что учитывает только один IP который прописан в Web Интерфейсе (192.168.1.1) - UPNP для моих подсетей не работает! Возможно что-то еще не будет работать...
Пока только тестирую
Речь шла просто о варианте использования. При работе из того примера будет присвоен сначала IP на WAN, потом будет запущен скрипт для подключения к интернету для ppp0 и только потом добавятся правила iptables, так как имеет место быть соединение ppp0, если у вас нет ppp, а есть только WAN с IP провайдера => имеет место быть просто маршрутизация.
Все зависит от того какой IP вы имеете на WAN порту белый или серый.
В любом случае вам нужно будет контролировать IP на WAN порту от не предвиденных ситуаций, тогда можно воспользоваться скриптом например Custom -> получим файл на выполнение в /tmp/custom.sh который можно запускать из крона, он то и будет все делать. Или startup в нем создание файла :