작성
·
240
0
안녕하세요 강사님,
8.6 네트워크 정책에 관한 강의를 듣다가 질문이 있어서 글을 남깁니다.
3-2-NetworkPolicy-ipBlock.yaml 파일을 apply 시켰을 때 기대되는 동작은
default
네임스페이스의 모든 파드들은 172.16.0.0/16
대역의 수신 트래픽만 허용, 172.16.0.0/17
대역의 송신 트래픽만 허용.
제가 궁금한 것은 해당 네트워크 정책을 apply 시킨 후 호스트 상에서 pod에 ping을 날렸는데 답변이 잘 온다는 점이었습니다. 현재 호스트의 ip 대역은 네트워크 정책을 만족하지 못함에도 말이죠.
혹시 호스트는 네트워크 정책을 bypass 할 수 있나? 해서 뒤의 실습에서도 테스트 해봤는데 4-2-NetworkPolicy-namespaceSelector-dev2.yaml
의 경우에는 호스트에서 ping을 날려도 답변을 받지 못하더군요. 아마 호스트는 dev2
네임스페이스가 아니라고 인식했기 때문이겠죠.
그러면 결론적으로 왜 3-2 실습의 경우 호스트의 request를 허락해주었을까? 가 궁금합니다. 두 가지 가능성이 있을 거 같아요.
제가 알고 있는 호스트의 ip 192.168.1.10
이 아니다. 이는 가상의 ip 이었다.
쿠버네티스의 네트워크정책 중 ipBlock
태그에 한해서만 호스트는 이를 무시하고 요청을 할 수 있다.
그 외
긴 질문 읽어주셔서 감사합니다. 시간 날 때 답변주시면 감사하겠습니다!
답변 1
0
안녕하세요
좋은 질문에 감사드립니다.
위의 내용을 기초에 보면, 호스트를 m-k8s로 의도하여 적어주신 것 같습니다.
네트워크 적으로 볼 때, 다양한 경로가 있는 경우에 최적의 경로로 (가능한 또는 의도적) routing을 잡혀 있습니다.
그렇다 보니 destination과 source를 시스템에서 정하는데, 현재에는 reachable한 tunl0
인터페이스를 source로 사용하여 도달하게 되는 것입니다.
해당 부분에 대해서 더 궁금하신 부분이 있다면 네트워크 쪽으로 더 학습해 보시면 아마 효과적으로 이해하실 수 있을 것 같습니다.
-=-=-=-=-=-
[root@m-k8s 8.6]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:0f:f7:2d brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
valid_lft 63754sec preferred_lft 63754sec
3: eth1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:4f:0f:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
4: docker0: mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:5c:74:e6:13 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
5:
tunl0@NONE:
mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000link/ipip 0.0.0.0 brd 0.0.0.0
inet 172.16.171.64/32 scope global tunl0
valid_lft forever preferred_lft forever
6: cali172770a77a7@if4: mtu 1480 qdisc noqueue state UP group default
link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
7: calif9524b144f3@if4: mtu 1480 qdisc noqueue state UP group default
link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 1
[root@m-k8s 8.6]# k get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-ipblock-5c59b69d84-nq64v 1/1 Running 0 4m47s 172.16.132.6 w3-k8s
deploy-ipblock-5c59b69d84-pwfzf 1/1 Running 0 4m47s 172.16.221.139 w1-k8s
deploy-ipblock-5c59b69d84-w29qp 1/1 Running 0 4m47s 172.16.103.133 w2-k8s
important-front-84d9fd49ff-w7f24 1/1 Running 0 3d17h 172.16.103.131 w2-k8s
net 1/1 Running 0 10m 172.16.132.4 w3-k8s
nfs-client-provisioner-7596fb9c9c-frlnb 1/1 Running 1 (3d18h ago) 3d19h 172.16.221.136 w1-k8s
[root@m-k8s 8.6]# curl --interface eth1 172.16.132.6
^C
[root@m-k8s 8.6]# curl --interface eth0 172.16.132.6
^C
[root@m-k8s 8.6]# curl --interface tunl0 172.16.132.6
Q644+Ue9mwH3P3f5/d7n6/3/3+OEJ/4xCc+8YQYtQuJwB0kIp+JrzUTB7iJuweBf4baTlJ5oCqw11C/JHp+tnqBb1ngT4z8WgReTUGbWCBGq0qvKRFcHf4eT/ZFBKoLvMBGIbhiYkaQIjcAfLAK+D8z9YhjxMgsVUGc84+gyx9AYD0khXcMfLCmUBL68HMZ+PnHxyFw3Uwi8B8hgJYh7j4c7c8P
<snipped>