lo
패키지 없이 systemd의 네트워크 인터페이스를 PID1로 설정하는 구성 요소/패키지는 무엇입니까 ifupdown
?
데비안에는 네트워크를 관리하기 위한 꽤 많은 구성 요소가 있습니다 ifupdown
. 이제 패키지를 제거할 수 있습니다 . 즉, 시작하는 동안 참조되지 않습니다 .network-manager
systemd-networkd
ifupdown
/etc/network/interface
ifup
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 거리 설정