반응형
UTS 네임스페이스
다른 UTS 네임스페이스가 서로 다른 호스트 이름이나 도메인 이름(또는 `uname()`시스템 콜로
리턴된 정보(nodename, domainname))를 갖게 하는 기능을 제공
- `clone()` 또는 `unshare()` 시스템 콜을 사용할 때 `CLONE_NEWUTS` 플래그를 설정하여 생성
- nodename, domainname은 `sethostname()`, `setdomainname()`시스템 콜을 사용하여 설정
- 컨테이너 관점에서의 UTS 네임스페이스 기능은 각 컨테이너가 자체 호스트 이름과 `NIS` 도메인 이름을 가질 수 있도록 한다.
- `NIS(= Network Information System)`: 컴퓨터 네트워크 위의 컴퓨터들 사이에 있는 사용자와 호스트 이름과 같은 시스템 구성 데이터를 여러 곳에 제공한다.
- `NIS`는 다양한 네트워크 정보에 대한 중앙집중식의 제어를 제공함으로써 네트워크 관리를 쉽게 할 수 있도록 한다. `NIS`는 호스트 이름, 주소, 유저, 그룹 그리고 네트워크 서비스들에 대한 정보를 가지고 있다.
- 여러 클라이언트들의 `/etc/passwd`, `/etc/shadow`, `/etc/group` 정보 통합관리 가능
- `NIS(= Network Information System)`: 컴퓨터 네트워크 위의 컴퓨터들 사이에 있는 사용자와 호스트 이름과 같은 시스템 구성 데이터를 여러 곳에 제공한다.
- 단일 시스템으로 하여금 서로 다른 프로세스가 서로 다른 호스트 및 도메인 이름을 가지는 것처럼 보이게 한다.
- 호스트 이름에 종속적인 대부분의 어플리케이션에서 중요한 기능
- UTS 네임스페이스는 시스템의 `hostname`을 네임스페이스별로 격리시켜 준다. 더 자세히 설명하자면, 리눅스 시스템 콜 중 하나인 `uname()`에서 `new_utsname`이라는 구조체에 정의된 식별자 중 `nodename`, `domainname`을 격리(isolate) 시키는 것이다.
- 아래는 `/usr/include/linux/utsname.h`에 선언된 `new_utsname_struct`의 내용이다.
- UTS 네임스페이스는 시스템의 `hostname`을 네임스페이스별로 격리시켜 준다. 더 자세히 설명하자면, 리눅스 시스템 콜 중 하나인 `uname()`에서 `new_utsname`이라는 구조체에 정의된 식별자 중 `nodename`, `domainname`을 격리(isolate) 시키는 것이다.
#define __NEW_UTS_LEN 64
struct new_utsname {
char sysname[__NEW_UTS_LEN + 1];
char nodename[__NEW_UTS_LEN + 1];
char release[__NEW_UTS_LEN + 1];
char version[__NEW_UTS_LEN + 1];
char machine[__NEW_UTS_LEN + 1];
char domainname[__NEW_UTS_LEN + 1];
};
반응형
'운영체제 > LINUX' 카테고리의 다른 글
[Linux] 사용자(User) 네임스페이스 (0) | 2019.12.16 |
---|---|
[Linux] PID 네임스페이스 (0) | 2019.12.14 |
[Linux] IPC 네임스페이스 (0) | 2019.12.13 |
[Linux] 마운트 네임스페이스 (Mount namespace) 2 (0) | 2019.10.24 |
[Linux] 마운트 네임스페이스(Mount namespace) 1 (0) | 2019.10.24 |