티스토리 뷰
외부에서 특정 Host 상에 동작되는 VM에 접근하고자할때 다음과 같은 iptables 설정을 통해 접근을 할수 있다.
실제로 host에 VM에 동작되는 port가 listen되는것은 아니며 host는 지정된 목적지/Port 를 확인하여 packet을 forwarding 시켜주는 방식이다.
iptables에는 다음과 같은 rule이 추가되어야 한다.
## nat
-A PREROUTING -i eth0 -p tcp -m tcp --dport 6443 -j DNAT --to-destination 192.168.122.10:6443
## filter
-A FORWARD -o virbr0 -d 192.168.122.10 -p tcp --dport 6443 -j ACCEPT
간단히 설명하자면
VM(192.168.122.10:6443)에 접속하기 위해 DNAT로 host가 아닌 VM IP를 바라볼수 있도록 하고 FORWARD chain을 통해 실제 6443 port 로 forwarding 까지 수행해준다.
또한 여기서 virbr0라 표현한 bridge를 잘확인하여 추가하자.
KVM 가상화 환경에서 libvirt를 통한 연결을 하고 있다면 virsh net-info(혹은 net-dumpxml) 명령을 통해 bridge 명을 확인하여 추가하면 된다.
[root@localhost ~]# virsh net-info testnet
Name: testnet
UUID: 8xxxxxx0-1xx0-4xxf-9xxf-8xxxxxxxxxx4
Active: yes
Persistent: yes
Autostart: yes
Bridge: virbr0
만약 source 즉, 외부에 특정한 IP만 접근하게 하고자 한다면 다음과 같이 nat 에 -s 옵션을 추가하면 된다.
## nat
-A PREROUTING -s x.x.x.x/xx -i eth0 -p tcp -m tcp --dport 6443 -j DNAT --to-destination 192.168.122.10:6443
만약 VM까지 패킷 수신이 잘되고 VM에서 송신도 이루어졌는데 실제 client에서는 응답을 받지 못하는경우는
아래와 같은 rule이 존재하는지 확인해보면 좋다.
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
rule을 모두 넣었음에도 응답이 안되는 상황이 발생된다면
rule의 우선순위에 따라 다른 rule에 적용되었을 가능성이 있다.
이를 잘 확인해보는것이 중요하다.
참고사이트
'os > Linux' 카테고리의 다른 글
How to occur hung_task_panic on Rocky Linux (0) | 2021.11.03 |
---|---|
Ubuntu CVE Status (0) | 2021.03.17 |
Occuring timeout when use apt or curl or wget on WSL2 (0) | 2020.11.29 |
"Failed to set locale, defaulting to C.UTF-8" on CentOS 8 (0) | 2020.10.07 |
ubuntu 19.10(or 20.04) hangul key doesn't work at the chrome browser (0) | 2020.01.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- OpenStack
- Terraform
- K3S
- azure policy
- kubernetes install
- minio
- Jenkinsfile
- DevSecOps
- mattermost
- ceph
- openstacksdk
- nginx-ingress
- metallb
- crashloopbackoff
- socket
- Helm Chart
- minikube
- open policy agent
- vmware openstack
- ansible
- openstack backup
- macvlan
- GateKeeper
- hashicorp boundary
- kata container
- jenkins
- boundary ssh
- kubernetes
- aquasecurity
- wsl2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함