ããã«ã¡ã¯ãååã
å°ãåã«ãç§ã¯äž»é¡ã«èå³ãæã€ããã«ãªããŸããã ãã®èª¿æ»ã§ã¯å€ãã®è³æãåŸãããŸãããã調æ»äžã«ããã€ãã®çåãçããŸãããå®éã«ããã€ãã®çè«çãªç¹ã確èªãããã£ãã®ã§ãã èå³ã®ããæ¹-ãé¡ãããŸãã
察称NATãšã¯äœãã«ã€ããŠäž»é¡ã«ç°¡æœã«è§ŠããŠããªã人ã®ããã«ã
ã·ã³ãã«ãªã¹ããŒã ãèããŠã¿ãŸããã
host1ãhost2-NATã®èåŸã«ãããŠãŒã¶ãŒãã¹ã
NAT1ãNAT2-NATãæäŸãããšããžããã€ã¹
host1ãç¹å®ã®real_IPãšã®çºä¿¡æ¥ç¶ïŒTCPãŸãã¯UDPïŒãéå§ãããšãNAT1ããã€ã¹ã¯çºä¿¡ãã±ããå
ã®ãœãŒã¹IPãç¬èªã®ãã®ã«çœ®ãæããŸãïŒãªãã·ã§ã³ã§ç¬èªã®ãã®ã«çœ®ãæããŸãããç°¡åãã€æ確ã«ããããã«ãããåãå
¥ããŸãïŒããŸãäžè¬çã«ãPORT_SRCãã©ã³ãã ãªPORT_SRC1ã«çœ®ãæããŸãã
host1 ____ PORT_SRCãPORT_DST ---> NAT1ããã€ã¹PORT_SRC1ãPORT_DST ----> real_IP
ãããã£ãŠããã®å¿çãã±ããã®ãœãŒã¹IPèªäœãreal_IPã§ããããœãŒã¹ããŒããPORT_DSTã§ãããå®å
ããŒããPORT_SRC1ã§ããå Žåã«éããreal_IPãã¹ããNAT1ããã€ã¹ã«ãã£ãŠè»¢éãããå ŽåãNATã¯å¯Ÿç§°ã«ãªããŸãã ã€ãŸããreal_IPã¯ããã®ã¢ãã¬ã¹ãæ¥ç¶å
ãšåãããŒããããã³NAT1ããã€ã¹ããã®çºä¿¡æ¥ç¶ãšåãããŒãããå¿çããŸãã ããã§ã察称æ§ããšããçšèªãè¯ãã¢ã€ãã¢ã§ã¯ãªãã£ãããšã«æ°ä»ãã®ã¯é£ãããããŸããã
ã¿ã¹ã¯ã察称NATããçªç Žããããã¹ãããããšçŽæ¥éä¿¡ã§ããããã«ããå Žåã¯ã©ããªããŸããïŒ
äžè¬çãªå Žåã次ã®åçŽãªã·ã§ã ã«ããããŸãã
host1 ----> NAT1 SRC1_randomãDST1_required ---->
<-DST2_as_aãŠã£ãã·ã¥ãSRC2_random NAT2 < -host2
SRC1_random-NAT1ã«ããNAT眮æåŸã®éä¿¡å
ããŒãã
å¿
èŠã«å¿ããŠDST1-NAT1ãä»ããŠhost1ãšç¢ºç«ãããçºä¿¡æ¥ç¶ã®å®å
ããŒããéžæã§ããŸãã
DST2_wanted-host2ããNAT2ãä»ããŠNAT1ã«éä¿¡ããããã±ããã®å®å
ããŒãã¯ãåœç€Ÿãéžæã§ããŸãã
SRC2_random â NATãNAT2ã«ãã£ãŠã¹ããŒãã£ã³ã°ãããåŸã®ãœãŒã¹ããŒãã
ãã®å³ãããèŠããšãããã¬ãŒã¯ããŠã³ãã®é£ãããæããã§ãã ãã©ãã£ãã¯äº€æãæ©èœããããã«ã¯ãSRC1_random = DST2_by_ desireããã³DST1_by_require = SRC2_by chanceãå®è¡ããå¿
èŠããããŸãã
ããã€ã¹host1ããã³host2ã¯ãããŒãSRC1ã©ã³ãã ããã³SRC2ã©ã³ãã ãå¶åŸ¡ã§ããŸããã äžè¬ã«ããããã¯æ¬åœã«ã©ã³ãã ã«ãªããããã«å®å
IPãšå®å
ããŒãã«äŸåããŸãã ãã®ãããã¯ãæ€çŽ¢ããŠèŠã€ãã£ãè³æã®å€§éšåã¯ããã®åçŽãªäºå®ãç¡èŠããåçŽãªSTUNãµãŒããŒã§ãããã®æªç¥ã®ãã®ãèªèããã®ã«ååã§ãããšä¿¡ããŠããŸããã
ã¯ãã iptablesãªã©ã䜿çšããŠæŽçãããNATã䜿çšããå Žåã次ã®åœ¢åŒã®æ§æ
-t nat -Aãã¹ãã«ãŒãã£ã³ã°-jãã¹ã«ã¬ãŒã
ãŸãã¯
-t nat -Aãã¹ãã«ãŒãã£ã³ã°-j SNAT --to-source
éä¿¡å
IPã®ã¿ã眮ãæããŸããçºä¿¡ããŒãã¯ã¯ã©ã€ã¢ã³ããšåããŸãŸã§ãã ãããã£ãŠãã¿ã¹ã¯ã¯å€§å¹
ã«ç°¡çŽ åããããã®NATãã€ãã¹ãã¯ãããžãŒã®ã¡ãã£ãšãŒã¿ãŒã®åœ¹å²ã説æããå€ãã®èšäºãé ã«æµ®ãã³å§ããŸãã
ããããããã¯ç¹å¥ã§æãåçŽãªã±ãŒã¹ã§ãã
åãiptablesã®å Žåããããã®æ§é ã¯æ¬¡ã®ããã«çœ®ãæããããšãã§ããŸã
-t nat -A POSTROUTING -j MASQUERADE ... --random
ãŸãã¯
-t nat -A POSTROUTING -j SNAT --to-source ... --random
ç¶æ³ã¯é¢çœããªããªããŸãã éä¿¡ããŒãã¯ãNATå€æäžã«ã©ã³ãã ã«éžæãããŸãã
å
šäœãšããŠãäžã®å³ã泚ææ·±ãèŠãŠã¿ããšã次ã®åé¡ããããŸãã
host1ãhost2ãSRC1ã©ã³ãã ããã³SRC2ã©ã³ãã ãèªèããŸãããããšãã°ãéä¿¡ãã±ããã®éä¿¡å
ããŒããå€æŽããããNATããã€ã¹ã®NATå€æã®ãšã³ããªãå€ããªã£ãŠãªã»ãããããæéãããããã«ããŒã¿ãéä¿¡ããéã«ååãªã¿ã€ã ã¢ãŠããèšå®ãããªã©ãéæ¥çã«ã®ã¿åœ±é¿ãäžããããšãã§ããŸãã
Host2ã¯ãç¹ã«ãå¿
èŠã«å¿ããŠDST1ãèŠã€ããå¿
èŠããããŸãïŒäžè¬ã«ãããŒãã¯äºåã«åæã§ããŸãããææªã®å Žåãèæ
®ããŸãïŒã
仲ä»è
ã®å¿
èŠæ§ã«ã€ããŠé·ã説æãããããšãªãã亀æã®ãã¹ãŠã®åå è
ã®ããã®ã¢ã¯ã·ã§ã³ã®ããããã®ã¢ã«ãŽãªãºã ãããã«æŠèª¬ããŸãã
1. host1ãšhost2ãç¡æã®åæ¹åãã©ãã£ãã¯ãããŒã§æ¬æ Œçãªå¶åŸ¡æ¥ç¶ã確ç«ããããã®ä»²ä»è
ãå³å¯ã«å¿
èŠã§ãã ãã®ãããªå¶åŸ¡ã»ãã·ã§ã³ã®ã€ãã·ãšãŒã¿ãŒã¯ãNATã®èåŸã«ãããã¹ãã§ãã 仲ä»è
ã¯ããã¯ã€ãIPã«é¢ããæ
å ±ããšã³ããã¹ãã«é
åžããŸãã
2. host1ãã¿ãŒã²ããæ¥ç¶/ã¯ã©ã€ã¢ã³ãã®ã€ãã·ãšãŒã¿ãŒã§ãããhost2ã®å Žåãæ¥ç¶ãçä¿¡ãããã€ãŸããµãŒããŒãšããŠæ©èœãããšä»®å®ããŸãã
3. Host1ã¯ãDST1_willãä»»æã«éžæããŠãNAT2ã®å®éã®ã¢ãã¬ã¹ãžã®ãã±ããã®éä¿¡ãéå§ããŸãã
4.å¶åŸ¡æ¥ç¶ã®Host1ã¯ãéžæããDST1_preferenceã®ä»²ä»è
ã«éç¥ããåããã©ã¡ãŒã¿ãŒïŒéä¿¡å
ããŒããå®å
ããŒãïŒã§ãã±ãããéä¿¡ãç¶ããŠãSRC1ã©ã³ãã ãå€ãããªãããã«NAT1ãžã®äžå®ã®ãããŒããã£ã¹ããç¶æããŸãã åºè·éã®é
延ã¯å®éšçã«æ±ºå®ããããšãã§ããŸããã¿ã¹ã¯ã¯ç°¡åãªã®ã§ãç§ã¯ããããã€ã³ãããããã®ããã¹ãã«å«ããŸããã
5.ãããŒã«ãŒã¯NAT1ãã¹ãã£ã³ãããœãŒã¹IPãã¢ãã¬ã¹NAT2ã«çœ®ãæããŠãå¿
èŠã«å¿ããŠãœãŒã¹ããŒãDST1__ãæäŸãã1024ïŒãŸãã¯65535ã®å
šç¯å²ïŒä»¥äžã®ç¯å²ã§å®å
ããŒãããœãŒãããŸãã NATã¯å¯Ÿç§°ãšåŒã°ããç¡é§ã§ã¯ãªããšä»¥åã«æ±ºå®ãããããããã¯ãã¹ãŠå¿
èŠã§ãã
åæã®çµæãšããŠïŒä»åãŸã§ã«NAT1ã«ãã£ãŠçŠæ¢ãããŠããªãå ŽåïŒãæçµçã«å®å
ããŒãSRC1_randomã§ãã±ãããéä¿¡ãããšããã®ãããªãã±ããã¯ãNATæ©èœã®ç¯å²ãè¶
ããç¹ã«ããªãããŒãªä¿è·ã¡ã«ããºã ãhost1ã«æž¡ãããå Žåã 圌ãæ€åºããå¶åŸ¡ãã£ãã«ã§ããã«æ€åºãããã®ã¯ã仲ä»è
ã«éç¥ããæšæž¬å€SRC1_randomãèšæ¶ããŸãã
6.äžéã¯ãå¶åŸ¡ãã£ãã«ã§host2 SRC1_randomã«å ±åããŸãã
7. Host2ã¯å€éšã¢ãã¬ã¹NAT1ãžã®ãã±ããã®éä¿¡ãéå§ããŸãããããã®ãã±ããã®å®å
ããŒãã¯DST2_of_desire = SRC1_randomã§ããå¿
èŠããããŸãã NAT2ããã€ã¹ã«ãã£ãŠéžæãããSRC2_randomãDST1_of_willãšäžèŽãããŸã§ã圌ã¯ãããããªããã°ãªããŸããã
ãã®åŸ
æã®å¶ç¶ãèµ·ãããšãã2ã€ã®ãªãã·ã§ã³ãå¯èœã§ãã
æåã®ã ãã®ãããªãã±ããã¯host1ã«å°éããããã«ã€ããŠä»²ä»è
ã«éç¥ãã仲ä»è
ã¯host2ã«éç¥ãããããããŒãã»ãã·ã§ã³ãç¶ç¶ããŸãã
äºçªç®ã Host2ã¯ããswottingãã§ããäžåºŠNAT1ãå°ãããããªãã®ã§ãçºä¿¡ãã±ããã®IP-ttlããNAT2ãééããå€ã«å€æŽããŸããããNAT1ã«ã¯å°éããŸããã§ããã åæã«ãNAT2ãžã®å€æãäœæããããã±ããã¯NAT1ã«å°éããŸããããåæãããå€æãäœæããããšããã±ããã¯host1ããéä¿¡ãããŸãïŒåè¿°ã®ããã«å€æããµããŒãããããšãã€ãŸããNAT2ãå®æ°ãã©ã¡ãŒã¿ãŒã§ãã¹ã©ã ãããããšãå¿ããŠããŸããïŒ host2ã«å°éãã次ã«ä»²ä»è
ãªã©ã«éç¥ããŸãã
ã芧ã®ãšãããäžè¬çãªã±ãŒã¹ã§ã¯ã察称NATãç Žãããšã¯ããã»ã©åçŽã§é«éãªã¿ã¹ã¯ã§ã¯ãããŸããã ããŸããŸãªå®è£
ïŒiptablesãæãåºããŠãã ããïŒã§ã¯ã倧å¹
ã«ç°¡çŽ åãããä¿èšŒãããæåã䌎ãæé ã«å€ãããŸãããäžè¬çãªå Žåã§ã¯ãªãç¹°ãè¿ããŸãã
説æãããŠããã¢ã«ãŽãªãºã ã®æãããã«ããã¯ã¯äœã§ããïŒ
1.ãã©ã°ã©ã5ã®ã¹ããŒãã£ã³ã°ã®å¿
èŠæ§ã仲ä»è
ã¯ããããèš±å¯ãããããã€ããŒããåé¡ãååŸããªããããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ããæ¹æ³ãçšæããå¿
èŠããããŸãã
2.æé 5ã§åºç¯å²ã®ããŒããã¹ãã£ã³ããŸãããæ£ãããNATã®å Žåããã¹ã1ã仲ä»è
ãšã®æ¥ç¶ãåçŽã«ç¢ºç«ããNAT2ãžã®æ¥ç¶ã®å Žåã®ã©ã³ãã SRC1_ãåãã§ãããšä»®å®ããããšã¯ã§ããŸããã å®å
ã¢ãã¬ã¹ãå€æŽãããšãSRC1_randomãå€æŽãããŸãã ã¹ãã£ã³ã¯ããã¡ãããååã«è¿
éãã€ç©æ¥µçã«å®è¡ã§ããŸããããæ
éã«ããããããé·ãããããšãã§ããŸãã ãããã«ãããããã¯åŒ±ç¹ã§ãã
3.ãã©ã°ã©ã7ã®ã¢ã¯ã·ã§ã³ã¯ç¡æéã«é·ããªãå¯èœæ§ããããŸãã ãã®ç¬éã¯ç§ã®å¥œå¥å¿ãšè©ŠããŠã¿ãããšãã欲æ±ãåŒã³èµ·ãããŸããã
4.ãããŠãã¡ãããããããã®æçŽãèªãã®ã«ããããããŠãã人ã¯ããå¿
èŠã ãšæã£ãŠããã¹ãŠã®æšçãã©ãã£ââãã¯ã仲ä»è
ã«éããŠãããã ãã ïŒããšèšããããããŸããã ããã§è°è«ããããšã¯å°é£ã§ãããã¡ãããç§ã¯ãã®ããã¹ããåã£ãæéã®ããã«ãããã«è¬çœªããŸãã
ä»ããç·Žç¿ããŸãã ãããã¯ã«èå³ã®ãã人ã倱æããããããããŸãããã仲ä»è
ãæžããŸããã§ãã:) tcpdumpã¯ãé©åãªå Žæã§é©åãªã¿ã€ãã³ã°ã§ããŸãèè
ã®ç®ãšæã§åœŒã®åœ¹å²ã§è¡åããŸãã:)
ã ããã 3G = host1ã®Windowsã¯ãŒã¯ã¹ããŒã·ã§ã³ããããŸãã ã¢ãã æ¥ç¶ã§ãã°ã¬ãŒã¢ãã¬ã¹10.140.80.130ãçºè¡ãããŸããã ããã¯ãNATã®èåŸã«ããhost1ã®å
éšã¢ãã¬ã¹ã§ãã
ãã®ã«ãŒã¿ãŒã®ããåŸãã«çœãã¢ãã¬ã¹xx.xx.xx.xxãšhost2ãæã€AT AR-750sã«ãŒã¿ãŒããããŸãã
å¿
èŠã«å¿ããŠä»»æã®DST1ãéžæããŸããç§ã®å Žåã¯21393ã§ããã
host1ãã10ç§ã®é »åºŠã§éå§ããUDPãã±ãããxx.xx.xx.xxã«éä¿¡ããŸãïŒ21393ã
æªæã®ããã¹ãã£ã³ã®æ®µéãã¹ãããããŠãããŒã21393ã«é¢ãããç§å¯ã®ãæ
å ±ãšhost2ã«SRC1ãã¢ãã€ã«ãªãã¬ãŒã¿ãŒã®NATãªãã¬ãŒã¿ãŒã«ãšã£ãŠã©ã³ãã ã§ãããšãããèŠãèŠãæ
å ±ãæã¡èŸŒã¿ã45499ïŒç§ãã¡ãNAT-it world-eaterã§ããIP too = yy.yy.yy.yyïŒã
host2ãããyy.yy.yy.yyïŒ45499ã§ãbangããéå§ããã©ãããŒã«ãªããŸã§åŸ
æ©ããŸããçºä¿¡ãã±ããã21393ã«çããNATã®ãœãŒã¹ããŒããåä¿¡ããŸããttlãæ··ä¹±ããããhost1ããã³host2ã§ã¹ããã¡ãŒã«ããæ
éãæ€åºããŸããã host2ããã®ãã±ããçæé床ã¯1ç§ããã5ãã±ããã§ããã åæã«ãNAT2ã«ãŒã¿ãŒã«ã¯ãç¡é¢ä¿ãªïŒãŠãŒã¶ãŒãèããããšãããïŒãã©ãã£ãã¯ããããã«è² è·ãããã£ãŠããŸããã
æåã®ãæ
éãã¯ãå®éšéå§ã®çŽ8æéåŸã«çºçããŸããã ãã®åŸãèŸ²å Žå
šäœãäžæ©åãããã«æ®ã£ãŠãããããããã«ããã€ããèµ·ãããŸããã åŸç¶ã®ãã®ã¯æ°åããéãçºçãå§ããŸãããããã§ã¯ããå€éšã®ããã©ãã£ãã¯ã®åœ±é¿ã«ã€ããŠç©ºæ³ããããšãã§ããŸãã
ããããæ
éãã®æ§åã§ãã çµè«ã¯éžæçã§ãããå¿
èŠãªå¶ç¶ã®äžèŽã䌎ããããããŒãããã±ãŒãžã®ã¿ãå«ãŸããŸãã
ãã©ãã£ãã¯åéã®ãããªãããŒããã€ã³ãã§ã®ã¹ããã¡ãŒåºåãAR-750ã«ãŒã¿ãŒã®å€éšã€ã³ã¿ãŒãã§ã€ã¹ã§NATãå®è¡ããåŸïŒãã©ãã£ãã¯ïŒã«è¡šç€ºãããŸãã
02ïŒ19ïŒ05.060809 IP xx.xx.xx.xx.21393> yy.yy.yy.yy.45499ïŒUDPãé·ã0
05ïŒ07ïŒ00.178149 IP xx.xx.xx.xx.21393> yy.yy.yy.yy.45499ïŒUDPãé·ã0
06ïŒ28ïŒ35.355623 IP xx.xx.xx.xx.21393> yy.yy.yy.yy.45499ïŒUDPãé·ã0
07ïŒ16ïŒ29.764069 IP xx.xx.xx.xx.21393> yy.yy.yy.yy.45499ïŒUDPãé·ã0
11ïŒ28ïŒ06.899109 IP xx.xx.xx.xx.21393> yy.yy.yy.yy.45499ïŒUDPãé·ã0
æ
éããæ€åºããããhost1ã®ã¹ããã¡ãŒåºåïŒæéã¯åæãããŠããªããããã¿ã€ã ã¹ã¿ã³ããšhost2ãã©ãã£ãã¯ã®ãã³ãããã®åºåã®éã«ççŸããããŸãïŒã
02ïŒ18ïŒ20.480468 IP xx.xx.xx.xx.21393> 10.140.80.130.2429ïŒUDPãé·ã0
05ïŒ06ïŒ15.496093 IP xx.xx.xx.xx.21393> 10.140.80.130.2429ïŒUDPãé·ã0
06ïŒ27ïŒ50.464843 IP xx.xx.xx.xx.21393> 10.140.80.130.2429ïŒUDPãé·ã0
07ïŒ15ïŒ44.839843 IP xx.xx.xx.xx.21393> 10.140.80.130.2429ïŒUDPãé·ã0
11ïŒ27ïŒ21.589843 IP xx.xx.xx.xx.21393> 10.140.80.130.2429ïŒUDPãé·ã0
host2ã«çŽæ¥ãã³ãããçµæããããNAT1ãžã®å€æŽãããŠããªãå€æããµããŒããããã€ã³ã4ããã®ãã±ãããhost2ã«å°éãå§ããããšã¯æããã§ããããç§ã¯ãããsoããŸããã
ããã¯ããã»ã©æ£çŽã§ã¯ãªãå®éšã§ãã ãããããã©ã°ã©ã7ã§æ¯èŒçäœãæ€çŽ¢é »åºŠã§ããæ¯èŒç劥åœãªæéã§ç®çã®çµæãéæã§ããããšã瀺ããŸããã ããç©æ¥µçãªãã¹ãã£ã³ã°ã«ãããããã«åççã«ãªããŸãã ãã¡ããããå·¥æ¥çšãã¢ããªã±ãŒã·ã§ã³ã¯é
åçã§ã¯ãããŸãããã...ãããããã¯å¯èœã§ãã 説æãããŠããã¢ã«ãŽãªãºã ãšå®éšã¯ãå éæé©åãã«ãã¹ã¬ããã¢ãããŒããªã©ã®ããŒãã«é¢ããæèã®ç³§ãšãªããŸãã
UPDïŒãã±ãããéä¿¡å
ããŒãã«å€æŽãå ããŠhost2ããéä¿¡ãããããšãå¿ããŠãããããéä¿¡å
ããŒããNAT2ã«å¯ŸããŠå€æŽãããNAT2ãžã®å€æãçµäºããã®ãåŸ
ã€ã®ã¯ã³ã¹ããããããããŸãã