NetworkManager, 네트워크, 넷 플랜, ifupdown2 및 iproute2가 정확히 어떻게 상호 작용합니까?


20

나는 리눅스 내 쿠분투 18.04 워크 스테이션에서 네트워크에 대해 배우고, 나는 모두 있음이보고 NetworkManagernetworkd-dispatcher실행 :

oleg@eclectic:~$ sudo ps -ef | grep -i net
root        56     2  0 Oct11 ?        00:00:00 [netns]
root      1097     1  0 Oct11 ?        00:00:02 /usr/sbin/NetworkManager --no-daemon
root      1098     1  0 Oct11 ?        00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root      1250     1  0 Oct11 ?        00:00:02 /usr/sbin/inetd
root      1593  1097  0 Oct11 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper...

NetworkManager에 의해 "모든 것"을 처리하도록 구성된 것 같습니다 netplan:

oleg@eclectic:~$ cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

나는 그것이 설치되지 않은 경우 netplan모든 것을 전달할 것이라고 믿습니다 .networkdNetworkManager

에 많은 파일이 있으며 그 파일을 /etc/network/처리하는 것이 확실하지 않습니다. 많은 패키지가이 디렉토리를 사용하는 것 같습니다 :

oleg@eclectic:~$ dpkg -S /etc/network
avahi-daemon, ifupdown2, wpasupplicant, openvpn, postfix, netbase, avahi-autoipd, wireless-tools, clamav-freshclam: /etc/network

일부 인터넷 검색 후 내 초기 생각은이다 NetworkManager하고 networkd모두 실행하지만, netplan단 하나 실제로 일을하고되도록 구성을 생성합니다. 그러나 나는 이것을 어떻게 검증하고, 운영 체인을 파악하거나, dummy0에 대한 나의 사악한 계획에 맞게 그것을 구성하는 방법을 모른다.

질문 : NetworkManager, 네트워크 연결 및 네트워크 계획이 정확히 어떻게 작동합니까? 다시 말해서, 컴퓨터가 부팅 될 때 어떤 프로세스가 다른 프로세스를 처리합니까? 어떻게 도구 패키지의 좋아 net-tools, ifupdown2iproute2과 디렉토리와 같은 /etc/network/모든이에 적합? 마지막으로 명령 줄을 사용하여 어떻게 이것을 직접 파악하고 세부 사항을 배울 수 있습니까?

업데이트 : 높은 수준의 개요를 찾고 있지 않습니다. 오히려, 이러한 구성 요소가 커널 수준 또는 이와 유사한 방식에서 상호 작용, 충돌 또는 충돌을 피하는 방법을 알고 싶습니다.

답변:


15

systemd-networkd 활성화 된 구성이 /etc/systemd/network

NetworkManager자동 규칙을 따르는 반면 유선 연결을 찾으면 연결을 시도합니다.

둘 다 systemd서비스 로 활성화 및 비활성화되며 udev를 사용하여 시스템화하면 네트워크 어댑터 용 장치 파일이 생성됩니다. 일반적으로 동시에 두 기능을 모두 활성화하지 않았어야하지만 구성이 충돌하지 않도록주의해야합니다.

netplan네트워크 관리자가 시작하기 전에 자체 구성에 따라 구성을 만듭니다. 이러한 방식으로 netplan은 실제로 구성 추상화이며 systemd-networkd를 사용하거나 NetworkManager가 구성의 일부입니다.

iproute2명령 행에서 네트워크 인터페이스를 구성하기위한 도구 패키지입니다. 네트워크 관리자 및 이전 ifconfig와 유사한 링크 구성이 포함됩니다. 반면 net-tools, ipupdownifupdown2사용 네트워크 구성에서의 / etc / 네트워크 / 구성 및 구성 해제 인터페이스 인터페이스를 제공합니다.

ifupdown 또는 다른 버전을 사용하여 네트워크를 관리 할 수 ​​있지만 자동은 아니지만 시스템화 된 서비스를 사용하여 부팅시 네트워크를 시작할 수 있습니다.

ifupdown2systemd네트워크 인터페이스와 유사 하지만 의존성 그래프를 사용합니다 . 또한 그것은 같은 다른 도구에 대한 추상화 역할을합니다.iproute2


2
비교 / 대비에 감사하지만, 이러한 구성 요소가 서로 더 깊이 상호 작용하는 방식에 대해 더 많이 찾고있었습니다. 예를 들어 systemd와 NetworkManager가 동시에 동일한 인터페이스를 제어하려고 할 때 커널에서 정확히 어떻게됩니까? Networked / NetworkManager와 충돌하거나 충돌을 피하는 커널에서 iproute2 / ifupdown 도구는 무엇을합니까? udev / kernel 수준에서 어떤 인터페이스에 어떤 도구를 사용했는지 확인하기 위해 어떤 명령을 사용할 수 있습니까?
Oleg

내가 지금까지 그 netplan을 주장하는 많은 설명과 함께 일반 혼란이있는 한 본 적이 가장 최선의 방법으로 설명하기는 하나 네트워크 매니저 또는 systemd-networkd 있지만 두. 일부 링크가 도움이되었을 것입니다. 예 : manpages.ubuntu.com/manpages/cosmic/man5/netplan.5.html
Craig는

이것을 읽은 후 /etc/systemd/networksystemd-networkd가 활성화되어 실행중인 Ubuntu 19.10에서 구성 파일을 찾을 것으로 예상되며 해당 디렉토리가 비어 있습니다. 그러나에 파일이 /lib/systemd/network있습니다. 이것이 새로운 구성입니까? 불량 우분투? 오류?
Stephen Boston

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.