octopus-inside 설명 추가
This commit is contained in:
parent
be460d01bf
commit
4011b4ea7f
13
README.md
13
README.md
|
@ -116,6 +116,8 @@ LinkLocalAddressing=no
|
||||||
`octopus-outside`는 해당 컨테이너이름을 기반으로 설정되어있는 DNS서버의 A레코드를 컨테이너의 IP로 인식한다.
|
`octopus-outside`는 해당 컨테이너이름을 기반으로 설정되어있는 DNS서버의 A레코드를 컨테이너의 IP로 인식한다.
|
||||||
또한 서브넷, 게이트웨이는 현재 호스트의 기본서브넷, 기본게이트웨이를 인식하여 컨테이너내부(PID1의 environment variable로 지정)로 전달하며 이 정보를 토대로 `octopus-inside`가 실행시 네트워크 구성을 수행한다.
|
또한 서브넷, 게이트웨이는 현재 호스트의 기본서브넷, 기본게이트웨이를 인식하여 컨테이너내부(PID1의 environment variable로 지정)로 전달하며 이 정보를 토대로 `octopus-inside`가 실행시 네트워크 구성을 수행한다.
|
||||||
|
|
||||||
|
이 설정을 바탕으로 `systemd-nspawn`을 `execve(2)`콜을 수행하며 `octopus-outside`자신은 시스템에서 사라진다.
|
||||||
|
|
||||||
* 주의
|
* 주의
|
||||||
DNS서버는 설정하지 않으므로 미리 `/etc/resolv.conf`를 설정해놓아야한다(TODO?)
|
DNS서버는 설정하지 않으므로 미리 `/etc/resolv.conf`를 설정해놓아야한다(TODO?)
|
||||||
|
|
||||||
|
@ -144,6 +146,16 @@ Args:
|
||||||
|
|
||||||
`bindInterface`: ipvlan으로 연결할 nic이름을 지정한다.
|
`bindInterface`: ipvlan으로 연결할 nic이름을 지정한다.
|
||||||
|
|
||||||
|
## `octopus-inside` 설정
|
||||||
|
|
||||||
|
`octopus-inside`는 컨테이너 내부에서 `PID 1`프로세스의 environment variable을 인식하고 다음 3가지 작업을 하고 사라집니다.
|
||||||
|
|
||||||
|
1. `ipvlan`인터페이스를 찾아 `eth0`으로 리네임
|
||||||
|
2. 건내받은 정보를 토대로 IP주소, 서브넷주소, 게이트웨이주소를 eth0에 설정
|
||||||
|
3. eth0을 UP상태로 지정
|
||||||
|
|
||||||
|
이후 해당컨테이너는 외부와 통신이 가능하게됩니다.
|
||||||
|
|
||||||
## 참고
|
## 참고
|
||||||
|
|
||||||
[octopus-inside systemd서비스 파일](services/octopus-inside.service)
|
[octopus-inside systemd서비스 파일](services/octopus-inside.service)
|
||||||
|
@ -152,3 +164,4 @@ Args:
|
||||||
## Licensing
|
## Licensing
|
||||||
|
|
||||||
별다른 언급이 없는 한 이 프로그램은 [GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)로 배포됩니다.
|
별다른 언급이 없는 한 이 프로그램은 [GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)로 배포됩니다.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue