Am un pod cu un IP de cluster de 10.233.70.35 într-un cluster Kubernetes 1.19 bare metal cu Calico 3.16.9 ca CNI. Să numim asta Podul A
. În majoritatea nodurilor (care este diferit de nodul lui Podul A
), o păstaie (Podul B
) în același spațiu de nume Kubernetes poate ajunge Podul A
așa cum se arată în pcap de pe nodul unde Podul A
este dedesubt:
# tcpdump -vv -i calib33bd7211a6|grep 10.233.109.62
tcpdump: ascultare pe calib33bd7211a6, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți
10.233.109.62.60372 > 10.233.70.35.tproxy: steaguri [S], cksum 0x16af (corect), seq 2138999970, win 64240, opțiuni [mss 1460,sackok586p0, lungime sack]
10.233.70.35.tproxy> 10.233.109.62.60372: Flags [S.], CKSUM 0XC961 (INCORRECT -> 0x579E), SEQ 3985188010, ACK 2138999971, NOP 65160, OPȚIUNI [MSS 1460, SACKOK, TS VALL 4061902615 ECR 20891466 ,wscale 7], lungime 0
10.233.109.62.60372 > 10.233.70.35.tproxy: Flags [.], cksum 0x82fd (corect), seq 1, ack 1, win 502, options [nop,nop,TS val 2089146606 ecr0] 4606
# tcpdump -vv -i tunl0|grep 10.233.109.62
tcpdump: ascultare pe tunl0, RAW de tip link (IP brut), dimensiunea capturii 262144 octeți
10.233.109.62.34294 > 10.233.70.35.tproxy: steaguri [S], cksum 0xbd5b (corect), seq 1964000002, win 64240, opțiuni [mss 1460,sack length,sack 1460,sack length,sac 0xbd5b (corect), seq 1964000002, win 64240, options [mss 1460,sack length]
10.233.70.35.tproxy> 10.233.109.62.34294: Flags [S.], CKSUM 0XC961 (INCORRECT -> 0x7B0B), SEQ 1667300057, ACK 1964000003, WIN 65160, OPȚIUNI [MSS 1460, SACKOK, TS VAL 4061982287 ECR 1018637359, NOP NOP ,wscale 7], lungime 0
10.233.109.62.34294 > 10.233.70.35.tproxy: Flags [.], cksum 0xa66a (corect), seq 1, ack 1, win 502, options [nop,nop,TS val 1018637359 ec]
10.233.109.62.34294 > 10.233.70.35.tproxy: Flags [F.], cksum 0x592f (corect), seq 1, ack 1, win 502, options [nop,nop,TS val 1018657120 ec91], lungime
10.233.70.35.tproxy > 10.233.109.62.34294: steaguri [F.], cksum 0xc959 (incorect -> 0x0bec), seq 1, ack 2, win 510, opțiuni [nop,nop,TS ecr 82570, lungime] 0
10.233.109.62.34294 > 10.233.70.35.tproxy: Flags [.], cksum 0x0bf3 (corect), seq 2, ack 2, win 502, options [nop,nop,TS val 10186571307 ecr]
Cu toate acestea, în unele mașini (care este din nou diferit de nodul lui Podul A
), o păstaie (Pod C
) în același spațiu de nume k8s nu poate ajunge Podul A
deși este capabil să ajungă la tunelul de Podul A
nodul lui, așa cum se arată mai jos:
# tcpdump -vv -i calib33bd7211a6|grep 10.233.82.51
tcpdump: ascultare pe calib33bd7211a6, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți
# tcpdump -vv -i tunl0|grep 10.233.82.51
tcpdump: ascultare pe tunl0, RAW de tip link (IP brut), dimensiunea capturii 262144 octeți
10.233.82.51.35038 > 10.233.70.35.tproxy: steaguri [S], cksum 0xc924 (corect), seq 2532090843, win 64240, opțiuni [mss 1460,sackum 1460,sack5908, TSm 0xc924, 0xc924]
10.233.82.51.35038 > 10.233.70.35.tproxy: steaguri [S], cksum 0xc529 (corect), seq 2532090843, win 64240, opțiuni [mss 1460,sack 1460,sackook794,TScale, val 0303090843, TS0308OK793, TS0303
10.233.82.51.35038 > 10.233.70.35.tproxy: steaguri [S], cksum 0xbd49 (corect), seq 2532090843, win 64240, opțiuni [mss 1460,sack 1460,sackock90c, tscale lungime, 0xbd49, TS0323232090843
10.233.82.51.35038 > 10.233.70.35.tproxy: steaguri [S], cksum 0xacc9 (corect), seq 2532090843, win 64240, opțiuni [mss 1460,sackOK, TScr 3149, TScr 3149, TScr 3149]
10.233.82.51.35038 > 10.233.70.35.tproxy: steaguri [S], cksum 0x8cc9 (corect), seq 2532090843, win 64240, opțiuni [mss 1460, sackOK, TS 930 val, 932090843]
10.233.82.51.35038 > 10.233.70.35.tproxy: steaguri [S], cksum 0x4dc9 (corect), seq 2532090843, win 64240, opțiuni [mss 1460,sack 1460,sackook394,TScale, val 06038OK394,TS 06060390843
10.233.82.51.35038 > 10.233.70.35.tproxy: steaguri [S], cksum 0xc9c8 (corect), seq 2532090843, win 64240, opțiuni [mss 1460,sack 1460,sack29c8,TScale, 0xc9c8, TSm 0xc9, 0xc9c8 val
Ce aș putea face pentru a remedia asta astfel Podul A
este accesibil de către orice pod din oricare dintre noduri?
Toate nodurile sunt în aceeași subrețea, dar răspândite pe două switch-uri L2. Această problemă pare să apară pentru unele dintre nodurile din unul dintre comutatoare, totuși de atunci Podul A
mașina lui a fost atinsă prin tunel, această observație este irelevantă.