Назад | Перейти на главную страницу

Фильтр брандмауэра для подсети, чтобы разрешить доступ из модуля Kubernetes?

У меня есть экземпляр во внутренней подсети 10.128.0.0/20 с IP 10.128.0.53.

У меня есть служба Kubernetes, определенная как:

mysql           ExternalName   <none>         10.128.0.53   3306/TCP       151d

Как ни странно, если я установил правило брандмауэра, разрешающее только 10.128.0.0/20 или 10.128.0.0/9 к экземпляру (по адресу 10.128.0.53) он не подключается. Как будто сервис k8s получает доступ к подсети каким-то другим способом (NAT?)?

Какое правило брандмауэра нужно применить, чтобы разрешить доступ? Я не хочу иметь 0.0.0.0/0 в качестве источника - как есть на данный момент.


Когда правило брандмауэра было 0.0.0.0/0, дамп tshark:

chris@mysql8-book-1-vm:~$ sudo tshark -f "tcp port 3306" -i any
Running as user "root" and group "root". This could be dangerous.
Capturing on 'any'
    1 0.000000000  10.4.12.160 → 10.128.0.53  TCP 76 51818 → 3306 [SYN] Seq=0 Win=28400 Len=0 MSS=1420 SACK_PERM=1 TSval=2402747230 TSecr=0 WS=128
    2 0.000055238  10.128.0.53 → 10.4.12.160  TCP 76 3306 → 51818 [SYN, ACK] Seq=0 Ack=1 Win=28160 Len=0 MSS=1420 SACK_PERM=1 TSval=257905306 TSecr=2402747230 WS=128
    3 0.001203683  10.4.12.160 → 10.128.0.53  TCP 68 51818 → 3306 [ACK] Seq=1 Ack=1 Win=28416 Len=0 TSval=2402747232 TSecr=257905306
    4 0.001685970  10.128.0.53 → 10.4.12.160  MySQL 146 Server Greeting proto=10 version=8.0.16
    5 0.002183066  10.4.12.160 → 10.128.0.53  TCP 68 51818 → 3306 [ACK] Seq=1 Ack=79 Win=28416 Len=0 TSval=2402747233 TSecr=257905307
    6 10.006731817  10.128.0.53 → 10.4.12.160  TCP 68 3306 → 51818 [FIN, ACK] Seq=79 Ack=1 Win=28160 Len=0 TSval=257907808 TSecr=2402747233
    7 10.050067244  10.4.12.160 → 10.128.0.53  TCP 68 51818 → 3306 [ACK] Seq=1 Ack=80 Win=28416 Len=0 TSval=2402757279 TSecr=257907808
    ```

Если я правильно понимаю, у вас работает служба GKE, и вам нужны другие экземпляры в 10.128.0.0/20 чтобы получить доступ к вашему сервису.

Один из способов добиться этого с помощью правил FW - создать правило входа с исходным диапазоном 10.128.0.0/20 и целевой тег для сетевых тегов узлов GKE или, альтернативно, учетной записи службы назначения, используемой GKE, с указанием порта и протокола (в вашем случае TCP 3306).