systemd: ifupdown 없이 lo 인터페이스를 설정한 사람은 누구입니까?

systemd: ifupdown 없이 lo 인터페이스를 설정한 사람은 누구입니까?

lo패키지 없이 systemd의 네트워크 인터페이스를 PID1로 설정하는 구성 요소/패키지는 무엇입니까 ifupdown?

데비안에는 네트워크를 관리하기 위한 꽤 많은 구성 요소가 있습니다 ifupdown. 이제 패키지를 제거할 수 있습니다 . 즉, 시작하는 동안 참조되지 않습니다 .network-managersystemd-networkdifupdown/etc/network/interfaceifup

ifconfig또한 NetworkManager 구성 파일의 모든 항목을 /etc/NetworkManager/NetworkManager.conf삭제 했는데 파일이 관리되지 않는다고 nmcli dev표시됩니다 lo.

$ nmcli dev
  :
lo               loopback  unmanaged    --                 

networkctl관리되지 않는 것으로도 표시됩니다 lo.

$ networkctl
IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           carrier     unmanaged 
  :

그런데 그래도 ( 적어도) lo오른 것 같아요.LOWER_UP

$ ip li
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

그리고 localhost에 대한 ssh가 작동합니다.

lo그렇다면 제 질문은 누가 이 인터페이스 를 고안했느냐는 것입니다 .

내 의도는 lo인터페이스를 비활성화하는 것이 아니라 누가, 언제, 어떻게 책임이 있는지 아는 것입니다.

답변1

루프백 인터페이스는 초기 시작 시(예: 네트워크 서버가 실행되기 전) 설정됩니다. 분포 간에는 큰 차이가 없는 것으로 보입니다. 현재 데비안위 아래라면lo/etc/network/interfaces에 구성되지 않은 경우에도 시작됩니다. 기술적으로는 변경될 수 있으며 lo, 예를 들어 ifupdown을 사용하여 재구성할 수도 있습니다(systemd-networkd?).

systemd의 초기 설정 부분은 이해하기 어려울 수 있습니다. 이는 단일 프로그램에 대한 코드(C로 작성됨)이며 설정 호출과 프로그램별 초기화가 혼합되어 있으며 구체적으로 문서화되지 않은 것 같습니다. 그러나 systemd 바이너리의 매뉴얼 페이지에는 내장 설정 작업의 예 중 하나로 루프백 인터페이스가 언급되어 있습니다.

Systemd에는 부팅 프로세스의 일부로 수행해야 하는 다양한 작업의 기본 구현이 포함되어 있습니다. 예를 들어 호스트 이름을 설정하거나 루프백 네트워크 장치를 구성합니다. 또한 /sys 또는 /proc와 같은 다양한 API 파일 시스템을 설정하고 마운트합니다.

systemd의 개념과 아이디어에 대한 자세한 내용은 원본 디자인 문서 [2]를 참조하세요.

구글은 알고 있다

https://www.google.com/search?q=systemd%20loopback

코드는 어디에 있습니까 - 결과 1:https://github.com/systemd/systemd/blob/master/src/core/loopback-setup.c

또한 이를 언급하는 개발자 블로그 게시물도 표시됩니다. 이 블로그 게시물은 systemd의 책임 여부를 확인하는 것보다 귀하의 질문에 더 구체적으로 답변하지 않습니다. 예를 들어, tmpfiles도 언급하지만 systemd-tmpfiles가 PID 1과 다른 바이너리 및 서비스 단위라는 점은 언급하지 않습니다. 명확하게 말하면 루프백 인터페이스는 코드에서 볼 수 있는 PID 1로 설정됩니다.

결과 3:

관리자를 위한 시스템, 8부
0pointer.de/blog/projects/the-new-configuration-files- 캐시됨 - 유사
2011년 4월 20일... 관리자를 위해 진행 중인 systemd 시리즈의 또 다른 에피소드: ... 호스트 이름 설정;루프백인터넷 장비

우리의 작은 제로 쉘 프로젝트[1]는 완전한 성공을 거두었습니다. 우리는 현재 대부분의 데스크톱 및 임베디드 배포판에 필요한 거의 모든 것과 서버에 필요한 것의 상당 부분을 다룹니다.

  • 모든 파일 시스템 확인 및 마운트

  • 모든 파일 시스템에서 할당량 업데이트 및 활성화
  • 호스트 이름 설정
  • 루프백 네트워크 장비 구성
  • SELinux 정책을 로드하고 부팅 시 필요에 따라 /run 및 /dev 레이블을 다시 지정합니다.
  • Java, Mono 및 WINE 바이너리와 같은 다른 바이너리 형식을 커널에 등록합니다.
  • 시스템 로케일 설정
  • 콘솔 글꼴 및 키맵 설정
  • 임시 및 휘발성 파일과 디렉터리 생성, 삭제 및 정리
  • 사전 마운트된 API VFS에 /etc/fstab의 마운트 옵션 적용
  • sysctl 커널 설정 적용
  • 미리 읽기 정보 수집 및 재생
  • utmp 시작 및 종료 기록 업데이트
  • 임의의 시드 로드 및 저장
  • 특정 커널 모듈의 정적 로딩
  • 암호화된 하드 드라이브 및 파티션 설정
  • 직렬 커널 콘솔에서 자동 getty 생성
  • 플리머스 유지 보수
  • 머신 ID 유지 관리
  • 시스템 시계의 UTC 거리 설정

관련 정보