Ég skal reyna að útskýra þetta…
NAT (Network Address Translation) gengur út á að “translata” addressur, sem fráteknar eru fyrir localnet (*), út á netið. Með því móti geta, svo dæmi sé tekið, 50 local notendur deilt einni “löglegri” IP tölu út á netið.
Notandi 23 (segjum t.d. 10.0.1.23) tengist einhverjum netþjóni úti í heimi. Netþjónninn fær pakkann vitaskuld afhentan frá ytri addressu NATsins. Nú þarf netþjónninn að svara fyrirspurnninni, sem berst NATinum. Hvað nú? Hvernig veit NATinn hvaða client á bakvið sig hóf fyrirspurnina? Það er einmitt galdurinn :) - NATtinn “merkti” upphaflega pakkann, og geymdi upplýsingar um frá hvaða client hann barst. Þegar svarið berst, er flett upp í translation töflunni, og viðkomandi client (10.0.1.23) fær svarið.
Þetta er nú allt gott og blessað, en hvað gerist þegar NÝR (SYN) pakki berst að utan? Í slíku tilviki getur NAT augljóslega engu flett upp; og hvernig í ósköpunum á hann að “vita” hvaða local client á að fá pakkann? Hann veit það nefnilega ekki! Til að leysa þetta þarf að forwarda vissum portum inn á localnetið.
Segjum t.d. að þú værir með 10.0.1.23 og 10.0.1.24; til að báðir geti sent DCC er _nauðsynlegt_ að skilgreina ákveðin port fyrir hvern client, og forwarda þeim til þeirra. Til að skilja þetta til fulls, virkar DCC svona:
1. Sendandi sendir PRIVMSG gegnum irc þjóninn, sem inniheldur nafn skrár, stærð, IP tölu hans, og port sem hann opnar til að senda skrána gegnum.
2. IRC client viðtakandans tilkynnir að verið sé að senda honum skrá, viðtakandi samþykkir að taka við henni. Við það tengist viðtakandinn sendandanum, á þeirri IP og porti sem tiltekið var í PRIVMSG (#1), og flutningurinn hefst.
Einfaldasta lausnin er því að úthluta hverjum client sínu portrange (fimm port eða svo, stillt í IRC forritinu, t.d. í DCC options í mIRC), og forwarda þeim svo inn. Einfalt dæmi:
10.0.1.23 hefur stillt sinn IRC client á port 4230-4235, og 10.0.1.24 sinn á 4241-4245. Þá segjum við beininum/NAT græjunni, að öllum nýjum tengingum sem berist á port 4230-4235, skuli forwardað til 10.0.1.23, og portum 4240-4245 á 10.0.1.24. Einfalt? :)
Hvernig þetta er gert veltur á apparatinu, því þarftu að fletta upp í leiðarvísinum. Þó læðist að mér sá grunur að upplýsingar um þetta megi finna á bls 22 á
http://www.greatspeed.com/pdf/gs-r250s_man.pdf :P
Sömu lögmál gilda um aðra hluti þar sem tenging er ekki hafin bakið NAT, heldur utan hans. Án port forwarding berast gögnin ekki lengra. Viljir þú starta leikjaþjóni, þarftu að öllum líkindum að skella UDP forwardi á t.d. port 27015 (HL), 27960 (Q3), 27910 (Q2) inn á addressu vélarinnar sem keyrir þjóninn.
Upplýinsgar um hvaða port og protocola einstaka þjónustur/hugbúnaður nota má iðulega finna með smá leit á Google eða Usenet, auk þess sem eitt og annað gagnlegt má finna í hinum ágæta eldvegg/router JReykdal á linux áhugamálinu.
* Þessi net eru 10.x.x.x (10/8), 192.168.x.x (192.168/16), 172.16-255.x.x (172.16/12), sjá RFC 1918.
ps. damn, ég hefði frekar átt að skrifa grein um þetta :)