Protokoll 47 versus TCP-port 47: kaks päist, kaks reeglit
Protokollinumber ja port elavad erinevates päistes, seega üks reegel ei saa teist asendada. PPTP eraldab need kaks, ja pordiväli ei suuda GRE-d väljendada.
Hotellivõrgud ja konverentsi tulemüürid näitavad sageli kohandatud lubamisvälja, ja keegi trükib sinna 47, lootes et PPTP hakkab tööle. Reegel luuakse, tunnel ikka ei tööta, ja järgmine katse kasutab teist numbrit. Viga peitub paketis endas: IPv4-l on protokolliväli, mis nimetab, mis järgneb IP-päisele, samas kui TCP-l ja UDP-l on pordiväljad, mis eksisteerivad alles siis, kui oled ühe sellise päise sees. Need ei ole sama loa kaks kirjaviisi.
IPv4 päis nimetab järgmise protokolli
Protokolliväli on IPv4 päises üks bait ja sisaldab arvu, mis kirjeldab koormust: 6 TCP jaoks, 17 UDP jaoks, 47 GRE jaoks, 50 ESP jaoks. Kõik, mis pakette filtreerib, loeb seda väärtust enne sügavamale vaatamist, sest sügavam päis on mõttekas alles siis, kui tüüp on teada. Muuda vestluse hiljem porti ja see väli ei ole liikunud.
Seega kirjeldab protokolli 47 vastu kirjutatud reegel IP-kihti. Ükski port ei osale otsuses üldse.
Pordid eksisteerivad TCP ja UDP sees, mujal mitte
Pordid on kuueteistkümnebittised identifikaatorid TCP ja UDP päistes, ja nende ülesanne on eraldada vestlusi, mis jagavad ühte aadressi. GRE päis kannab protokollitüübi väärtust, sageli EtherType'i, pluss valikulised võtmed multipleksimiseks. Seetõttu ei nimeta väljend port 47 midagi, millega GRE pakett võiks sobida.
Tulemüüride liidesed erinevad selle poolest, kui palju sellest nad näitavad. Mõned aktsepteerivad protokollinumbrit, mõned pakuvad nimekirja, ja vähesed aktsepteerivad ainult TCP-d või UDP-d koos portidega.
PPTP kasutab mõlemat kihti korraga
PPTP on kõige selgem näide, sest see jagab oma töö teadlikult kahe kihi vahel. Juhtühendus on TCP-sessioon pordile 1723 ja andmetee on GRE, protokoll 47, ilma et kuskil oleks porti. Tulemüür, mis lubab 1723 ja mitte midagi muud, laseb läbirääkimistel alata ja viskab seejärel koormuse ära. Tunnel näib pärast autentimist rippuvat, selle asemel et ühenduda ebaõnnestuda, ja seetõttu teatatakse sümptomist sageli parooliprobleemina.
| Path | Outer protocol | Port |
|---|---|---|
| Control channel | TCP, protocol 6 | 1723 |
| Data channel | GRE, protocol 47 | None |
Lugege kahte rida eraldi, kui reeglit kirjutate, ja kontrollige mõlemat müüja süntaksi vastu. Üks rida vajab porti, teine vajab protokollinumbrit, ja ükski üksik kirje ei kata mõlemat.
Miks pordisuunamise leht ei suuda GRE-d väljendada
Suunamisvorm, mis aktsepteerib ainult TCP-d ja UDP-d, ei suuda GRE-d kirjeldada, ükskõik kuidas vormi nimetatakse. Aadresside tõlkimine lisab teise raskuse, sest GRE-l pole porte ja tõlkija peab selle asemel järgima kõne identifikaatorit. Mõned koduruuterid tulevad abilisega, mis sellega hakkama saab; paljud mitte, ja ükski täiendav TCP lubamiskirje ei loo sellist käitumist.
Kui tegelik nõue on kaasaegne tunnel, valige lahendus, mis kasutab teadlikult TCP-d või UDP-d, selle asemel et loota, et tõlkija arvab õigesti.
Kapseldamine otsustab, mida filter näeb
Kapseldamine muudab välimist paketti, ja välimine pakett on see, millega reegel sobib. Native ESP on protokoll 50, samas kui NAT-i läbimine mässib ESP UDP 4500 sisse, et see jääks aadressitõlkimisest ellu. Filter, mis lubab UDP 4500, ei näe kunagi protokolli 50, ja protokolli 50 jaoks kirjutatud filter ei sobi kunagi mässitud kujuga.
Küsige, millises kapseldamises klient ja lüüs kokku leppisid, ja kirjutage siis reegel täpselt selle välimise kuju jaoks ega millelegi muule.
Kirjutage reegel nii, et keegi saab seda kontrollida
Väljendage iga reeglit aadressiperekonna, välimise protokolli, transporthoobade (kui neid on), suuna ja mõlema otspunktina. Ülevaataja saab seda lauset paketifailiga võrrelda ja otsusele jõuda. Juhist avada 47 ei saa keegi kontrollida, ja just seetõttu püsib see aastaid protseduuriraamatutes.
Lisage test, mis seda tõestab: ühenduge, tehes samal ajal salvestust välimisel liidesel, ja kinnitage välimine protokoll ja port, mis jäljes tegelikult ilmuvad.