Shared buffer, global drop


Dagens sjove fejlsøgning…

Nogle bestemte web-sites virkede ikke for klienter på bestemte typer af access-switche (de gamle 3560 fejlede, men de endnu ældre 3550 virkede fint). Man kunne se en TCP SYN (eller ICMP ECHO) blive sendt, men ikke noget svar.

Når man så lavede en SVI på samme switch med en adresse i samme VLAN, kunne man godt pinge serveren derfra.

Var der tale om noget filtrering / blacklisting af specifikke adresser fra hosting-provideren? (Checket via meatspace-netværket[1]). Næh, det var der ikke.

(En hel del) yderligere fejlsøgning viste, at når man slog ‘mls qos’ fra, så virkede det fint[2].

Et ‘tcpdump’ af trafikken viste, at den var mærket med ToS=0x20 (CS1). Hvem fanden bruger også Scavenger til noget som helst?

Der var på switchen ikke reserveret noget buffer-space til CS1 – “Vi bruger ikke Scavenger”[3] – og på en shared buffer-arkitetur, gælder at ingen (nul) buffer = drop pakke, uanset hvad belastningen er.

Derfor.

-A

[1] Tak, Michal!
[2] Men vi elsker jo QoS. Det gør vi. Næsten lige så meget som tunnels og NAT.
[3] Men hvis vi ikke bruger Scavenger, kan vi med fordel nedmærke al transit-trafik til BE.