Керування мережею

From KDE UserBase Wiki
Revision as of 07:47, 22 September 2010 by Yurchor (talk | contribs) (Created page with ''''KNetworkManager''' — аплет KDE 4, '''Плазмоїд керування мережею''' у KDE 4, '''KNetworkManager''' у KDE 3, '''nm-applet''' у GNOME і '''cnet...')
Other languages:

Вступ

У деяких дистрибутивах Linux для надання користувачеві доступу до керування мережевими з’єднаннями використовується фонова служба NetworkManager. У KDE основними графічними інтерфейсами до NetworkManager є KNetworkManager (KDE3 і KDE4) та Керування з’єднаннями (плазмоїд KDE4).

Вади

Сповіщення про вади

Щоб створити корисне повідомлення про ваду у Керуванні мережею, вкажіть такі дані:

  • версію вашого дистрибутива;
  • Чи використовується NetworkManager? У деяких дистрибутивах використання цієї системи є необов’язковим, оскільки ця система непотрібна для статичних серверних систем. Якщо NetworkManager не використовується, повідомляти про ваду у ньому, ймовірно, не варто.
  • версію аплету Керування мережею (NetworkManager-kde4.rpm у openSUSE, plasma-widget-network-manager у Kubuntu 9.04, plasma-widget-networkmanagment у Kubuntu 9.10, kde-plasma-networkmanagement у fedora)
  • версію пакунка NetworkManager;
  • версію пакунка ModemManager;
  • архітектуру вашого комп’ютера, якщо це комп’ютер, несумісний з архітектурою x86. Користувач PPC? Авторам варто знати це.
  • версію обладнання для роботи у мережі (скористайтеся командою lshal для отримання цих даних);
  • записи журналу системи, що стосуються роботи NetworkManager під час спроби з’єднання;
    • для openSUSE: /var/log/NetworkManager
    • для kubuntu: /var/log/syslog
    • для fedora: /var/log/messages
  • Для бездротових мереж:
    • Чи використовується прихований SSID?
    • Тип захисту бездротової мережі: WEP/WPA-PSK/WPA-EAP?
    • Довжина ключа.
    • Тип ключа (пароль або шістнадцятковий ключ для WEP).
    • Шифри (TKIP/AES).
    • Механізми розпізнавання (TLS/TTLS/PEAP/...).
  • Для мобільних широкосмугових мереж:
    • обладнання;
    • використані драйвери (отримати ці дані можна за допомогою dmesg під час виконання з’єднання);
    • мережа, яка використовується;
    • тип мережі (GSM/CDMA/UMTS);
    • чи використовується apn.
    • журнали ModemManager ("killall NetworkManager", "killall modem-manager", start "modem-manager --debug", "NetworkManager --no-debug") можуть бути корисними для визначення того, чи вдалося NetworkManager виявити ваше обладнання.

І дуже важливі дані: чи можете ви встановити з’єднання за допомогою іншої клієнтської програми? Наприклад, nm-applet у GNOME або cnetworkmanager у консолі. Якщо з’єднання можна встановити, будь ласка, спробуйте додати порівняльні відомості, описані наприкінці цієї статті.

Обробка повідомлень про вади

Керування мережею у більшості стільничних систем Linux є вершиною великого та дуже нестійкого стосу компонентів. Причиною цього є потреба у роботі у багатьох різних системах. Якщо спроба з’єднання зазнає невдачі, причиною цього може бути один або декілька елементів стосу, але повідомлення про невдачу, зазвичай, є подібними до «З’єднання встановлено на 28%, після чого спроба зазнала невдачі». Обробка повідомлень про вади на bugs.kde.org полягатиме у пошуках шару, на якому сталася помилка, так, щоб точно визначити відповідальний за помилку компонент.

Структура компонентів

Обладнання

У обладнанні для бездротового зв’язку є неочікувано багато вад. Якщо вам поталанить, ці вади можна виправити на наступному рівні.

Ядро

На цьому рівні працює справжній драйвер, що керує обладнанням. Тут також є багато доволі цікавих вад. З часу впровадження шару стандартного бездротового зв’язку MAC у ядро Linux ситуація з вадами покращується. Для частини обладнання не існує драйвера для Linux, користувачі керують ним за допомогою програми ndiswrapper, яка завантажує драйвери Windows і всі вади з ними пов’язані. Повідомлення драйвера можна знайти у журналі системи, обмінюватися даними з драйвером можна за допомогою набору програм iwtools.

Допоміжна програма (wpa_supplicant)

wpa_supplicant — низькорівнева програма для обміну даними з драйвером, яка забезпечує роботу можливостей розпізнавання та шифрування. Код цієї програми є відкритим і, загалом, досить високої якості. До створення NetworkManager користувачам доводилося налаштовувати програму вручну за допомогою файлів керування у каталозі /etc. Недосвідченим користувачам важко було налаштувати програму. Журнал програми можна, зазвичай, знайти за адресою /var/log/wpa_supplicant.log. У сучасних системах програмою віддалено керує...

NetworkManager

NetworkManager — фонова служба системи, яка перебуває у центрі підсистеми керування мережею у більшості стільничних системах Linux. Служба працює від імені адміністратора системи (користувача root), що потрібно для керування нижчими рівнями, і надає можливості керування з боку клієнта за допомогою системи D-Bus. Журнал служби записується до /var/log. Крім того, NM керує клієнтами DHCP за потреби і перезаписує файл /etc/resolv.conf власними даними щодо серверів DNS. Крім того, NetworkManager надає у розпорядження користувача модуль Системних параметрів, призначеним для читання (загальносистемних) файлів налаштування мережі вашого дистрибутива і надання отриманих даних NetworkManager.

Клієнтські програми

KNetworkManager — аплет KDE 4, Плазмоїд керування мережею у KDE 4, KNetworkManager у KDE 3, nm-applet у GNOME і cnetworkmanager, як остання надія. Ці програми відповідальні за

  • надання користувачеві даних щодо стану роботи мережі системи,
  • передавання повідомлень про дії користувача до NetworkManager
  • та зберігання обміну даними щодо параметрів мережевого з’єднання користувача (правил) у NM.

Хоча ці програми є найпомітнішими частинами системи, вони є малозначущими для успішного встановлення з’єднання. Оскільки всі ці програми користуються стандартним інтерфейсом NetworkManager, вони є взаємозамінними.

Якщо щось не працює

Де шукати джерело негараздів?

Simple. Start at the top of the stack and work down. When you find something that works, you found the site of the problem. When you run out of things you can change, hand over to an expert (probably the responsible team at your Linux distribution).

  1. Are you actually using NetworkManager on your system? Mandriva doesn't use it. ArchLinux uses wicd. Moblin uses Connman.
  2. Try a different NetworkManager client. If that helps, continue in the next section to try and further localize the problem in Network Management. Then bugs.kde.org, product "Network Management" is the place to go.
  3. Try to configure a connection using your distro's system configuration tools, so SystemSettings picks it up. It's unlikely but worth a go.
  4. Try a manually configured connection via wpa_supplicant. The documentation is rather sparse but there are example configurations include in the package. Here is the list of supported hardware. If wpa_supplicant on its own works, NetworkManager is at fault. Talk to your distro or report it at bugs.freedesktop.org.
  5. If that didn't work, reconfigure a wireless router to use a different (weaker) encryption type or none at all. If this works, the problem is either in wpa_supplicant or the driver. Either way, take it to your distro.

Це все кляте KDE!

Якщо ви читаєте ці рядки, вам вдалося встановити з’єднання за допомогою іншої клієнтської програми NetworkManager.

First, make sure that you are not running another client as well as Network Management. This will lead to unpredictable results. If you were, remove and restart Network Management. You can run it externally to Plasma as

plasmoidviewer networkmanagement

if you want.

You should now try to figure out how the connection provided by Network Management differs from that provided by the other client. If you build Network Management from source you can use the tool 'qdbusfornm', which is a version of qdbus extended to handle NM's data types.

If you do not build from source, just replace

./qdbusfornm --system

by

qdbus --system --literal

in the command shown below. It is a bit harder to read but should give you the same output. If you use

qdbus --system --literal

please take the time to format the output so there is one key per line, similar to the qdbusfornm output below. This is easy and just takes time, so it is better for you to do this than a developer.

The value 0 below identifies the connection. Change it if you have more than one until you find the relevant connection.

./qdbusfornm --system org.freedesktop.NetworkManagerUserSettings/org/freedesktop/NetworkManagerSettings/0
org.freedesktop.NetworkManagerSettings.Connection.GetSettings

returns here

 a{sa{sv}}(==802-11-wireless==
 band: bg
 mode: infrastructure
 security: 802-11-wireless-security
 ssid: opensuse-guest
 ==802-11-wireless-security==
 auth-alg: open
 key-mgmt: wpa-psk
 wep-tx-keyidx: 0
 ==connection==
 autoconnect: true
 id: openSUSE
 type: 802-11-wireless
 uuid: {951cc7d9-1fa0-4525-9ab7-7199849e1b19}
 ==ipv4==
 dns-search:
 method: auto
 )

Now you should repeat using the other, working client and copy both sets of output, before attaching them securely to a bug report at bugs.kde.org. With this information we will quickly be able to implement a fix.

Аварійні завершення роботи

If you have a crash ensure you install debugging symbols and take a backtrace. In Kubuntu you need to add the debug repository and install plasma-widget-networkmanagement-dbgsym.