From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.2.5 Message-ID: <51868E92.1000204@altlinux.org> Date: Sun, 05 May 2013 18:53:38 +0200 From: "Peter V. Saveliev" Organization: ALT Linux Team User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: ALT Linux Team development discussions Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [devel] =?utf-8?q?A=3A_pyroute2_=E2=80=94_python_netlink_interfac?= =?utf-8?q?e?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 May 2013 16:54:53 -0000 Archived-At: List-Archive: List-Post: … Краткий анонс. В связи с некоторым проектом снова поднял тему netlink, и переписал библиотеку на pure python, без ctypes, т.о. избежав проблем с selinux. Может работать в средах вроде RHEL «искаропки», не требуя сторонних библиотек и не вылезая за рамки стандартной модели питона. В общем, библиотека работы с netlink. На данный момент: * decoder/encoder сообщений netlink, работает в обе стороны * простой формат описания сообщений, доступен даже младшеклассникам * возможность удалённой работы с netlink, с аутентификацией по сертификатам TLS/SSL (SASL планируется) Для rtnetlink: * адреса, интерфейсы, ARP-записи и маршруты, остальное в планах * транзакционная база данных, интерфейсы как контекст-менеджеры («with») Примеры: … from pyroute2 import iproute ip = iproute() ip.get_links() … from pyroute2 import ipdb ip = ipdb() ip.tap0.address = '00:11:22:33:44:55' ip.tap0.ipaddr.add(('10.0.0.1', 24)) ip.tap0.ipaddr.add(('10.0.0.2', 24)) ip.tap0.ifname = 'vpn' ip.tap0.commit() # now it is «vpn»: ip.vpn.up() ip.vpn.commit() … Больше примеров в документации. ipdb работает на событиях netlink, т.е. база данных в постоянной синхронизации с актуальными настройками ip-стека, вне зависимости от того, что используется для настройки — хоть etcnet, хоть network manager, хоть самодельные скрипты, использующие ifconfig. До конца месяца планирую закинуть это в федору, как более-менее внутренние API устаканятся. Если кому пригодится в Сизифе — пинайте, туда выложу тоже. Если кто сам захочет выложить, тогда могу нужным образом подогнать репозитарий к схеме сборки. Ссылки: home: https://github.com/svinota/pyroute2 bugs: https://github.com/svinota/pyroute2/issues pypi: https://pypi.python.org/pypi/pyroute2 docs: http://peet.spb.ru/pyroute2/ -- Peter V. Saveliev