Я использую кластер EKS на AWS, и в последнее время у меня периодически случаются сбои. Я обнаружил проблему с дублированием сетевых интерфейсов на одном из моих узлов, которые, как мне кажется, созданы Плагин AWS CNI.
Когда узел создан, у него есть 2 NIC. Но в какой-то момент позже в жизни узла создается третий сетевой адаптер (не мной), который вызывает странное поведение. Похоже, что rp_filter
отклоняет пакеты от ELB, поскольку пакет SYN появляется в messages
войти как марсианин.
Я должен добавить, что это, похоже, происходит только для сервисов, которые аннотированы как service.beta.kubernetes.io/external-traffic: OnlyLocal
Когда я отсоединяю третью сетевую карту, все возвращается в норму.
Мои вопросы
Некоторые доказательства:
netstat -s
показывает IPReversePathFilter: 666179
и увеличивается на единицу для каждого SYN из ELB точно.
tail /var/log/messages
показывает марсианские пакеты вот так
Nov 22 18:37:17 ip-192-168-90-83 kernel: IPv4: martian source 192.168.102.150 from 192.168.236.246, on dev eth0
Nov 22 18:37:17 ip-192-168-90-83 kernel: ll header: 00000000: 0e 76 b3 cc 10 f4 0e 6f 51 60 fa be 08 00 .v.....oQ`....
Когда я установил rp_filter=0
, то SYN от ELB больше не сбрасывается, и я вижу, что SYN-ACK направляются к ELB, но они никогда не попадают туда.