Hallo Klaus, danke für deine Antwort. Ich habe noch ein wenig weiter getestet, aktuell mit flannel als Pod-Netzwerk (nun auf 10.244.0.0 statt 10.255.0.0), aber immer noch ohne Erfolg. Das Service-Netzwerk blieb auf 10.96.0.0. Am Dienstag, 24. Dezember 2019, 15:27:11 CET schrieb Klaus Fuerstberger: > Am 10.12.19 um 08:56 schrieb Jan Kohnert: > > root@debian-vm:~# nslookup google.de 10.96.0.10 > > ;; connection timed out; no servers could be reached > > > > root@debian-vm:~# telnet 10.96.0.10 22 > > Trying 10.96.0.10... > > telnet: Unable to connect to remote host: Connection refused > > Das heißt, daß die Verbindung erstmal klappt, der Host ist erreichbar, > aber nicht auf Port 22. Soweit klar, es waren auch nur Beispiele. Der Service-Pod unter der IP hat nur einen DNS-Server, daher "connection refused" > > root@debian-vm:~# telnet 10.96.0.10 53 > > Trying 10.96.0.10... > > telnet: Unable to connect to remote host: No route to host > > Du versuchst mit telnet einen TCP connect auf einen DNS daemon, welcher > auf Port 53 UDP lauscht. Das kann nicht klappen und deshalb "No route to > host" Das ist mir eben nicht so klar. Der DNS lauscht auch auf TCP Port 53 (auch wenn die Anfragen selbst natürlich über UDP gehen), so dass ein telnet zur Prüfung eigentlich gehen müsste. Auf dem Master (Gentoo) sieht es so aus: master ~ # telnet 10.96.0.10 53 Trying 10.96.0.10... Connected to 10.96.0.10. Escape character is '^]'. Connection closed by foreign host. master ~ # Mir ging es hier darum, dass offensichtlich irgendetwas die Pakete DROPt, was das "no route to host" erklären würde. Vermutlich sind es die Iptables-Regeln, die libvirt einführt, um das Networking für den Gast zu machen. Insgesamt sind es schon ziemlich viele Ebenen: Der Host mit Verbindung nach draußen, KVM/ LibVirt mit dem Gast und dem Gastnetzwerk (192.168.122.0), auf allen beiden noch Docker mit dem jeweiligen Docker-Netz (172.17.0.0) und schließlich Kubernetes obendrauf mit Service (10.96.0.0) und Pod (10.244.0.0) Netz. > > root@debian-vm:~# telnet 10.96.0.10 80 > > Trying 10.96.0.10... > > telnet: Unable to connect to remote host: Connection refused > > Ebenso wie oben bei SSH könnte hier, der Webserver, falls einer läuft > eine Einschränkung auf das Service Netzwerk 10.96.0.0/12 haben? Ebenso wie oben nur ein Beispiel, um den Unterschied deutlich zu machen. Das Problem der Sache ist, das die Kubernetes-Sachen komplett in Docker-Containern laufen. Ich komme da zwar mittels docker exec rein, habe aber nur die Kommandos, die in den Containern verfügbar sind. Im coredns-Container sind weder iptables noch eine Shell verfügbar. Der machen also definitiv keine eigenen Regeln. Allerdings gibt es noch die Docker-Iptables Regeln. Die sehen auf Master und Worker, soweit ich das beurteilen kann, identisch aus. Iptables-Regeln: Auf der VM: root@debian-vm:~# iptables -nvL Chain INPUT (policy ACCEPT 59 packets, 18952 bytes) pkts bytes target prot opt in out source destination 1280 94921 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */ 1280 94921 KUBE-EXTERNAL-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */ 3338K 1997M KUBE-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 48 2984 KUBE-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ 48 2984 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */ 48 2984 DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0 48 2984 DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 48 2984 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0 48 2984 ACCEPT all -- * * 10.244.0.0/16 0.0.0.0/0 0 0 ACCEPT all -- * * 0.0.0.0/0 10.244.0.0/16 Chain OUTPUT (policy ACCEPT 49 packets, 4164 bytes) pkts bytes target prot opt in out source destination 64421 4129K KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */ 3495K 312M KUBE-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER (1 references) pkts bytes target prot opt in out source destination Chain DOCKER-ISOLATION-STAGE-1 (1 references) pkts bytes target prot opt in out source destination 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 48 2984 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-ISOLATION-STAGE-2 (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * docker0 0.0.0.0/0 0.0.0.0/0 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-USER (1 references) pkts bytes target prot opt in out source destination 48 2984 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain KUBE-EXTERNAL-SERVICES (1 references) pkts bytes target prot opt in out source destination Chain KUBE-FIREWALL (2 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000 Chain KUBE-FORWARD (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ mark match 0x4000/0x4000 0 0 ACCEPT all -- * * 10.244.0.0/16 0.0.0.0/0 /* kubernetes forwarding conntrack pod source rule */ ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- * * 0.0.0.0/0 10.244.0.0/16 /* kubernetes forwarding conntrack pod destination rule */ ctstate RELATED,ESTABLISHED Chain KUBE-KUBELET-CANARY (0 references) pkts bytes target prot opt in out source destination Chain KUBE-SERVICES (3 references) pkts bytes target prot opt in out source destination root@debian-vm:~# Auf dem Master: master ~ # iptables -nvL Chain INPUT (policy ACCEPT 1578 packets, 264K bytes) pkts bytes target prot opt in out source destination 975K 74M KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */ 975K 74M KUBE-EXTERNAL-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */ 117M 20G KUBE-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 117M 20G LIBVIRT_INP all -- * * 0.0.0.0/0 0.0.0.0/0 107K 9337K f2b-sshd tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1148 170K DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0 1148 170K DOCKER-INGRESS all -- * * 0.0.0.0/0 0.0.0.0/0 116 8816 DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- * docker_gwbridge 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 DOCKER all -- * docker_gwbridge 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- docker_gwbridge !docker_gwbridge 0.0.0.0/0 0.0.0.0/0 91822 62M KUBE-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ 53274 3206K KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */ 91830 62M LIBVIRT_FWX all -- * * 0.0.0.0/0 0.0.0.0/0 91830 62M LIBVIRT_FWI all -- * * 0.0.0.0/0 0.0.0.0/0 57037 3433K LIBVIRT_FWO all -- * * 0.0.0.0/0 0.0.0.0/0 44 3997 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0 50 3391 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- * * 10.244.0.0/16 0.0.0.0/0 0 0 ACCEPT all -- * * 0.0.0.0/0 10.244.0.0/16 0 0 DROP all -- docker_gwbridge docker_gwbridge 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 1567 packets, 294K bytes) pkts bytes target prot opt in out source destination 1075K 65M KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */ 117M 22G KUBE-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 117M 22G LIBVIRT_OUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER (2 references) pkts bytes target prot opt in out source destination Chain DOCKER-INGRESS (1 references) pkts bytes target prot opt in out source destination 626 54028 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:4443 382 104K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED tcp spt:4443 116 8816 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-ISOLATION-STAGE-1 (1 references) pkts bytes target prot opt in out source destination 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker_gwbridge ! docker_gwbridge 0.0.0.0/0 0.0.0.0/0 50 3391 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 210 16204 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-ISOLATION-STAGE-2 (2 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * docker_gwbridge 0.0.0.0/0 0.0.0.0/0 0 0 DROP all -- * docker0 0.0.0.0/0 0.0.0.0/0 50 3391 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-USER (1 references) pkts bytes target prot opt in out source destination 1242 178K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain KUBE-EXTERNAL-SERVICES (1 references) pkts bytes target prot opt in out source destination Chain KUBE-FIREWALL (2 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000 Chain KUBE-FORWARD (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ mark match 0x4000/0x4000 0 0 ACCEPT all -- * * 10.244.0.0/16 0.0.0.0/0 /* kubernetes forwarding conntrack pod source rule */ ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- * * 0.0.0.0/0 10.244.0.0/16 /* kubernetes forwarding conntrack pod destination rule */ ctstate RELATED,ESTABLISHED Chain KUBE-SERVICES (3 references) pkts bytes target prot opt in out source destination Chain LIBVIRT_FWI (1 references) pkts bytes target prot opt in out source destination 34793 59M ACCEPT all -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED 0 0 REJECT all -- * virbr0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain LIBVIRT_FWO (1 references) pkts bytes target prot opt in out source destination 56943 3426K ACCEPT all -- virbr0 * 192.168.122.0/24 0.0.0.0/0 0 0 REJECT all -- virbr0 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain LIBVIRT_FWX (1 references) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0 Chain LIBVIRT_INP (1 references) pkts bytes target prot opt in out source destination 220 18217 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 862 283K ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67 0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67 Chain LIBVIRT_OUT (1 references) pkts bytes target prot opt in out source destination 862 285K ACCEPT udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68 Chain f2b-sshd (1 references) [...] --> der Übersichtlichkeit halber habe ich die geblockten Scriptkiddies weggelassen -- Mit freundlichen Grüßen Jan Kohnert
Attachment:
smime.p7s
Description: S/MIME cryptographic signature