Puncte:0

Pachetele tunel sunt filtrate sau îndepărtate, de asemenea, anumite pachete precum BGP

drapel us

Încercam să-mi dau seama de ceva vreme. Așa că acum îmi încerc norocul aici...

Am câteva VM-uri care ar trebui să comunice cu non-VM-uri. Există 2 cazuri de utilizare.

Primele sunt BareMetal Machines de pe subrețeaua pe care se află routerul extern. Al doilea sunt mașinile din afara și din spatele porții către care se adresează routerul extern.

Deci avem aceste două căi de conexiune:

VM --> gateway de router extern --> gateway de internet --> gateway în altă parte --> altă mașină de pe această subrețea

VM --> router extern gateway --> internet gateway --> baremetal machine pe această subrețea

Deci, pentru a-l face și mai vizual: routerul extern va avea gateway-ul, de exemplu, la 10.5.1.10, iar serverul la care trebuie să ajungă se află la 10.5.1.80.

Deci totul este bine până acum, pachetele curg, dar nu toate. Și aici devine ciudat și caut motivul.

Deci, aceste VM rulează kubernetes și ar trebui să se conecteze la alte mașini baremetal de pe acea subrețea. Rețeaua care rulează este calico, așa că pachetele BGP sunt transferate.Lucrul ciudat este că acele pachete nu ajung niciodată la mașinile baremetal, dar se descurcă bine cu mașinile din afara subrețelei de routere externe. Așa că m-am uitat în date și am observat că pachetele deja dispar pe hypervisorul VM. Ele sunt încă vizibile pe dispozitivul de atingere, dar după aceea sunt doar pierdute.

Deci este destul de evident, ceva filtrează acele pachete. Întrebarea rămâne acum: de ce? Am o configurație greșită, am înțeles ceva greșit? Sau există o modalitate de a face ca întreaga configurație să înghită acele pachete? Am avut problema asta. tot cu pachete de flanel vxlan... .

Configurația mea în general este: openstack prin kolla, openvswitch, rețeaua externă este configurată ca rețea plată.

Am verificat regulile iptable, dar nu există reguli deloc pentru subrețea. Și așa cum s-a descris mai înainte, pachetele care sunt direcționate nu către rețeaua 10.5.0.0/16, ci de exemplu către rețeaua 10.50.0.0/16 care se află în afara acestui centru de date și este necunoscut pentru openvswitch/openstack. Deci asta are de-a face cu rețeaua externă configurată pe 10.5.0.0/16, care elimină acele pachete în mod ilegal.

Mai multe informatii:

Aceasta este interfața mașinii virtuale afișată de ovs-vctl.

    Port qvo503122c8-15
    etichetă: 1
    Interfață qvo503122c8-15

Punând tcpdump pe asta

tcpdump -i qvo503122c8-15 -vvv | grep bgp
tcpdump: ascultare pe qvo503122c8-15, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți

Rezultă absolut nimic. Dar comunicarea în general este vizibilă acolo. Privind dispozitivul principal, sunt încă acolo

tcpdump -i qbr503122c8-15 -vvv | grep bgp
tcpdump: ascultare pe qbr503122c8-15, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți
    10.5.3.44.53969 > 10.15.0.91.bgp: steaguri [S], cksum 0x17b7 (incorectă -> 0x0748), seq 607368, win 64860, opțiuni [mss 1410,sack 1410,sack,sac 4219383867 val 42193867 , lungime 0
    10.5.3.44.41505 > 10.15.0.92.bgp: steaguri [S], cksum 0x17b8 (incorectă -> 0x572f), seq 103292561, win 64860, opțiuni [mss 1410, TS4040, 4567, TS40, 4567] , lungime 0
    10.5.3.44.53969 > 10.15.0.91.bgp: steaguri [S], cksum 0x17b7 (incorect -> 0xff67), seq 607368, win 64860, opțiuni [mss 1410,sack 1410,sack 0x17b7, TS967621OK] , lungime 0
    10.5.3.44.49645 > 10.15.0.91.bgp: steaguri [S], cksum 0x17b7 (incorect -> 0xb20c), seq 137205467, win 64860, opțiuni [mss 1410, TS6720c, tsc7170, TS67071, TS67070, , lungime 0
    10.5.3.44.49787 > 10.15.0.92.bgp: steaguri [S], cksum 0x17b8 (incorectă -> 0x9dee), seq 608997803, win 64860, opțiuni [mss 1410, 625367, TS 1410, 625367, 0x9dee] , lungime 0

Pentru comparație, aceeași mașină, diferită VM, are și ea aceeași problemă și acele pachete dispar, dar în acest caz există unele mașini în afara aceluiași centru de date. Și acestea sunt atinse foarte bine pe subrețeaua lor. Pachetele înregistrate aici nu vor dispărea:

tcpdump -i qbr2d9b68d1-b7: -vvv | grep bgp        
tcpdump: ascultare pe qbr2d9b68d1-b7:, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți
    192.168.1.3.58395 > 10.5.0.177.bgp: steaguri [P.], cksum 0x0961 (corect), seq 2080765188:2080765207, ack 2634444892, opțiunile 2634444892, opțiunile 81765189, 81 TS 9253, 81 TS 929 653 : BGP
    10.5.0.177.bgp > 192.168.1.3.58395: steaguri [.], cksum 0xcc82 (incorect -> 0x44c4), secv 1, ack 19, win 502, opțiuni [nop,nop,TS val 2587187, TS val 2587187]

Totuși, un lucru pe care îl pot vedea acum: al doilea tcpdump arată că VM-ul comunică cu exteriorul prin propria sa adresă. În timp ce ceilalți încercau să comunice cu ip-ul plutitor. Pachetele IP plutitoare par a fi filtrate.

drapel us
Mie mi se pare o problemă MTU. Înainte de a trece de la linuxbridge la openvswitch în cloud-ul nostru openstack, am putea folosi dimensiunea MTU implicită de 1500 pentru VM. După comutare, a trebuit să configuram un MTU de 1422 pentru rețelele cu autoservire, numai rețelele furnizorilor nu au fost afectate de acest lucru.
thurlimann avatar
drapel us
mh nu m-am gândit la MTU, b/c dacă comunicarea trece la o rețea externă toate pachetele sunt transmise. totul este conectat la 40GbE cu pachete jumbo MTU, asta ar fi puțin ciudat dacă în cazul nostru MUT-ul implicit ar da lovitura, dar voi avea un test.
drapel us
Dar scrii „Așa că m-am uitat în date și am observat, pachetele deja dispar pe hypervisorul VM-ului. Sunt încă vizibile pe dispozitivul robinet, dar după aceea pur și simplu s-au pierdut”. Asta îmi spune că există o pierdere de pachete, nu-i așa?
thurlimann avatar
drapel us
Doar acele pachete tocmai au dispărut. De parcă ar fi filtrate. Toate celelalte pachete sunt în regulă.Deci pachetele VXLAN și pachetele BGP sunt afectate. Și pachetele care merg la o rețea externă cu doar un singur salt în rută nu sunt afectate. Deci, asta înseamnă că un pachet la 10.5.1.15 BGP va dispărea. Un pachet la 10.15.1.15 BGP nu va dispărea. și după cum s-a spus, pachetul a dispărut înainte de a părăsi hipervizorul.
thurlimann avatar
drapel us
Testat MTU mai mic, fără diferență. Deci nu, nu MTU.
thurlimann avatar
drapel us
Pachetele dispar *după* dispozitivul TAP, pe dispozitivul tap încă le văd cu tcpdump. Și nu este vorba despre comunicarea în interiorul rețelei, ci despre comunicarea în afara rețelei vms, ci în rețeaua publică configurată pentru openstack.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.