반응형
불가피하게 컨테이너에서 host의 iptables를 사용할 때가 있습니다. 일반 설정으로 컨테이너를 실행하면 host iptable을 조회하지 못합니다.
network namespce를 host로 설정
host의 iptables을 접근해야 하므로 host network namespace를 설정해야 합니다.
docker run --net host ...
privileged와 capability 설정
host 네트워크인터페이스에 접근해야되므로 privileged와 capablity가 필요합니다.
docker run --net host --privileged --cap-add=NET_ADMIN ...
privileged와 capability가 궁금하신 분은 이전 글을 참고해주세요!.
- privileged 이전글: https://malwareanalysis.tistory.com/584
- capability 이전글: https://malwareanalysis.tistory.com/587
iptables 타입 설정
iptables는 iptables-nft와 iptables-legacy타입이 있습니다. 컨테이너 iptables타입과 host iptables타입이 맞지 않으면, iptables조회가 안됩니다. 대부분 컨테이너 iptables에서 host iptables조회가 안되는 이유가 타입이 안맞아서입니다.
아래 예제는 python3.9컨테이너에서 iptables을 설치 했을 때, 설치되는 iptables 타입입니다.
legacy타입으로 변경해야 한다면 아래 명령어로 iptables 타입을 변경할 수 있습니다
update-alternatives --set iptables /usr/sbin/iptables-legacy
참고자료
반응형
'전공영역 공부 기록' 카테고리의 다른 글
linux에서 GPU card목록 확인 (0) | 2023.06.23 |
---|---|
프로메테우스 오퍼레이터에서 pod label수집 (0) | 2023.06.11 |
vscode에서 ansible-lint 오류 (0) | 2023.05.31 |
yum No more mirros to try 에러 (0) | 2023.05.30 |
그라파나 배경화면 색깔을 하얀색으로 변경방법 (0) | 2023.05.22 |