PDA

Bekijk de volledige versie : Поднятие интерфейса только после его настройки (после ребута)



num
11-11-2007, 10:29
Добрый день!

Есть роутер wl550ge, прошита модифицированная прошивка 1.9.2.7-7g

Недавно возникла необходимость использования второго провайдера, для чего был создан интерфейс vlan2.
Вроде все бы ничего, да вот только выходит что второй провайдер воткнут в 1 порт, который до загрузки и выполнения post-boot является обычным портом в свиче. соотв, может получать от роутера DHCP (что грозит граблями провайдеру) и иметь прямой доступ к внутренней сети (что потенциально нехорошо мне:))

Как бы сделать так, чтобы все интерфейсы становились активными только после выполнения post-boot ?

Oleg
11-11-2007, 10:53
А как Вы бьёте свитч? Надеюсь, с помощью переменных nvram?

Reyter
11-11-2007, 11:08
А еще разбивку интерфейсов можно запихнуть в pre-boot

num
11-11-2007, 11:46
собственно.. вот мой post-boot


#!/bin/sh
robocfg vlan 2 ports "1 5t" vlan 0 ports "2 3 4 5t"
vconfig add eth0 2
ifconfig vlan2 hw ether xx:xx:xx:xx:xx:xx
ifconfig vlan2 xx.xx.xx.57 broadcast xx.xx.255.255 netmask 255.255.224.0 up
echo "nameserver xx.xx.xx.10" >> /etc/resolv.conf
echo "nameserver xx.xx.xx.132" >> /etc/resolv.conf
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -d 0/0 -j MASQUERADE



Reyter
а как засунуть разбивку в pre-boot? если можно, подробнее..

Reyter
11-11-2007, 12:06
собственно.. вот мой post-boot
Reyter
а как засунуть разбивку в pre-boot? если можно, подробнее..
Строку
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -d 0/0 -j MASQUERADE однозначно нужно прописывать в post-firewall, а не сюда.
А с pre-boot работаем точно так же, как и с post-boot. Создаем там же, деляем его исполняемым и прописываем что нам нужно.
Собственно об этом вполне доступно рассказано здесь (http://wl500g.info/showpost.php?p=23521&postcount=12).

num
11-11-2007, 12:47
Перенес это в pre-boot


#!/bin/sh
robocfg vlan 2 ports "1 5t" vlan 0 ports "2 3 4 5t"
vconfig add eth0 2
ifconfig vlan2 hw ether xx:xx:xx:xx:xx:xx
ifconfig vlan2 xx.xx.xx.57 broadcast xx.xx.255.255 netmask 255.255.224.0 up
echo "nameserver xx.xx.xx.10" >> /etc/resolv.conf
echo "nameserver xx.xx.xx.132" >> /etc/resolv.conf
сделал исполняемым, сохранился.
В итоге после ребута скрипт не выполняется (во всяком случае, изменения не вносятся). Однако скрипт вручную запустить можно и он отрабатывает нормально.
:\

Reyter
11-11-2007, 13:07
Перенес это в pre-boot
сделал исполняемым, сохранился.
В итоге после ребута скрипт не выполняется (во всяком случае, изменения не вносятся). Однако скрипт вручную запустить можно и он отрабатывает нормально.
:\
Значит на этом этапе загрузки не хватает загруженных модулей для выполнения скрипта. Придется оставить эту идею.

Mam(O)n
12-11-2007, 03:12
Вместо того, чтоб в пост-буте каждый раз при загрузке переконфигурировать свитч при помощи robocfg нужно всего-лишь раз поправить nvram:

nvram set vlan0ports="2 3 4 5*"
nvram set vlan2ports="1 5"
nvram commit

num
12-11-2007, 11:08
Mam(O)n
т.е., сии команды выполнить в консоли и они будут сохранены?
З.Ы. делал по мануалу из соответствующей ветки :\

num
12-11-2007, 11:27
собственно, тогда более общий вопрос Олегу:
до выполнения Post-boot и всего остального, что грузит АСУС из /usr/local/sbin, роутер уже выполняет какую либо маршрутизацию и обслуживание интерфейсов или нет?

Mam(O)n
12-11-2007, 19:45
Сии команды поменяют в nvram два параметра после чего свитч будет уже сразу инициализирован как тебе будет нужно. Останется только с помощью vconfig и ifconfig поднять vlan2.

Про пост-бут. Я конечно не Олег и точно не скажу как там всё работает, но есть у меня предположения, что подстройка таблицы маршрутизации согласно настройкам и все остальное, связанное с обслуживанием интерфейсов происходит после pre-boot и продолжает исполнятся паралельно выполнению post-boot.

Oleg
12-11-2007, 20:18
подстройка таблицы маршрутизации согласно настройкам и все остальное, связанное с обслуживанием интерфейсов происходит после pre-boot и продолжает исполнятся паралельно выполнению post-boot.
Оно там начинается ещё раньше, но из-за задержек всяких может произойти как до пост-бут, так и после. Поэтому всякие манипуляции с фаерволом должны проводится в post-firewall, интерфейсы "левые" тоже лучше там поднимать.