PDA

Bekijk de volledige versie : и снова грабли:2ip-1wan



Mi}{a
18-07-2007, 01:12
Доброго времени суток, уважаемые!
Столкнулся с проблемой после прочтения мануала, в частности пункта 9 про 2 IP адреса на один WAN порт.
Создаю файлы, присваиваю атрибут на исполнение:

-rwxr-xr-x 1 Mke root 83 Jul 18 02:56 post-boot
-rwxr-xr-x 1 Mke root 569 Jul 18 02:09 post-firewall

vi /usr/local/sbin/post-boot

добавляю строку
ifconfig vlan1:0 194.6.1.3 netmask 255.255.255.248 up
далее :x
еще раз проверяю, прошла запись в файл или нет - запись есть
flashfs save && flashfs commit && flashfs enable && reboot

После перезагрузки: ifconfig -a и что вижу?.. а ровным счетом никаких изменений, как был vlan1 так он один и остался, второй ip на vlan1:0 не присвоен? записей нет..
Если запустить эту строку в "ручном" режиме (даже тем же копи-пастом) результат есть:

vlan1 Link encap:Ethernet HWaddr 00:18:F3:E9:96:FE
inet addr:10.10.10.157 Bcast:10.10.10.191 Mask:255.255.255.192
inet6 addr: fe80::218:f3ff:fee9:96fe/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1632 errors:0 dropped:0 overruns:0 frame:0
TX packets:304 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:321607 (314.0 KiB) TX bytes:95783 (93.5 KiB)

vlan1:0 Link encap:Ethernet HWaddr 00:18:F3:E9:96:FE
inet addr:194.6.1.3 Bcast:194.6.1.255 Mask:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1


Где я ошибаюсь?

P.S.
Так же закрались сомнения, в какой же все таки файл прописывать правила для iptable на проблрос портов: post-boot или post-firewall?


P.P.S.

robocfg show
Switch: enabled
Port 0(W): 100FD enabled stp: none vlan: 1 mac: 00:00:00:00:00:00
Port 1(4): 100FD enabled stp: none vlan: 0 mac: 00:00:00:00:00:00
Port 2(3): DOWN enabled stp: none vlan: 0 mac: 00:00:00:00:00:00
Port 3(2): DOWN enabled stp: none vlan: 0 mac: 00:00:00:00:00:00
Port 4(1): 100FD enabled stp: none vlan: 0 mac: 00:00:00:00:00:00
Port 5(C): 100FD enabled stp: none vlan: 0 mac: 00:00:00:00:00:00

Это нормально?

al37919
18-07-2007, 04:55
первая строка в исполняемом файле (e.g. post-boot, post-fw etc) д.б.
#!/bin/sh

правила iptables надо писать в post-fw, т.к. он выполняется при каждом установлении соединения

Mam(O)n
18-07-2007, 05:08
Где я ошибаюсь?
Даже и незнаю что и предположить, разве что в #!/bin/sh в начале файла. Чтоб проверить, запускается ли файл добавь туда строчку logger "$0[$$]: Started". После, если файл запускается ты увидишь запись в логе, подтверждающую это.

Так же закрались сомнения, в какой же все таки файл прописывать правила для iptable на проблрос портов: post-boot или post-firewall?
Только в post-firewall, т.к. перед его запуском все таблицы iptables приводятся в дефолтовый вид.

Mi}{a
18-07-2007, 08:04
разве что в #!/bin/sh в начале файла
присутствует с момента рождения файла, только вот тут тоже вопрос был, почему их там было 2 штуки..


Чтоб проверить, запускается ли файл...
Проверял, та же запись на dropbear срабатывала на ура и, соответственно
не срабатывала, когда ее там небыло :)

Mam(O)n
18-07-2007, 09:29
почему их там было 2 штуки..
Наверное последовав рекомендациям нескольких туториалов в итоге было введено несколько раз echo "#!/bin/sh" >> /usr/local/sbin/post-boot Это нестрашно.


Проверял, та же запись на dropbear срабатывала на ура и, соответственно
не срабатывала, когда ее там небыло :)
Тоесть скрипт запускается... Значит попробуй тогда в /usr/local/sbin/post-firewall добавить поднятие интерфейса. Есть предположение, что не только таблицы iptables в дефолт сбрасываются перед его исполнением.

Mi}{a
18-07-2007, 10:48
Наверное последовав рекомендациям нескольких туториалов в итоге было введено несколько раз echo "#!/bin/sh" >> /usr/local/sbin/post-boot Это нестрашно.

В том то и дело, что команда давалась только один раз.


Тоесть скрипт запускается... Значит попробуй тогда в /usr/local/sbin/post-firewall добавить поднятие интерфейса. Есть предположение, что не только таблицы iptables в дефолт сбрасываются перед его исполнением.

Туда тоже уже дописывал, тож самое получается.. Так же дописывал IPTABLES, но и эти строки не отработались, iptables -L -t nat показали дефолтовые настройки и ничего больше..

Тут один камрад сказал, что вроде как с флэшки эти файлы должны храниться на флэше и стартовать должны с нее. Что скажете, уважаемые?

ThinkPad
18-07-2007, 16:37
ifconfig vlan1:0 194.6.1.3 netmask 255.255.255.248 up
IMHO: up здесь явно лишний.... у меня работает без него.... Да и Маска какая то странная....

Mam(O)n
18-07-2007, 18:02
Так же дописывал IPTABLES, но и эти строки не отработались
А если в консоли вручную набивать эти же команды, то прописывались правила?
Скрипты еще могут не исполнятся, если туда закрался виндовый перевод строки (\0x0A\0x0D). Его можно исправить так:


F=/usr/local/sbin/post-firewall && cat $F | sed "s/\r//g" > $F.n && mv -f $F.n $F

А в общем для лучшего представления картины происходящего можно сюда выложить cat /usr/local/sbin/post-boot и cat /usr/local/sbin/post-firewall.



Тут один камрад сказал, что вроде как с флэшки эти файлы должны храниться на флэше и стартовать должны с нее. Что скажете, уважаемые?
Ничего не понял.
При запуске роутера из встроенного флеша разворачивается архив в каталог /usr/local/, который находится на ramfs, то бишь в оперативную память роутера. Чтоб сохранить /usr/local/ во встроенную флеш используется скрипт /sbin/flashfs, который создает архив(flashfs save) и записывает фо влеш(flashfs commit).



up здесь явно лишний.... у меня работает без него.... Да и Маска какая то странная....
Маска вполне нормальная. А с up или без up без разницы. Если up не указывать то он неявно подразумевается