Rangkaian hotel dan tembok api persidangan sering memaparkan kotak kebenaran tersuai, dan seseorang menaip 47 ke dalamnya dengan harapan PPTP berfungsi. Peraturan itu dicipta, terowong masih gagal, dan percubaan seterusnya menggunakan nombor lain. Kesilapan terletak pada paket itu sendiri: IPv4 mempunyai medan protokol yang menamakan apa yang menyusul selepas pengepala IP, manakala TCP dan UDP mempunyai medan port yang hanya wujud apabila anda berada di dalam salah satu pengepala itu. Kedua-duanya bukan dua ejaan bagi kebenaran yang sama.

Pengepala IPv4 menamakan protokol seterusnya

Medan protokol ialah satu bait dalam pengepala IPv4, dan ia menyimpan nombor yang menerangkan muatan: 6 untuk TCP, 17 untuk UDP, 47 untuk GRE, 50 untuk ESP. Apa-apa yang menapis paket membaca nilai itu sebelum melihat lebih dalam, kerana pengepala yang lebih dalam hanya bermakna selepas jenis diketahui. Tukar port kemudian dalam perbualan, dan medan ini tidak bergerak.

Jadi peraturan yang ditulis terhadap protokol 47 menerangkan lapisan IP. Tiada port mengambil bahagian dalam keputusan itu langsung.

Port wujud di dalam TCP dan UDP, tidak di tempat lain

Port ialah pengecam enam belas bit di dalam pengepala TCP dan UDP, dan tugasnya ialah memisahkan perbualan yang berkongsi satu alamat. Pengepala GRE membawa nilai jenis protokol, selalunya EtherType, serta kunci pilihan untuk multipleks. Oleh itu frasa port 47 tidak menamakan apa-apa yang boleh dipadankan oleh paket GRE.

Antara muka tembok api berbeza dalam berapa banyak perkara ini dipaparkan. Sesetengah menerima nombor protokol, sesetengah menawarkan senarai bernama, dan beberapa hanya menerima TCP atau UDP dengan port.

PPTP menggunakan kedua-dua lapisan sekali gus

PPTP ialah contoh paling jelas kerana ia sengaja membahagikan kerjanya kepada dua lapisan. Sambungan kawalan ialah sesi TCP ke port 1723, dan laluan data ialah GRE, protokol 47, tanpa sebarang port terlibat di mana-mana. Tembok api yang membenarkan 1723 dan tiada yang lain membiarkan rundingan bermula dan kemudian membuang muatan. Terowong kelihatan tergantung selepas pengesahan bukannya gagal bersambung, dan itulah sebabnya gejala sering dilaporkan sebagai masalah kata laluan.

PathOuter protocolPort
Control channelTCP, protocol 61723
Data channelGRE, protocol 47None

Baca kedua-dua baris secara berasingan apabila menulis peraturan, dan semak setiap satu terhadap sintaks vendor. Satu baris memerlukan port, yang lain memerlukan nombor protokol, dan tiada satu entri pun merangkumi kedua-duanya.

Mengapa halaman pemajuan port tidak boleh menyatakan GRE

Borang pemajuan yang hanya menerima TCP dan UDP tidak boleh menerangkan GRE, apa pun nama borang itu. Terjemahan alamat menambah kesukaran kedua, kerana GRE tiada port dan penterjemah mesti mengikut pengecam panggilan sebaliknya. Sesetengah penghala pengguna disertakan pembantu yang mengendalikannya; banyak yang tidak, dan tiada entri kebenaran TCP tambahan akan mencipta tingkah laku itu.

Apabila terowong moden ialah keperluan sebenar, pilih reka bentuk yang sengaja menggunakan TCP atau UDP daripada berharap penterjemah meneka dengan betul.

Enkapsulasi menentukan apa yang dilihat oleh penapis

Enkapsulasi mengubah paket luar, dan paket luar itulah yang dipadankan oleh peraturan. ESP asli ialah protokol 50, manakala laluan NAT membalut ESP di dalam UDP 4500 supaya ia bertahan daripada terjemahan alamat. Penapis yang membenarkan UDP 4500 tidak pernah melihat protokol 50, dan penapis yang ditulis untuk protokol 50 tidak pernah sepadan dengan bentuk terbungkus.

Tanya enkapsulasi mana yang dipersetujui oleh klien dan get laluan, kemudian tulis peraturan untuk bentuk luar itu sahaja dan tidak lebih.

Tulis peraturan supaya seseorang boleh menyemaknya

Nyatakan setiap peraturan sebagai keluarga alamat, protokol luar, port pengangkutan jika ada, arah dan kedua-dua hujung. Penyemak boleh membandingkan ayat itu dengan tangkapan paket dan mencapai keputusan. Arahan untuk membuka 47 tidak boleh disemak oleh sesiapa, dan itulah sebabnya ia kekal bertahun-tahun dalam buku prosedur.

Tambah ujian yang membuktikannya: sambung sambil menangkap pada antara muka luar, dan sahkan protokol luar serta port yang benar-benar muncul dalam surih.

Artikel berkaitan