Skryf 'n VPN-ontwerpopdrag wat iemand werklik kan beoordeel
'n Hersienbare ontwerp noem die vloei, die eienaars en die foutkontrak. Ses kontroles verander 'n vae vraag in een wat iemand met 'n besluit kan beantwoord.
Die meeste ontwerphersienings loop vas op die eerste vraag, omdat die versoek 'n produk eerder as 'n besluit beskryf. 'n Opdrag wat die vloei, die eienaars en die foutgedrag noem, kan in een vergadering beantwoord word. 'n Opdrag wat sê bou 'n veilige VPN, kan glad nie beantwoord word nie. Werk deur die ses kontroles hieronder voordat jy enigiets stuur, en die hersiening word 'n vergelyking in plaas van 'n debat.
Eerstens, is die vraag 'n besluit of 'n wens
'n Besluit het alternatiewe en 'n waarneming wat tussen hulle sou kies. As jy nie kan noem waarna jy sou kyk om een te kies nie, is die vraag nog steeds 'n wens. Skryf die alternatiewe eerste neer, selfs al is die lys net twee items. Skryf dan die afweging neer wat hulle skei.
'n Wens is ook geneig om die gehoor te verberg. Sê wie die ontwerp moet goedkeur, want dieselfde opdrag lees anders vir 'n netwerkeienaar, 'n sekuriteitsbeoordelaar en 'n finansiële goedkeurder.
Stop hier as die antwoord niemand is, want 'n besluit sonder eienaar sal hermaak word deur wie ook al die hardste kla. Dit is 'n bestuursprobleem eerder as 'n ontwerpprobleem.
Tweedens, noem die vloei en die weierings
Lys die bron, bestemming en toepassing vir elke vloei wat moet werk. Lys dan die vloei wat moet aanhou misluk, want 'n ontwerp wat hulle stilweg toelaat, het die vereiste verander sonder om dit te sê. Adresoorvleueling en bereikbaarheid stroomop hoort in hierdie lys as beperkings eerder as as verrassings.
Wees spesifiek oor rigting. 'n Perseel wat verbindings na die hoofkwartier mag begin, is 'n ander ontwerp as een wat hulle mag aanvaar, en die verskil wys in elke reël wat jy daarna skryf.
Let ook op die kliënte en hul bestuurstoestand, want 'n bestuurde toestel met 'n agent kan dinge doen wat 'n bring-jou-eie-skootrekenaar nie kan nie.
Hou die lys kort genoeg om te toets. Tien vloei wat jy kan verifieer, is beter as veertig wat jy nie kan nie.
Kontrole 3: skei feite van aannames
Merk elke stelling wat jy geverifieer het, en merk dié wat jy nie het nie. Openbare adressering, beskikbare deurvoer en administrateurtoegang is die drie aannames wat die antwoord die meeste verander. As een van hulle onbekend is, sê hoe die ontwerp verander wanneer dit enige kant toe blyk.
'n Illustratiewe netwerk is reg solank dit gemerk is. Die probleem is 'n hipotetiese tak wat stilweg 'n tweede opstroom of 'n openbare adresblok kry wat dit nooit gehad het nie.
Verifieer die aanname wat jy kan nagaan voor die hersiening, want een gemete feit verwyder 'n hele tak van bespreking.
ip route get 10.50.0.10
traceroute -n -m 6 10.50.0.10
nc -vz 10.50.0.10 443Vierdens, skryf die foutkontrak
Sê wat gebeur wanneer die tonnel af is, en wees duidelik oor die twee verskillende beloftes. Om nuwe verbindings ná 'n herverbinding te herstel, is maklik om te belowe. Om sessies te bewaar wat reeds oor 'n fout heen gevestig is, is 'n veel sterker vereiste, en dit beperk die tegnologiekeuse.
Besluit dan die terugval: blokkeer die verkeer, lei dit op 'n ander goedgekeurde manier, of doen iets anders per toepassing. 'n Stille terugval na 'n direkte pad is 'n ontwerpbesluit selfs wanneer niemand dit neergeskryf het nie.
Voeg die hersteldoel in gewone taal by, soos hoe lank 'n perseel op 'n verlaagde vlak mag werk, en wie die voorval verklaar.
Kontrole 5 en 6: kies die naat en teken die verandering aan
Kies een naat om oor te stry, want 'n hersiening wat alles probeer besleg, besleg niks. Roetering, magtiging en enkripsie is drie verskillende nate, en 'n opdrag moet sê oor watter een die vraag gaan. RFC 4301 is 'n nuttige herinnering hier, want dit skei beleidsbesluite, beskermde verkeer en sekuriteitsverenigings eerder as om hulle as een objek te behandel.
Teken dan aan wat ná die besluit verander het, insluitend die aannames wat hersien is. Daardie rekord is wat die volgende hersiening korter maak.
git diff --stat design/vpn-brief.md
grep -n 'assumption' design/vpn-brief.md
ip route get 10.50.0.10'n Opdrag wat al ses kontroles slaag, lewer 'n vraag met 'n antwoord: die ontwerp voldoen aan die genoemde vloei en die foutkontrak, of 'n genoemde beperking verhoed dit. Wanneer die beperking later verander, wys die rekord watter besluit herbesoek moet word en watter een kan bly staan. Dit is wat die oefening herbruikbaar maak eerder as 'n eenmalige argument.