Techdoc információs technológiák, recenziók, cikkek hírek

DF bitprobléma és fragmentáció a GRE alagutakban

Néha, ha a forgalom áthalad a GRE-alagúton, akkor sikeresen pingelhet bármelyik állomást az interneten, de az interneten nem tud böngészni vagy fájlokat átvinni az FTP protokollal. Ebben a cikkben megvizsgáljuk a probléma szokásos okait, és számos megoldást kínálunk.

Csomagtöredezettség és ICMP üzenetek

Tekintsük az alább látható hálózati diagramot. Két R1 és R2 útválasztó egy nagycsatornát alakított ki.

Ebben az ábrán, amikor az Ügyfél internetes weboldalt szeretne elérni az interneten, létrehoz egy TCP-munkamenetet a webkiszolgálóval. E folyamat során az Ügyfél és a webkiszolgáló bejelentik egymásnak a maximális szegmensméretet (MSS), jelezve, hogy ilyen méretig kaphatnak TCP szegmenseket. Miután megkapta az MSS opciót, minden eszköz kiszámolja a küldendő szegmens méretét. Ez az úgynevezett Send Max Segment Size (SMSS), és ez egyenlő a két MSS legkisebb értékével.

Példánkban azonban a webszerver úgy dönt, hogy legfeljebb 1500 bájtos csomagokat küldhet. Ezért egy 1500 bájtos csomagot küld az Ügyfélnek, és az IP fejlécben a DF (nem töredék) bitet állítja be, azaz. a csomag nem fragmentálható. Amikor a csomag eléri az R2-t, az útválasztó megpróbálja beágyazni az alagútcsomagba. A GRE alagút interfész esetében az IP MTU 24 bájt kisebb, mint a valós kimenő interfész IP MTU-je. A kimenő Ethernet interfész esetében ez azt jelenti, hogy az IP MTU az alagút felületén 1500 mínusz 24 vagy 1476 bájt.

R2 megpróbál egy 1500 bájtos IP-csomagot egy 1476 bájtos IP-MTU interfésszel felborítani. Mivel ez nem lehetséges, R2 fragmentálására a csomag, ami egy csomag 1476 byte (adatok és IP fejléc) és egy csomag 44 byte (24 byte adat és egy új IP fejléc 20 bájt). Az R2 ezután mindkét csomagot kapszula 1500 és 68 bájtos csomagok befogadására. Ezeket a csomagokat mostantól egy olyan valós interfészen keresztül lehet elküldeni, amely egy 1500 bájtos IP MTU-t tartalmaz.

Ne felejtsük azonban el, hogy az R2 router által kapott csomag rendelkezik a DF bit beállításával. Így az R2 nem tudja feltöredezni a csomagot, és helyett inkább arra utasítja a webszervert, hogy küldjön kisebb csomagokat. Teszi ezt küldésével webszerver ICMP típus 3. kód 4 csomag (Destination Unreachable; fragmentáció szükséges és DF set), ami azt jelenti, hogy a megadott csomópont nem áll rendelkezésre, fragmentáció szükséges, de DF bittel. Ez az ICMP üzenet tartalmazza a helyes MTU-t a webszerver számára, amelyiknek meg kell kapnia, és ennek megfelelően módosítania kell a csomagméretet.

Megnézhetjük az R2-ből visszanyert ICMP csomagokat a debug ip icmp parancs segítségével.

ICMP: dst (10.10.10.10) frag. szükséges és a DF elérhető elérhetetlen 10.1.3.4

A probléma általában akkor fordul elő, amikor az ICMP-üzenetek blokkolva vannak a webszerver felé vezető úton. Ha ez megtörténik, az ICMP csomag soha nem ér el a webkiszolgálót, így akadályozva az ügyfél és a kiszolgáló közötti adatáramlást. A probléma négyféle módon oldható meg:

Megtudhatja, hol blokkolják az ICMP-üzeneteket, és megnézhetjük, hogy megoldjuk-e az átjárót.

Telepítse az MTU-t a Client interfészre 1476 bájtra, így az SMSS kisebb lesz, így a csomagokat nem kell töredékesnek lennie, amikor eléri az R2-et. Azonban, ha megváltoztatja az MTU-t az Ügyfél számára, az MTU-t az ezen a hálózaton lévő összes eszközön is módosítania kell ezzel az Ügyféllel. Az Ethernet szegmensen meglehetősen nagyszámú eszköz lehet.

Használjon proxykiszolgálót az R2 és az átjáró között.

  • Ha GRE tunnel fut csatornákon keresztül lehet több, mint az MTU 1500 byte-plus az alagút fejléc, a másik megoldás az, hogy növelje az értékét MTU 1524 (1500 plusz 24 GRE) minden csatornán és interfészek között útválasztók alkotó GRE

  • Ha a fenti lehetőségek nem megvalósíthatók, akkor a következő megoldások hasznosak lehetnek:

    1) Használja a házirend-elosztást (PBR) a DF bit IP-csomagokban történő visszaállításához

    interfész ethernet0
    .
    ip politika útvonal-térkép clear-df

    útvonal-térkép clear-df engedély 10
    illeszkedjen a 101-es IP címhez
    állítsa be az ip df 0 értéket

    access-list 101 engedélyezi a tcp 10.1.3.0 0.0.0.255 bármelyikét

    Ez a konfiguráció lehetővé teszi az IP csomag töredezettségét, mielőtt beágyazódna a GRE-be. A befogadó állomásnak ezt követően IP-csomagokat kell összeállítania a töredékekből. Ez általában nem jelent problémát.

    2. Módosítsa a TCP MSS opció értékét a routeren áthaladó SYN csomagokban. Ez csökkenteni fogja az értékét MSS TCP SYN csomagot úgy, hogy kisebb vagy egyenlő, az értéket a parancs ip tcp állítsa-MSS, ebben az esetben 1436 (MTU mérete mínusz IP, TCP és a GRE fejléc). Most a célállomás fog küldeni TCP / IP csomagokat nem nagyobb, mint ez az érték.

    3. A végső megoldás az, hogy növelje az IP MTU az alagút felület értéke 1500. növelése azonban alagút IP MTU vezet az a tény, hogy alagút csomagok töredezett, mert a DF bit nem az eredeti csomag másolódik a GRE fejlécet. Ebben a forgatókönyvben a GRE-alagút másik végén lévő útválasztónak újra össze kell állítania a GRE csomagot, mielőtt törölheti a GRE fejlécet, és továbbíthatja a belső csomagot.


    Az IP-csomag a CPU-ra épül, és aktívan használja a router memóriáját. Ezért ez a választás jelentősen csökkentheti a csomagok áteresztőképességét a GRE-alagúton keresztül.

    És végül, a leggyakoribb ok, hogy nem tudnánk böngészni az internetes oldalakat a GRE-alagúton keresztül, a fent említett fragmentációs probléma miatt. A megoldás az, hogy lehetővé tegye az ICMP számára, hogy az ICMP megoldást bármelyik fenti módszerrel átadja vagy megkeresse.