Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-09-01 20:33:41

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

[SOLVED] Ifplugd + eth0 + wlan0

Tak sobie sprzątam konfigurację w pliku /etc/network/interfaces i z tych porządków postanowiłem posprawdzać co mi z tego jeszcze działa, a co przestało. Niby zatrzymałem się na ifplugd. Generalnie, to łącza przewodowe działają z tym bez problemu, gorzej z bezprzewodowymi — tak wiem, że mogą nie działać xD

Połączenie ifplugd i parametru wpa-roam od wpasupplicant jest w stanie zrobić automat, który działa na takiej zasadzie, że po podpięciu kabla do eth0, wifi jest ubijane i pakiety lecą przez przewód. Po odłączeniu przewodu, wifi jest zestawiane i mam połączenie bezprzewodowe. I tak to sobie działa mniej więcej.

Problem jest w tym, że trzeba to puścić w ruch manualnie, w sensie, nie działa to po restarcie laptopa. Niby procesy monitorowania interfejsów eth0 i wlan0 są odpalone:

Kod:

# ps aux | grep ifpl
root       1692  0.0  0.0   6292  1428 ?        S    19:55   0:00 /usr/sbin/ifplugd -i eth0 -q -f -u0 -d2 -w -I
root       1721  0.0  0.0   6292   100 ?        S    19:55   0:00 /usr/sbin/ifplugd -i wlan0 -q -f -u0 -d2 -w -I

ale z jakiegoś powodu jest ignorowany ten wlan0.

Jeśli manualnie teraz bym wpisał w terminalu [b]ifup wlan0[/b], to ten interfejs zaskoczy i ifplugd go zauważy. W efekcie po odłączeniu/podpięciu przewodu do eth0, ifplugd będzie podłączał i rozłączał wifi, czyli działał tak jak powinien.

Pytanie jest dlaczego to nie działa bez ifup i czy da radę to jakoś poprawić?

Generalnie to mam alternatywę z mertykami ale w tym przypadku są dwa różne adresy. Mi by generalnie zależało na tym, by te interfejsy tak działały jak to wyżej opisałem, bo wtedy można zespófować MAC karty WiFi i przypisać laptopowi jeden adres IP bez względu na to z którego interfejsu on korzysta. Coś jak bonding, tyle, że prościej. xD

Ktoś coś wie czemu ten ifplugd nie podbiera interfejsu wlan0 po restarcie maszyny?

Ostatnio edytowany przez morfik (2016-09-02 15:04:01)

Offline

 

#2  2016-09-02 07:17:47

  Bodzio - Ojciec Założyciel

Bodzio
Ojciec Założyciel
Skąd: Gorlice
Zarejestrowany: 2004-04-17
Serwis

Re: [SOLVED] Ifplugd + eth0 + wlan0

Nie wie, ale wicd mi to samo robi bez problemu
W wicd-curses jest okienko do zafajkowania, że LAN ma działać po wpięciu kabla. A jak kabelek wyjmę to wstaje wifi.


Debian jest lepszy niż wszystkie klony
Linux register users: #359018
[img]http://www.freebsd.org/gifs/powerlogo.gif[/img]
[url=https://goo.gl/photos/5XGKFkvaMimLwM2s9]Beskid Niski[/url]

Offline

 

#3  2016-09-02 09:06:21

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Ifplugd + eth0 + wlan0

No tak, automaty typu wicd i network manager to potrafią, a mi chodziło o zreprodukowanie tego zachowania via /etc/network/interfaces .xD

Offline

 

#4  2016-09-02 15:03:46

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Ifplugd + eth0 + wlan0

Udało mi się to zmęczyć w końcu za sprawą [url=http://www.cubieforums.com/index.php?topic=1636.0]tego artykułu[/url], teraz działa tak jak powinno. Poniżej trochę info.

W konfiguracji ifplugd monitorowany ma być tylko interfejs przewodowy eth0, mimo, że tam piszą, że można też dodać wlan0. Jak już się monitoruje tylko interfejs eth0, to trzeba nieco skryptami się pobawić.

Ten podstawowy skrypt znajduje się w /etc/ifplugd/action.d/action_wpa i trzeba go wyłączyć (dopisując exit 0 gdzieś zaraz na początku pliku). Później trzeba stworzyć nowy skrypt, np. /etc/ifplugd/action.d/action_wlan i dodać tam poniższą zawartość:

Kod:

#!/bin/sh
set -e

case "$2" in
down)
    /sbin/wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
    /sbin/ifup wlan0=wifi
    ;;
up)
    /sbin/ifdown wlan0
    /usr/bin/killall wpa_supplicant
    ;;
esac

Potem w /etc/network/interfaces skonfigurować interfejsy w poniższy sposób:

Kod:

iface eth0 inet dhcp
    metric 5

auto wlan0
iface wlan0 inet manual
    wpa-driver nl80211
    wpa-debug-level -1
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    wpa-roam-default-iface wifi

iface wifi inet dhcp
    metric 10

Metryki chyba nie są obowiązkowe ale mi się coś chrzaniło bez nich, to dodałem na wszelki wypadek. [b]auto wlan0[/b] musi być, bo w przypadku startu systemu nie będzie połączenia przy niepodpiętym przewodzie.

Póki co działa, choć jeszcze będę to testował. xD

Offline

 

#5  2016-09-02 17:24:22

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: [SOLVED] Ifplugd + eth0 + wlan0

Mam jeszcze takie zapytanie odnośnie zmiany adresu MAC dla tych interfejsów, bo coś działa to trochę problematycznie.

Praktycznie żadna metoda zmiany adresu MAC przez plik /etc/network/interfaces nie działa. Nie działa [b]haaddress ether[/b], podobnie też nie działają akcje w pre-up , np. [b]macchanger[/b] czy [b]ip[/b] . Sam adres MAC można bez problemu zmienić w terminalu wskazując interfejs wlan0 ale dopisanie odpowiedniej linijki w bloku z [b]iface wlan0[/b] lub [b]iface wifi[/b] nie przynosi oczekiwanego skutku. W logu zaś można zobaczyć taki komunikat:

Kod:

ifplugd(eth0)[2545]: client: [ERROR] Could not change MAC: interface up or insufficient permissions: Device or resource busy
ifplugd(eth0)[2545]: client: Current MAC:   3c:4a:92:00:4c:5b (Hewlett-Packard Company)
ifplugd(eth0)[2545]: client: Permanent MAC: 3c:4a:92:00:4c:5b (Hewlett-Packard Company)
ifplugd(eth0)[2545]: client: Failed to bring up wifi.
ifplugd(eth0)[2545]: client: run-parts: /etc/ifplugd/action.d//action_wlan exited with return code 1
ifplugd(eth0)[2545]: Program execution failed, return value is 1.

No i jest takie pytanie, czy jak jest wykorzystywany ten ifplugd, to czy konfiguracja tych adresów MAC jest w ogóle możliwa za sprawą pliku /etc/network/interfaces?

Niby potrafię ustawić MAC od razu na starcie systemu via ta poniższa reguła udeva:

Kod:

ACTION=="add", SUBSYSTEM=="net", \
    ATTR{address}=="c0:cb:38:01:f0:f5", \
    RUN+="/bin/ip link set dev %k address 3c:4a:92:00:4c:5b"

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.008 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00142 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.75.218' WHERE u.id=1
0.00079 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.75.218', 1732740450)
0.00045 SELECT * FROM punbb_online WHERE logged<1732740150
0.00047 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28919 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00153 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28919 ORDER BY p.id LIMIT 0,25
0.00091 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28919
Total query time: 0.00577 s