Dua soalan menjadi kusut setiap kali L2TP, GRE dan IPsec muncul dalam nota reka bentuk yang sama: sesi mana yang saya bawa, dan lapisan mana yang melindunginya? Jika yang pertama salah, semua di bawahnya kekal konsisten secara dalaman tetapi menyelesaikan masalah yang salah — tindanan dihalakan yang dibina di tempat pengguna perlu mendail masuk, atau pemusat dial-in yang menggantikan get laluan tapak ke tapak. Lembaran kerja di bawah memaksa perbezaan itu sebelum sesiapa log masuk ke peranti. Isikan mengikut urutan dan setiap baris menjadi sesuatu yang boleh anda uji sendiri.

Mulakan daripada sesi, bukan daripada senarai protokol

Pengguna jauh yang memegang sesi PPP dan tindanan dihalakan antara dua get laluan ialah dua hubungan rangkaian yang berbeza, walaupun kedua-duanya akhirnya dibalut dalam IPsec. Yang pertama menamatkan pautan bagi setiap pengguna dan memerlukan peruntukan alamat, pengesahan orang atau peranti, dan dasar yang menamakan rangkaian dalaman mana yang boleh dicapai oleh pengguna itu. Yang kedua memajukan paket antara tapak yang tiada siapa mendail masuk.

Tulis satu ayat yang menamakan yang mana antara dua itu sedang anda bina, kemudian baca semula seolah-olah anda orang yang perlu mengendalikannya. Jika ayat itu memerlukan perkataan «dan», anda sedang membina kedua-duanya, dan lembaran kerja memerlukan dua lajur dan bukannya satu lajur tolak ansur yang melayani setiap satu separuh. Jika ia menamakan pengguna tetapi tiada kumpulan alamat, atau awalan tetapi tiada dasar pemajuan, ayat itu masih tidak lengkap. Susunan kata itu kedengaran birokratik, tetapi inilah tempat paling murah untuk menangkap reka bentuk yang jika tidak akan ditemui melalui tiket meja bantuan.

Berikan setiap lapisan tepat satu tugas

L2TPv2 membawa sesi PPP antara dua titik hujungnya. PPP menjalankan rundingan pautan dan, apabila ia dirundingkan, pengesahan pengguna; L2TP tidak menambah sebarang kriptografi, jadi daemon L2TP semata-mata tidak melaksanakan mana-mana bahagian hubungan keselamatan IPsec dan hanya terletak di dalam pautan yang anda sudah percayai.

GRE ialah enkapsulasi antara dua alamat. Ia membawa paket lapisan rangkaian merentas tindanan logik dan, dengan sendirinya, tidak menawarkan kerahsiaan mahupun identiti rakan yang disahkan. Itu bukan kecacatan: pengepala direka bentuk ringkas supaya kekal murah diproses pada perkakasan pemajuan. Kesannya ialah GRE menjawab soalan bagaimana memindahkan paket ini antara dua alamat dan tiada yang lain, dan itulah tepat soalan yang patut anda tanyakan kepadanya.

Tinggallah IPsec sebagai lapisan yang memilih trafik, mengesahkan rakan dan menyulitkan apa yang diberitahu untuk dilindunginya. Trafik mana yang dilindunginya ialah keputusan konfigurasi yang mesti sepadan dengan enkapsulasi yang sebenarnya dijana oleh titik hujung, kerana dasar yang ditulis untuk alamat luar GRE berkelakuan berbeza daripada yang ditulis untuk awalan dalaman. Spesifikasi GRE memisahkan muatan, pengepala GRE dan protokol penghantaran luar secara jelas, dan dasar anda memerlukan pemisahan yang sama.

LayerIts one jobWhat it never does
PPPLink negotiation, optional user authentication, address assignmentProtect traffic between gateways
L2TPv2Carry the PPP session between two endpointsEncrypt or authenticate peers
GREEncapsulate network-layer packets between two addressesHide or authenticate the payload
IPsecAuthenticate peers and encrypt selected trafficCarry a dial-in user session by itself

Tulis laluan paket sebelum konfigurasi

Ambil satu paket dan senaraikan setiap pengepala yang ditambah, mengikut urutan ia ditambah, sambil menamakan peranti yang menambahnya. Bagi pengguna dial-in ini biasanya PPP di dalam L2TP di dalam IPsec; bagi tindanan tapak ia ialah paket IP dalaman di dalam GRE di dalam IPsec. Jika dua peranti menambah pengepala yang sama, anda mempunyai gelung atau terowong berganda, dan tiada penyuntingan dasar akan membaikinya.

Senarai yang sama menentukan MTU, kerana saiz dalaman yang boleh digunakan ialah MTU laluan yang diukur tolak pengepala yang baru anda senaraikan dan tiada yang lain. Jangan salin nombor daripada catatan forum: jumlahkan overhed IP, UDP dan ESP luar, kemudian GRE atau L2TP, kemudian PPP di tempat yang berkenaan, dan tolak daripada MTU laluan yang benar-benar anda ukur. Gejala yang muncul hanya pada pemindahan besar, atau sesi yang terbentuk dan kemudian mati pada respons besar pertama, biasanya berpunca daripada penambahan itu dilakukan secara agakan.

Periksa setiap lapisan secara berasingan, dari luar ke dalam

Jalankan pemeriksaan mengikut urutan dan berhenti pada yang pertama gagal. Setiap baris menjawab soalan yang berbeza, jadi kegagalan menunjukkan satu lajur lembaran kerja dan bukannya memberitahu anda terowong itu rosak.

ip xfrm state                  # is the IPsec SA up?
ip -s link show gre1           # does the overlay interface carry packets?
ip route get 10.20.0.5         # does the inner prefix route where you think?
ss -lun | grep -E "1701|4500"  # are the L2TP and NAT-T listeners bound?

Pada kotak Cisco, yang setara bergantung pada peranan, dan sintaks tepat bergantung pada platform dan keluaran: show crypto session untuk rakan IPsec, pembilang antara muka untuk antara muka GRE atau terowong, dan pengesahan VPDN atau PPP untuk peranan dial-in. Set arahan yang menamatkan PPP tidak membuktikan apa-apa tentang sokongan GRE, dan antara muka GRE yang berfungsi tidak membuktikan apa-apa tentang perkhidmatan PPP, jadi sahkan peranan yang benar-benar anda konfigurasikan dan bukannya yang ada dalam rajah.

Rekodkan setiap output di sebelah baris lembaran kerja yang berkaitan. Nota yang diambil semasa kerosakan masih hidup lebih bernilai daripada topologi yang dilukis semula kemudian daripada ingatan.

Susun urutan pembongkaran, kemudian sahkan semula

Pembongkaran berjalan secara terbalik atas sebab tertentu: keluarkan trafik yang dilindungi daripada dasar IPsec sebelum anda membuang enkapsulasi yang dasar itu ditulis untuknya, jika tidak dasar terus menunjuk ke antara muka yang tidak wujud lagi dan pemuatan konfigurasi seterusnya gagal di tempat yang kelihatan tidak berkaitan. Pada Linux itu bermakna memadam entri keadaan dan dasar sebelum antara muka terowong; pada penghala, membuang peta kripto atau entri profil sebelum terowong.

Selepas pembinaan semula, ulangi empat pemerhatian penerimaan satu demi satu: kebolehcapaian luar, persatuan IPsec yang terbentuk, sesi PPP yang terbentuk di tempat reka bentuk memasukkannya, dan pemajuan dalaman ke alamat destinasi sebenar. Satu lampu hijau bukan bukti bagi tiga yang lain, dan jurang itulah kegagalan yang paling lama bertahan dalam pengeluaran — terowong yang hidup, disulitkan, dan tidak memajukan apa-apa kerana laluan dalaman tidak pernah ditambah.

Simpan lembaran kerja yang telah diisi di sebelah konfigurasi peranti. Mana-mana lajur yang tidak dapat anda isi ialah lapisan tanpa tugas yang diberi, dan lapisan tanpa tugas biasanya lapisan yang tidak sepatutnya berada dalam tindanan.

Artikel berkaitan