rc-scripty i VLANy hardware-owe.
Blues
blues w ds6.pg.gda.pl
Śro, 31 Lip 2002, 21:44:19 CEST
Wszelka sprzętowa akceleracja to jest to co tygrysy lubią najbardziej.
Jednakże z VLAN-ami i trunkowniem interfejsów jest problem, bo pomimo iż
karty sieciowe to obsługują robią to w bardzo porąbany sposób (będę mówił
o tym co z nam z intelem, ale AFAIK to 3Com ma dokładnie te same
problemy).
Mianowicie - sprzęt musi być ustawiony najpierw (załączony skrypt
ians-start), interfejsy muszą być podniesione w najzwyklejszy sposób. One
już będą działały w vlanach. Downowanie odbywa się w odwrotnej kolejności
- down interfejsow (wszystkich), a potem wyłączenie sprzętowych bajerów
(ians-stop z załącznika). Intel zaleca jeszcze usunięcie modułu ians przed
ponownym ładowaniem ustawień.
Oto jak ja to wplotłem w /etc/init.d/network u siebie. To działa dobrze,
ale wkurzające jest pilnowanie czy w upgrade nie ma rc-scriptów (tak,
wiem, można wpisać hold...):
# See how we were called.
case "$1" in
start)
/etc/rc.d/init.d/ians-start
network_init
for i in $interfaces_boot $interfaces_sit_boot ; do
run_cmd -a "$(nls 'Bringing up interface') $i" /sbin/ifup $i boot
[...]
touch /var/lock/subsys/network
;;
stop)
# If we go to runlevel 0, 1 or 6 then umount all network fs
if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
if [ -x /etc/rc.d/init.d/netfs -a -f /var/lock/subsys/netfs ];
[...]
network_deinit
/etc/rc.d/init.d/ians-stop
rm -f /var/lock/subsys/network
;;
status)
Cały problem jest w tym, że w skrypcie ians-start najpierw ustawia się
wszystko, a potem robi commit tych ustawień. I od tego dopiero momentu te
ustawienia sa aktywowane. Nie da się tego zrobić z podniesionymi
interfejsami - owocuje to pięknym oopsem. W tym momencie odpada
najfajniejszy scenariusz z podnoszeniem i downowaniem vlanów poprzez
ifup-ifdown.
Moim pomysłem na to jest umożliwienie uruchamiania w miejscach, gdzie ja
mam teraz swoje skrypty zewnętrznych skryptów z jakiegoś katalogu, np.
/etc/sysconfig/network.pre-up, /etc/sysconfig/network.pre-down.
Pozwoliłoby to na bardzo proste załatwienie tego oraz przynajmniej kilku
innych problemów. Byłoby to dokładnie to samo co if.up/if.down tyle, że
per-network, a nie per-interfejs.
Z Arkiem gadałem na ircu i jemu ten pomysł się nie podobał za bardzo,
ale... ja mówiąc szczerze nie bardzo widzę inne rozwiązanie. Miałem kiedyś
jeszcze inny pomysł, żeby w /etc/sysconfig/interfaces robić pliczek
vlan.cfg, który byłby brany w pierwszej kolejności przy stawianiu i w
ostatniej przy downowaniu interfejsów w całości. i to niby byłoby fajne,
ale... przy downowaniu _wszystkie_ wpisy w team-ie na karcie _muszą_ być
wyłączone, a gdyby to robić na podstawie tego pliczku tak by nie było.
iansy nie mają możliwości zrobienia czegoś typu flush. Jeżeli nie będą
wszystkie wpisy zdjęte to powstanie sieci może się nie udać. Przy zdalnej
pracy nie muszę chyba mówić do czego to doprowadzi ....
Czekam więc na inne propozucje albo przyjęcie tej....
--
---------------------------------
pozdr. Paweł Gołaszewski
---------------------------------
CPU not found - software emulation...
-------------- następna część ---------
#!/bin/sh
# interfejsy sieciowe
## eth1
ianscfg -d -v eth1.40
ianscfg -d -v eth1.1
ianscfg -d -m eth1
ianscfg -d -t ve1
## modul
rmmod ians
-------------- następna część ---------
#!/bin/sh
#
# interfejsy sieciowe
ianscfg -a -t ve1 -M NONE -V
ianscfg -a -t ve1 -m eth1 -p none
ianscfg -a -t ve1 -v eth1.40 -i 40
ianscfg -a -t ve1 -v eth1.1 -i 1
ianscfg -c ve1
Więcej informacji o liście dyskusyjnej pld-rc-scripts