Kimsə sizə ilk və son ünvanı verib VPN marşrutu istəyir. Cəlbedici addım hər iki ucu əhatə edən ən qısa prefiksi seçməkdir və bu addım heç kimin soruşmadığı təyinatları səssizcə əlavə edir. CIDR blokunun həmişə ikinin qüvvəsi ölçüsü və ona uyğunlaşdırılmış başlanğıc ünvanı var, ona görə də ixtiyari interval adətən birdən çoxunu tələb edir. İntervalı gəzin, onu dəqiq bölün, sonra onun kənarındakı ünvanları yoxlayın.

İntervaldan başlayın, prefiksdən yox

Başqa heç nə yazmazdan əvvəl ilk ünvanı və son ünvanı yazın. Cütlük tələbdir; prefiks onun yalnız bir mümkün ifadəsidir və bəzən səhv ifadəsidir. İki rəqəmi yoxlamaq da maskadan qat-qat asandır.

Uyğunlaşdırılmış interval bir bloka sıxılır. Uyğunlaşdırılmamış interval bir neçə bloka parçalanır və bu parçalanma təxmini deyil, dəqiqdir. Etməməli olduğunuz şey xaricə yuvarlaqlaşdırıb bunu kifayət qədər yaxın adlandırmaqdır, çünki əlavə ünvanlar marşrutun daşıdığı siyasəti alır.

Xətanın hər iki istiqaməti vacibdir. Tunelə gedən marşrut üçün əlavə ünvanlar VPN-ə çəkilir. Yan keçmə istisnası üçün əlavə ünvanlar onu atlayır. Nəticələrin heç biri yalnız quraşdırdığınız prefiksi göstərən marşrut cədvəlində görünmür.

Birinci hal: interval təsadüfən uyğunlaşır

198.51.100.64-dən 198.51.100.127-ə qədər götürün. İlk ünvan 64 ünvanlıq sərhədə uyğunlaşdırılıb və interval tam olaraq 64 ünvandır, ona görə də tək bir /26 onu artıq heç nə qalmadan təsvir edir.

Bu asan haldır və onu tanımağa dəyər, çünki bu o deməkdir ki, tələb yəqin ki, artıq prefikslərlə düşünən biri tərəfindən yazılıb. Bu həm də o deməkdir ki, yoxlama qısadır: ölçünün ikinin qüvvəsi, başlanğıcın isə həmin ölçünün qatı olduğunu təsdiqləyin.

Sənədləşdirmə aralıqları yaxşı nümunələr yaradır, çünki onların sahibi yoxdur. Bu ünvanları real tuneldə quraşdırmayın və sizə verilən aralığın yalnız qeyri-adi göründüyü üçün sənədləşdirmə sahəsi olduğunu düşünməyin.

İkinci hal: uyğunlaşmır, ona görə bölün

İndi 198.51.100.100-dən 198.51.100.107-ə qədər götürün. Bu səkkiz ünvandır, yəni ikinin qüvvəsidir, amma 100 səkkizin qatı deyil. Bu ölçüdə tək blok oradan başlaya bilməz, ona görə də interval birdən çox blokla örtülməlidir.

Dəqiq örtük iki /30 blokudur: 198.51.100.100/30 100-dən 103-ə qədərini, 198.51.100.104/30 isə 104-dən 107-yə qədərini əhatə edir. Cəmi səkkiz ünvan, intervaldan kənarda heç nə yoxdur və parçalanma verilmiş interval üçün unikaldır.

python3 -c "from ipaddress import ip_address, summarize_address_range as s; print(*s(ip_address('198.51.100.100'), ip_address('198.51.100.107')), sep='\n')"

Standart kitabxana funksiyası hesablamanı sizin üçün edir və ipaddress sənədləri nə qaytardığını müəyyən edir. Etmədiyi şey şlüz seçmək, ünvanların kimə aid olduğunu qərarlaşdırmaq və ya arxasındakı hər hansı xidmətə giriş verməkdir.

Daha geniş prefiksin nə tutacağını ölçün

Bir qısa yolu qəbul etməzdən əvvəl onun nəyə başa gəldiyini hesablayın. 198.51.100.96-dan başlayan /28 96-dan 111-ə qədərini əhatə edir, yəni səkkiz yerinə on altı ünvan. Əlavə səkkiz 96-dan 99-a və 108-dən 111-ə qədərdir və onların hər biri marşrutu miras alardı.

python3 -c "from ipaddress import ip_network as n; w=set(n('198.51.100.96/28')); t=set(n('198.51.100.100/30'))|set(n('198.51.100.104/30')); print(len(w), len(t), sorted(w-t))"

Səkkiz əlavə təyinat dəyişiklik sorğusuna yaza biləcəyiniz konkret rəqəmdir. Bu həm də qısa yolun məqbul olub-olmadığını həll edən rəqəmdir, bu isə hesablama deyil, siyasət məsələsidir.

Hesablamanı kəşfdən ayrı saxlayın. Şəbəkə operatorunun verdiyi interval dəqiq çevrilir. Dəyişən xidmətdən gələn tək DNS cavabı həmin xidmətin tam və ya daimi aralığını təsbit etmir və əlaqəsiz adlar eyni ünvanı paylaşa bilər.

Dəqiq dəsti quraşdırın və kənarları yoxlayın

Hər nəticə prefiksini VPN konfiqurasiyasının sahibinə verin və onu dəstəklənən mexanizmlə quraşdırsınlar. Tələb iki giriş lazımdırsa, formanı qısaltmaq üçün birini genişlətmək yerinə iki giriş saxlayın.

sudo ip route add 198.51.100.100/30 via 10.90.0.1 dev tun0
sudo ip route add 198.51.100.104/30 via 10.90.0.1 dev tun0
ip route get 198.51.100.101
ip route get 198.51.100.97

Son iki əmr insanların atladığı əmrlərdir. İlk daxili ünvan yeni marşrutu izləməli, intervaldan kənardakı ünvan isə izləməməlidir. Əgər ikisi də eyni yolla gedirsə, interval tələblə konfiqurasiya arasında haradasa genişlədilib.

İlk ünvanı, son ünvanı və onları ifadə edən prefiksləri qeyd edin. Qaydayı yoxlayan növbəti şəxs tələbi konfiqurasiya ilə hesablamanı təkrarlamadan tutuşdura bilər və dəqiq marşrutla rahat marşrut arasındakı fərq görünən qalır.

Əlaqəli məqalələr