Керування мережею
Вступ
У деяких дистрибутивах 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/...).
- For mobile broadband:
- hardware
- driver in use (see dmesg when you connect the hardware)
- network in use
- network type (GSM/CDMA/UMTS)
- apn used, if any.
- ModemManager logs ("killall NetworkManager", "killall modem-manager", start "modem-manager --debug", "NetworkManager --no-debug") may be helpful in debuggin whether NetworkManager detects your hardware.
And very importantly: Are you able to connect with another client? For example, nm-applet under GNOME or cnetworkmanager on the console. If so, please try to attach comparative troubleshooting information as described at the end of this article.
Обробка повідомлень про вади
Network Management on most Linux desktops sits on top of a large and fragile stack of components. This is necessary to deal with the vast number of different configurations. When a connection fails, it can be for any one of a number of reasons throughout this stack, but the symptoms will usually be something like "Connection got to 28% and then failed". Bugs reported at bugs.kde.org will be triaged to try and find out at what layer the failure occurred, so that it can be fixed by those responsible.
Структура компонентів
Обладнання
У обладнанні для бездротового зв’язку є неочікувано багато вад. Якщо вам поталанить, ці вади можна виправити на наступному рівні.
Ядро
This is where the actual driver that controls the hardware is located. There are many interesting bugs here too. Since the introduction of a standard wireless MAC layer in the Linux kernel, this situation is improving. Some hardware doesn't have a Linux driver, so people control it using the ndiswrapper tool, which loads Windows drivers and their bugs. You can see its output in the system log, and talk to the drivers using the iwtools set of commands.
Допоміжна програма (wpa_supplicant)
wpa_supplicant is a low level tool for talking to the driver, providing authentication and encryption settings. It is open source and generally of high quality. Before the advent of NetworkManager, users had to configure it manually with control files in /etc. This has been known to get people out of a tight spot occasionally. It usually logs to /var/log/wpa_supplicant.log. Nowadays it is mostly controlled remotely by....
NetworkManager
NetworkManager is the system daemon at the centre of the networking subsystem on most end user Linux installations. It has root privileges, needed to control the lower layers, and exposes some controls up to clients running in the user session via DBUS. It writes a log in /var/log. NM also controls DHCP clients as needed and rewrites /etc/resolv.conf with the DNS servers it has configured. NetworkManager also provides a SystemSettings service, which is responsible for reading your distribution's network configuration files (system wide) and feeding them into NetworkManager.
Клієнтські програми
KNetworkManager applet for KDE 4, Network Management Plasmoid under KDE 4, KNetworkManager under KDE 3, nm-applet under GNOME, and cnetworkmanager is your last life. These are responsible for
- giving feedback on the networking status of ths system,
- communicating the user's actions to NetworkManager and for storing
- communicating the user's network connection details (policy) to NM.
While they are the most visible part of the system, they are also the least important to making a successful connection. Since they share a standard interface to NetworkManager, they can be exchanged easily.
Якщо щось не працює
Де шукати джерело негараздів?
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).
- Are you actually using NetworkManager on your system? Mandriva doesn't use it. ArchLinux uses wicd. Moblin uses Connman.
- 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.
- Try to configure a connection using your distro's system configuration tools, so SystemSettings picks it up. It's unlikely but worth a go.
- 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.
- 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.