Slurp
Utvecklare | Danny Gasparovski, Kelly Price (underhållare) |
---|---|
Initial release | 30 mars 1995 |
Stabil frisättning | 1.0.17 / 8 januari 2006 |
Operativ system | Unix-liknande |
Plattform | skalkonto |
Typ | Uppringd åtkomst |
Licens | BSD-liknande , modifierad 4-klausul BSD-licens |
Hemsida | slirp.sf.net |
Slirp (ibland versaler SLiRP ) är ett program som emulerar en PPP- , SLIP- eller CSLIP -anslutning till Internet med hjälp av ett textbaserat skalkonto . Dess ursprungliga syfte blev i stort sett föråldrat eftersom dedikerade uppringda PPP-anslutningar och bredbandsuppkoppling till Internet blev allmänt tillgängliga och billiga. Den fann sedan ytterligare användning för att ansluta mobila enheter, såsom handdatorer , via deras serieportar . Ett annat viktigt användningsfall är brandväggspiercing/ port forwarding . En typisk användning av Slirp skapar en allmän nätverksanslutning över en SSH- session där portvidarebefordran är begränsad. Ett annat användningsfall är att skapa extern nätverksanslutning för oprivilegierade behållare .
Användande
Shell-konton tillåter normalt endast användning av kommandorads- eller textbaserad programvara, men genom att logga in på ett skalkonto och köra Slirp på fjärrservern kan en användare omvandla sitt skalkonto till en allmän SLIP/PPP-nätverksanslutning, vilket tillåter dem att köra valfri TCP/IP -baserad applikation – inklusive standard GUI- programvara som den tidigare populära Netscape Navigator – på sin dator. Detta var särskilt användbart på 1990-talet eftersom enkla skalkonton var billigare och/eller mer allmänt tillgängliga än fullständiga SLIP/PPP-konton.
I mitten av 1990-talet tillhandahöll många universitet uppringda skalkonton (till sin fakultet, personal och studenter). Dessa kommandoradsanslutningar blev mer mångsidiga med SLIP/PPP, vilket möjliggjorde användningen av godtyckliga TCP/IP-baserade applikationer. Många guider för att använda universitetsuppringda anslutningar med Slirp publicerades online (t.ex. [1] , [2] , [3] , [4] ) . Användning av TCP/IP-emuleringsprogram som Slirp och dess kommersiella konkurrent TIA förbjöds av vissa leverantörer av skalkonton, som trodde att dess användare bröt mot deras användarvillkor eller förbrukade för mycket bandbredd .
Slirp är också användbart för att ansluta handdatorer och andra mobila enheter till Internet: genom att ansluta en sådan enhet till en dator som kör Slirp, via en seriell kabel eller USB , kan den mobila enheten ansluta till Internet.
Begränsningar
Till skillnad från en äkta SLIP/PPP-anslutning, som tillhandahålls av en dedikerad server, följer en Slirp-anslutning inte strikt principen om end-to-end-anslutning som föreställs av Internetprotokollsviten . Fjärränden av anslutningen, som körs på skalkontot, kan inte tilldela en ny IP-adress och dirigera trafik till den. Den lokala datorn kan alltså inte acceptera godtyckliga inkommande anslutningar, även om Slirp kan använda portvidarebefordran för att acceptera inkommande trafik för specifika portar .
Denna begränsning liknar den för nätverksadressöversättning . Det ger förbättrad säkerhet som en bieffekt , och fungerar effektivt som en brandvägg mellan den lokala datorn och Internet.
Nuvarande status
Slirp är fri programvara licensierad under en BSD-liknande, modifierad 4-klausul BSD-licens av dess ursprungliga författare. Efter att den ursprungliga författaren slutat underhålla den, tog Kelly Price över som underhållare. Det fanns inga utgåvor från Kelly Price efter 2006. Debianskötare har tagit över vissa underhållsuppgifter, som att modifiera Slirp för att fungera korrekt på 64-bitars datorer. Under 2019 användes ett mer aktivt underhållet Slirp-förråd av slirp4netns för att tillhandahålla nätverksanslutning för oprivilegierade, rotlösa behållare.
Inflytande på andra projekt
Trots att Slirp i stort sett var föråldrad, hade Slirp ett stort inflytande på nätverksstackarna som används i virtuella maskiner och andra virtualiserade miljöer. Den etablerade praxisen att ansluta de virtuella maskinerna till värdens nätverksstack var att använda de olika paketinjektionsmekanismerna . Raw sockets , som är en av sådana mekanismer, användes ursprungligen för detta ändamål, och på grund av många problem och begränsningar ersattes de senare med TAP- enheten .
Paketinjektion är en privilegierad operation som kan introducera ett säkerhetshot , något som införandet av TAP-enhet endast delvis löste. Slirp-härledd NAT-implementering gav en lösning på detta långvariga problem. Det upptäcktes att Slirp har den fullständiga NAPT- implementeringen som en fristående användarutrymmeskod , medan andra NAT - motorer vanligtvis är inbäddade i en nätverksprotokollstack och/eller inte samarbetar med värdoperativsystemet när de gör PAT (använd sin egen port intervall och kräver paketinjektion). QEMU -projektet har antagit de lämpliga koddelarna av Slirp-paketet och fått tillstånd från dess ursprungliga författare att återlicensiera det under 3-klausul BSD-licens. En sådan licensändring gjorde det möjligt för många andra FOSS- projekt att adoptera de QEMU-försedda Slirp-delarna, vilket inte var (och fortfarande är) inte möjligt med den ursprungliga Slirp-kodbasen på grund av licenskompatibilitetsproblemen. Några av de anmärkningsvärda användarna är VDE- och VirtualBox -projekt. Även om den Slirp-härledda koden kritiserades hårt, finns det hittills ingen konkurrerande implementering tillgänglig.
Se även
- PPP-demon
- Internetadaptern , en kommersiell produkt som konkurrerade med Slirp
externa länkar
- Slirp Maintenance Project , officiell webbplats för de senaste versionerna av Slirp
- Senaste versionen av Slirp (1.0.17) från Debian