Yönlendirme kuralı paket işaretini okur, conntrack'i değil
Politika tabanlı yönlendirme paket işaretini okur; conntrack daha uzun ömürlü farklı bir değer saklar. İkisi arasında kopyalama, birinin yazması gereken bir adımdır.
Dört kontrol, çalışan bir işaret kuralını çalışan bir yoldan ayırır: kuralın hangi işareti okuduğu, paketin arama anında onu hâlâ taşıyıp taşımadığı, bağlantı işaretinin sonraki paketlere geri yüklenip yüklenmediği ve eşleşen kuralın maskesi ve önceliğinin tetiklenmesine izin verip vermediğini. Artan bir sayaç yalnızca bir kuralın bir şeyle eşleştiğini kanıtlar. Çekirdek yolunu seçerken paketin ne taşıdığı hakkında hiçbir şey söylemez.
İki işaret farklı yerlerde yaşar ve farklı takvimlerle sona erer.
İki işaret, iki ömür
Paket işareti tek bir skb'ye aittir, onunla birlikte kancalardan geçer ve politika yönlendirmesinin fwmark seçicisi tarafından tüketilir. Bağlantı işareti conntrack kaydına aittir, o akışın paketleri boyunca sürer ve bir şey onu geri kopyalayana kadar yönlendirme kuralına görünmez olur. Paket işaretini bağlantıya kaydetmek bir depolamadır; geri yüklemek ayrı bir eylemdir. İkisi de kendiliğinden olmaz.
Bu yüzden bir kural kümesi tutarlı görünebilirken yönlendirme kararı sıfır görür: değer kaydedildi ve hiçbir şey onu geri yüklemedi.
İkisi arasında kopyalama, sizin yazdığınız bir adımdır
Önemli iki ifade zıt yönlerde çalışır: biri paketin işaretini bağlantıya kaydeder, diğeri bağlantının işaretini pakete yükler. Hangisine ihtiyacınız olduğu, sınıflandırmanın akışa göre ne zaman gerçekleştiğine bağlıdır. Bir tasarım yalnızca paket işaretine ihtiyaç duyabilir; bir geçici çözüm ikisini de kullandı diye conntrack işaretlemesi eklemek, basit bir politikanın ikinci bir arıza kipini edinme yoludur.
ct mark set meta mark meta mark set ct mark
Yönü kuralın yanına yazın, çünkü sözdiziminden ilk bakışta belli değildir. İlk satır kaydeder, ikincisi geri yükler ve hiçbiri diğerini gerektirmez.
Onu tüketen aramadan önce sınıflandırın
Yerelde üretilen trafik ile LAN'dan yönlendirilen trafik farklı kancalardan geçer ve yönlendirme kararlarına farklı anlarda ulaşır. Yönlendiricinin kendi bağlantıları için çalışan bir çıkış kuralı, yönlendirilen bir istemcinin paketinin aramasından önce işaretlendiğini kanıtlamaz. Sınıflandırmayı, onu tüketen arama henüz gerçekleşmemiş bir yere koyun ve aynı zincirdeki sonraki kuralların değerin üzerine yazıp yazmadığını kontrol edin. Zincir içindeki sıra yapılandırmanın parçasıdır, uygulama ayrıntısı değildir.
Bağlantı durumunun kalıcılığı da açık bir plan gerektirir. Bir akışın yalnızca ilk paketi sınıflandırılıyorsa, sonraki paketlerin kaydedilen işaretin geri yüklenmesine ihtiyacı vardır, yoksa işaretsiz yolu izlerler. Bağlantıyı tanımlayan bir işaret ile paketi tanımlayan bir işaret arasındaki fark budur.
Yola işaretli bir soru sorun
ip route get 10.77.0.10 mark 0x2
Kuralları ve tabloyu inceleyin, ardından yolu işaret dahil ederek sorgulayın; politika üzerinde etkiliyseler kaynağı veya gelen arayüzü de ekleyin. İşaretsiz sıradan bir arama başka bir soruyu yanıtlar ve istemediğiniz yolu memnuniyetle bildirir. Kuralın değerinin yanı sıra maskesini ve önceliğini de kontrol edin ve seçilen tablonun kullanılabilir bir yol içerdiğini doğrulayın.
Artan bir sayaç, bir kuralın bir paketle eşleştiğinin kanıtıdır. Son paketin doğru karar noktasında amaçlanan işareti taşıdığının kanıtı değildir.
İşareti, yönü, zamanlamayı ve maskeyi okuyun. Dört kontrol ve yol artık bir gizem olmaktan çıkar.