libnl, Netlink library에 대해
2022. 6. 25. 19:44
요약
libnl suite은 Linu kernel 인터페이스들에 기반한 netlink protocl에 대한, API들을 제공하는 라이브러리의 모음집입니다. Netlink는 아시다시피, 주로 커널과 유저 공간 스페이스 사이에서의 IPC 매커니즘의 일종인데요.
그것은 좀더 유연한, ioctl의 후계자가 되기 위해 설계되었는데요, 주로 커널 Configuration 그리고 monitoring interface들과 관련된 네트워킹을 제공합니다.
라이브러리들
인터페이스들은 각각 작은 라이브러리들로 쪼개져 있는데요, 애플리케이션이 단일 비대해진 라이브러리에 연결되도록 강제하진 않습니다. 즉, 앱이 큰 하나의 라이브러를 강제로 link 하도록 하지 않게 쪼개져 있습니다.
libnl
코어 라이브러리 입니다. 이 라이브러리는 netlink 프로토콜을 사용하기 위해 요구되는 기초적인 부분이 구현되어 있씁니다. 가령;
- socket handling
- message construction and parsing, and sending and receiving of data
이 라이브러리는 작고 간단하게 만들어졌습니다. 모음집의 다른 라이브러리들은 이 라이브러리에 의존합니다. 즉, 다른 라이브러리들이 사용하기 위한, 가장 기초적인 라이브러리라고 생각하시면 됩니다.
libnl-route
NETLINK_ROUTE family의 configuration interface들에 대한 API입니다, 그것들은
- network interfaces,
- routes,
- addresses,
- neighbours, and traffic control
을 포함합니다.
libnl-genl
일반적인(generic) netlink protocl에 대한 API입니다. 이것은, netlink protocol의 확장된 버전입니다.
libnl-nf
netfilter configuration 그리고, monitoring interface들(conntrack, log, queue)에 기반한 netlink에 대한 API입니다.
설치
libnl 라이브러리를 설치하는 가장 쉬운 방법은, 우리의 linux distribution의 현존하는 패키지를 사용하는 것 입니다. 아래의 테이블을 보면, distribution에 따라, 가능한 패키지 목록이 있습니다.
하나 주의하셔야 할게 있는데, 아마 해당 목록들이 최신이 아닐 수 있습니다. 설치하는 방법에 대해, 더 많은 정보를 얻고 싶으면, 여러분의 distribution의 manual을 참고하세요
참고자료/출처
'Linux > Linux' 카테고리의 다른 글
[Linux] 표준 에러 코드 (0) | 2022.11.20 |
---|---|
[Linux] xfrm command (0) | 2022.06.28 |
[Linux/Nelink] Netlink attribute 추가하는 코드 분석 (0) | 2022.06.18 |
Unix Domain Socket (AF_UNIX) (0) | 2022.06.07 |
[Linux/ip] GRE tunnel 생성하기 (ip tunnel 커맨드 이용) (2) | 2022.06.07 |