Собственно почему встал вопрос данной программной модернизации роутера? - Сгорел WAN порт.
Что хотелось бы реализовать? - Переназначить WAN на один из имеющихся LAN ? при этом оставить функционал оставшихся LAN и получать по ним инет. Либо сделать из оставшихся еще WAN порт(порты) для второго провайдера.
На данный момент получилось только переназначить WAN на 2 (второй) LAN и получать инет по WiFi.
Получается следующее: От провайдера приходит инет на 2 LAN (VLAN1). Получает ip адрес на этот порт. Поднимается DHCP на WLANe. Инет по WiFi раздает. Но на оставшихся LANах DHCP не запускается. Тупо идет проброс напрямую. Т.е. по LAN мы в подсети провайдера. Как же все таки отрезать эту "фичу" и запустить на VLAN2 DHCP?
Без информации что находиться в br0 (сетевой интерфейс в котором wi-fi и LAN порты) до и после, подсказать что либо трудно (информация в файлах br-1 .... br-3) как посмотреть в посте было выше, через cat ...
Quote:
Инет по WiFi раздает.
Потому что br0 = ath0 + ??????? где ath0 - имя сетевого интерфейса wi-fi
Quote:
Но на оставшихся LANах DHCP не запускается.
А как он может запуститься на названых LAN портах если они LAN порты в eth1.2, а он сам по себе :
Code:
eth1.2 Link encap:Ethernet HWaddr A0:...:46
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Posted: Thu Aug 28, 2014 3:59 Post subject: Выделение порта в отдельный vlan
Доброго дня, Уважаемые форумчане!
Прошу помощи, т.к. очевидно моих знаний в данном вопросе не хватает. Прошу особо не пинать, т.к. переключаюсь с одной командной строки на другую, моск плавится, баш уже подзабыл порядком.
Итак к делу:
Имеется роутер TP-LINK TL-WDR4300 прошивка DD-WRT, схема интерфейсов в приложении.
Задача: выделить один из портов на интерфейсе eth0, к примеру № 5, в отдельный вилан с возможностью выхода в интернет. т.е. хост подключенный к порту номер 5 должен быть изолирован от всей остальной сети в том числе и беспроводной, но должен иметь доступ в интернет. (К несчастью в веб интерфейсе DD-WRT такой возможности нет, как это реализовано в open-wrt).
Для начала не стал трогать стартап скрипт, просто пробовал конфигурацию в командной строке.
Что делал:
vconfig add eth0 3
создаю виртуальный интерфейс
ifconfig eth0.1 up
активирую виртуальный интерфейс
swconfig dev eth0 vlan 1 set ports '0t 2 3 4'
изменяю состав портов первого вилана убираю оттуда 5 порт
swconfig dev eth0 vlan 3 set ports '0t 5'
назначаю 5 порт третьему вилану в связке с транковым потром
swconfig dev eth0 set enable_vlan 3
активирую виртуальный интерфейс
swconfig dev eth1 set apply 1
сохраняю параметры физического интерфейса
в итоге получаю: порт выделен в отдельный вилан, третий вилан показывается по команде ifconfig -a (просто по ифконфиг почему то не показывается), однако хост подключенный к порту не получает ip адрес, не видит шлюза и вообще никого, соответственно в интернет не выходит. Пробовал назначать адреса руками на хосте, назначать адреса через веб интерфейс на vlan 3 (появился там как интерфейс), включать там нат, опять же через веб интерфейс, результат нулевой, хост полностью изолирован и никуда не ходит.
мосты никакие настравиать не стал т.к. от вафли тоже хотел этот порт отрезать.
Помогите люди добрые )), что я делаю не так? Кто подскажет что добавить в скрипт?
Posted: Thu Aug 28, 2014 4:44 Post subject: Re: Выделение порта в отдельный vlan
bigkevin wrote:
Имеется роутер TP-LINK TL-WDR4300 прошивка DD-WRT, схема интерфейсов в приложении.
...
Что делал:
vconfig add eth0 3
создаю виртуальный интерфейс
ifconfig eth0.1 up
активирую виртуальный интерфейс
swconfig dev eth0 vlan 1 set ports '0t 2 3 4'
изменяю состав портов первого вилана убираю оттуда 5 порт
swconfig dev eth0 vlan 3 set ports '0t 5'
назначаю 5 порт третьему вилану в связке с транковым потром
swconfig dev eth0 set enable_vlan 3
активирую виртуальный интерфейс
swconfig dev eth1 set apply 1
сохраняю параметры физического интерфейса
...
Вопрос почему в команде vconfig стоит 3 и в команде ifconfig стоит eth0.1, так же в
Code:
swconfig dev eth1 set apply 1
наверное имели ввиду eth0, далее команда
Code:
swconfig dev eth0 set enable_vlan 3
имеет только два значения разрешить использование vlan или запретить использование vlan, поэтому ее формат следующий:
Code:
swconfig dev eth0 set enable_vlan 1
или
swconfig dev eth0 set enable_vlan 0
Без вывода ifconfig/swconfig/dmesg для данного роутера можно гадать, но все же (AR9344+AR9580+AR8327N) - итак после без ваших скриптов и после загрузки роутера посмотрите наименование интерфейсов они имеют имена скорей всего "vlan1" и "vlan2"
=> команда ifconfig должна иметь вид тогда например :
Code:
ifconfig vlan3 192.168.0.1 netmask 255.255.255.0 up
вы же в swconfig используете vlan3, тогда подправим :
Code:
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 vlan 1 set ports '0t 2 3 4'
swconfig dev eth0 vlan 3 set ports '0t 5'
swconfig dev eth0 set apply
vconfig add eth0 3
ifconfig vlan3 192.168.0.1 netmask 255.255.255.0 up
Далее через WEB до настроить на сам интерфейс (так как через WEB будут записаны переменные данного интерфейса в nvram) на DHCP, NAT, unbridge и как всегда правила iptables для нового интерфейса vlan3
Минимальный набор правил iptables для vlan3, чтоб хоть что-то заработало:
Да действительно, моя вина, опечатался... физический интерфейс естественно eth0, виртуальный eth0.3, нужно меньше уделять времени клавишам ctrl+c ctrl+v )), swconfig dev eth0 set apply 3 - действительно моя ошибка.
Попробую сделать так как Вы написали, думаю проблема была в правилах iptables.
Единственное не совсем понятно эта запись?
Quote:
вам останется только добавить проход vlan3 на br0 и vlan2
Имеете ввиду добавить третий вилан в бридж? или добавить соответствующие правила в iptables?
вам останется только добавить проход vlan3 на br0 и vlan2
Имеете ввиду добавить третий вилан в бридж? или добавить соответствующие правила в iptables?
Не о каком бридже речи не идет, что за мания один интерфейс да еще и с IP встраивать в бридж.
По умолчанию dd-wrt например использует имена интерфейсов vlan1/vlan2/br0 и естественно iptables настроит правила с учетом данных интерфейсов при загрузке роутера, но вы добавляете еще один новый сетевой интерфейс, следовательно его так же нужно описать в правилах iptables этого dd-wrt не сделает и естественно данный интерфейс vlan3 не куда доступ иметь не будет.
Если нужен доступ (чтоб пакеты ходили) с LAN1-LAN4/wi-fi на ПК в vlan3 то правила из vlan3 <-> br0, если к провайдеру то vlan3 <-> vlan2, если интернет поднят с помощью любого ppp, то добавить нужно vlan3 <-> ppp0.
При использовании Startup скрипта, данные команды будут запускаться всегда при старте роутера за исключением правил iptables, которые в другом скрипте. Данные команды будут запускаться всегда при старте роутера, так как он (StartUp скрипт) просто помещается как переменная в nvram память для сохранения, можете его размешать на flash подключенную к USB порту в нужном месте или придумать свой метод его запуска с USB.
Получается следующее: От провайдера приходит инет на 2 LAN (VLAN1). Получает ip адрес на этот порт. Поднимается DHCP на WLANe. Инет по WiFi раздает. Но на оставшихся LANах DHCP не запускается. Тупо идет проброс напрямую. Т.е. по LAN мы в подсети провайдера. Как же все таки отрезать эту "фичу" и запустить на VLAN2 DHCP?
Хоть поздно но отвечу - Возможно необходимо Прописать в DNSMasq
#назначили интерфейс
interface=br0
# типа DHCP сервер
dhcp-option=br0,3,192.168.1.1
#dhcp дипазон
dhcp-range=br0,192.168.1.1,192.168.1.255,255.255.255.0,24h
# назначим DNS сервера- заменяем на свои
dhcp-option=br1,6,31.40.112.9,31.40.112.3
----
Но мне кажется, роутер при перезагрузке переназначает заново интерфейсы в мосту br0 (т.е. eth1.1 выпадает из моста поэтому на него DHCP не действует, а eth1 не удаляется из него). Поэтому Интерфейсы в мост надо прописать не только в скрипте но и в веб-морде Networking->Assign to Bridge. Это было описано во втором сообщении Темы. Можно сказать решение все время было под носом!