ProxyARP λѤ˴ؤ뾮ʸ 1994/12/05 

Al Longyear <longyear@netcom.com> 

ܸ :   (kei@sm.sony.co.jp)
     : ٹ    (shorie@ibm.net)
           ߷   (k957134@sci.u-ryukyu.ac.jp)
            ͺ  (nakano@apm.seikei.ac.jp)


== Ԥ ==
ϡLinux MINI-HOWTO ΡProxy-ARP Ǥ
¿ޤƼϤ
ޤ䡢äȤ狼䤹Ƥʤɤޤ顢
ԤޤǥեɥХå򤪴ꤤפޤ
==============




I. ȥ
ΥɥȤ Linux  PPP  SLIP ХǥХȤȤ
ץ ARP (Address Resolution Protocol) ȤȹͤƤ
оݤˤƽ񤫤Ƥޤ
¾ʸǤϡץ ARP  gracious ARP (ۤΤ褤 ARP)ʤɤ
ƤǤ뤳Ȥ⤢ޤ
ץ ARP ȤȤ׵Ϥ褯Фޤ줬Ȥʤ硢
եȥɤȹͤʤȤʤʤäƤޤäΤ
Ȥ֤ã⤤ޤ

ΥɥȤȤʤäơץ ARP ϤɤΤ褦ʤȤͭѤǡ
ɤΤ褦ʤȤˤϻȤʤƤ褤Τ褯򤷤Ƥ館褦
äƤޤ

ץ ARP Ȥȡ(ץ)Сפˤϩơ֥뤵
ѹС¾ΥƥǤϷϩơ֥ѹɬפޤ
ΤȤϡ⡼ȥƥưŪʥͥåȥ³ǽˤʤ
Ȥ̣Ƥޤ

ǡ֥СפȸƤǤΤϡ̣Ǥϸ꤫⤷ޤ
TCP/IP ϡԥġԥ()ΥͥåȥĶǤ
¾ΥƥǤϡС񸻤󶡤뤳Ȥǡֶͭפ졢
饤ȤϤѡפޤTCP/IP ˤϡμ
饤ȡСطϤޤ
ȤϤä륳ԥ塼פ򥵡ФȸƤӡ
äͤ륳ԥ塼פ򥯥饤ȤȸƤ֤ΤǤ͡

Linux ΥͥåȥեȤ ץ ARP ľܥݡȤƤޤ
Τǡ¾ΥƥǻȤƤ proxyarpd Τ褦̤ʥǡ
ɬפޤ

PPP 򥵥ݡȤ륳ɡpppdˤȡSLIP 򥵥ݡȤ륳ɡʤξ
ʤȤġdip-uriˤξ proxy ARP 򥵥ݡȤƤϤǤ
˲äͥåȥѥץ ARP ϩơ֥
ɽ뤳ȤǤϤǤ

ץ ARP ɤΤ褦ưɤʻ˻ȤΤ򤹤
ˤϡŪ˥ͥåȥɤΤ褦˵ǽΤˤĤ
ŪɬפǤ
ʲ3ĤξϤǤ TCP/IP ͥåȥɤΤ褦˵ǽ롼ƥ󥰤
ɤưΤñ˽Ҥ٤ޤ



II. ϡɥ¦鸫ͥåȥ

ͥåȤȡ󥰤ȤäͥåȥϤ٤ MAC
(Media Access Control) ɥ쥹ȤäƼ¸Ƥޤ
Ϥ줾Υȥ顼˳Ƥ줿ϡɥɥ쥹
Ǥꡢ줾 MAC ɥ쥹ͣ(unique)ΤΤǤ
ϥȥ顼Υ᡼Ƥޤ
եȥˤäѹ뤳ȤǽǤŪʰ̣Ǥ
롼ȿǤ

IP ɥ쥹 ARP å ȸƤФ롢եȥ̤
ơ֥ˤä MAC ɥ쥹Ѵޤ
ͥåȥեȤ IP ѥåȤꤵ줿ɥ쥹
ˤϡMAC ɥ쥹Τ뤿ˤΥå򸡺ޤ
åˤʤäˤϡ IP ɥ쥹 MAC ɥ쥹
Ѵ뤿ˡͥåȥ³Ƥ뤹٤ƤΥƥ
Фü׵ȯԤޤ
줬 ARP (Address Resolution Protocol)׵ȸƤФƤΤǤ

ARP ׵ФƤ бMAC ɥ쥹֤ޤ
 MAC ɥ쥹ϡˤ ARP ȤʤƺѤ褦ˡå
ߤޤ

ץ ARP ϤλȤߤȤäơ⡼³򤦤ޤ뤳Ȥ
Ǥ櫓Ǥ

åΥȥ꡼롼⤢ޤ
ɥȤǤϤˤĤƤϿޤ󡣤˴ؤƤ
IP ͥåȥ˴ؤɥȤ򻲾ȤƲ

(ȡ󥰤ϳȯǡƥȥ١ǤѲǽǤ
Linux ΰŪʥͥåȥΤȤ̣ǤϤϤꥤͥå
ǤǤ餳衢֥ͥåȡפȤդȤޤ
Ʊͤεǽϥȡ󥰤ǤȤޤȡ󥰤
롼ƥ󥰤˴ؤʤ)



III. ץ ARP Ȥͳ

ŪϡҤȤĤΥͥåȥץФơ2İʾ
IP ɥ쥹Ƥ뤳Ȥˤޤ
ϡͥåȥȥΥϡɥɥ쥹б
ɲä IP ɥ쥹Υȥ꡼ ARP å뤳Ȥ
¸ޤ
ˤäơ IP ɥ쥹ϡɥ(MAC)ɥ쥹Ѵ
ARP ׵Ф Linux ƥϤޤ뤳ȤǤ櫓
Ǥ



IV. TCP/IP 롼ƥ

[äƤȤꤷޤǤϡ֥ѥ˥-ĥ꡼
롼ƥ󥰤ˤĤƽҤ٤ƤꡢIP ѥåȤΡ֥-롼ƥ󥰡
ǤϤޤ
ȡ󥰤Ǥϥ롼ƥ󥰤Ȥޤ IP 
롼ƥ󥰤ǤϤʤʥȡ󥰤ΡMAC ؤǹԤ
ΤǤ
ȡ󥰤 MAC 롼ƥ󥰤ԤäƤΤϡ줬
ȡ󥰤ˤѥåȤɬפǤ
Ūˤ IP 롼ƥ󥰤ȤϿ侩Ǥޤ]


ץ ARP ˤĤƤäȾܤΤ뤿ˤϡIP ѥåȤ
ͥåȥǤɤΤ褦˥롼ƥ󥰤ΤΤɬפޤ
ǤϤޤܤҤ٤ĤϤޤ
ܤΤꤿˤϡ⤵줿ܤޤ
(ܤǤ顢RFC ɥȤɤߤ)

IP ѥåȤϡ줬ͳͥåȥΤ줾ʳ
롼ƥ󥰤ޤ줾Υۥȡ롼ȥ
ϡ줾줬ϩơ֥Υԡͭ
ȤŤƤ줾 IP ѥåȤɤФ褤ꤷޤ

롼ƥ󥰤ϡIP ͥåȥ ȤäƹԤʤޤ
줾Υͥåȥ󥿡եˤϡˡ IP 
ͥåȥȡIP ɥ쥹ͥåȥޥƤƤޤ
IP ͥåȥ ȤϡñIP ɥ쥹 ͥåȥޥΥӥå
ȤѤȤäΤǤ㤨СIP ɥ쥹 10.124.35.40 ǡ
ͥåȥޥ 255.255.0.0 ξˤϡIP ͥåȥ ϡ
10.124.0.0 Ȥʤޤ
ǤϥХñ̤ΥͥåȥޥȤäƤޤХñ̤Ǥ
ʤͥåȥޥ(:㤨Х֥ͥåƥ󥰤ʤ)ξǤ
ƱͤǤ

Linux ϥͥåȥޥϩȥ꡼ȴϢŤޤ
ƥ˷ϩդä(: route ޥɤʤ)ˤϡ
IP ɥ쥹ȴϢԤΥǥХꤷޤ
κݤ˥ͥåȥޥꤷʤСifconfig ǤΥǥХ
ꤷȤ˻ꤷǥեȥͥåȥޥȤޤ

롼ƥ󥰤˴ؤƤ뤿ˡΤ褦ʹ
ƥͤƤߤޤ礦

Destination     Netmask          Gateway       Flags    Device
10.124.0.0      255.255.0.0      0.0.0.0       U        eth0
10.125.0.0      255.255.0.0      0.0.0.0       U        eth1
10.126.0.0      255.255.0.0      10.125.31.1   UG       eth1
10.124.12.5     255.255.255.255  0.0.0.0       UH       ppp0
0.0.0.0         0.0.0.0          10.124.25.1   U        eth0


Υƥ3ĤΥͥåȥǥХäƤޤ
2Ĥϥͥåȥȥǡ1Ĥ PPP ǥХǤ
3ĤΤ줫 IP ѥåȤ夷ˤΥƥ
̤ơ 3ĤΤɤΥǥХФƤѥåȤžޤ

ǥեȤηϩϡΥȥ꡼ǼƤ̤ꡢ
10.124.25.1 ΥȥǥХǤ
ȥ뤿ˤ eth0 ȥ餬Ȥޤ

PPP ǥХ1³Ƥꡢ IP ɥ쥹 10.124.12.5
Ǥ

eth0 ǥХ IP ͥåȥ 10.124.0.0 ˤꡢeth1 ǥХ
IP ͥåȥ 10.125.0.0ˤޤ

ˡIP ɥ쥹 10.125.31.1 Υȥ̤Ѳǽ
IP ͥåȥ 10.126.0.0 ؤΥͥåȷϩ¸ߤޤ

롼ƥ󥰤ɤΤ褦˹ԤΤ򤹤뤿ˡ10.125.45.1
 IP ѥåȤͤƤߤޤ礦

Linux Ϸϩơ֥򸡺줾Υȥ꤫ͥåȥޥ
ӥåȤȤѤȤꡢԤ IP ɥ쥹Ӥޤ
פ顢ѥåȤϤΥǥХޤ

̤ȤơIP ɥ쥹 10.125.45.1 ΥѥåȤϡeth1 ǥХ
ޤ

Ʊͤˡ IP ɥ쥹 10.124.12.6 ΥѥåȤ eth0 ǥХ
ΤǤIP ɥ쥹 10.124.12.5 ΥѥåȤ ppp0 ǥХ
ޤ
ʤʤ顢ppp0 ǥХ 10.124.12.5 ȤҤȤĤ
IP ɥ쥹뤳ȤǤʤǤ

10.126.31.4 ΥѥåȤξϤäȰۤʤޤ
ξˤϡΥɥ쥹³줿֥ȥפ¸ߤ
Ǥ
ǽҤ٤褦ʤΤƱˡǸޤñ eth1 ǥХ
ΤǤϤʤ10.125.31.1 Ȥ IP ɥ쥹Υƥ
ΤǤĤޤꡢǽŪʹԤΥɥ쥹 10.126.31.4 ǤϤʤ
ȥ IP ɥ쥹(10.125.31.1)б MAC ɥ쥹
櫓Ǥ

10.125.31.1 Υƥ夷顢Υƥηϩơ֥
ȤäơǽŪʹԤ 10.126.31.4 žޤ (ȤФ
ƥ eth3 󥿡եȤä)

Τ褦ʥ롼ƥ󥰤Ǥϡʸ꤬ȯޤ
ˤĤƤϤǤϤޤ꿨줿ޤ󤬡ȤС
10.126.31.1  10.126.31.4 Υɥ쥹ФϩäƤʤä硢
ȤȤ긵ФơICMP (Internet Control Message Protocol)
ѥåȤ֤֤ΥۥȤФϩ̵פȤΤ餻ޤ



V. ץ ARP ˤ롼ƥ

ơäȤɬפʬˤĤƤäΤǡΥɥ
Ūʬ˰ܤ뤳Ȥˤޤ礦

ץ ARP ¹ԤƤ Linux IP ɥ쥹бϡ
ɥ MAC ɥ쥹Υȥ ARP å˳Ǽ뤳Ȥȡ
Υå夬 IP ɥ쥹 MAC ɥ쥹ѴΤ˻Ȥ
ȤפФƲ

⡼ȥƥब IP ɥ쥹 10.124.12.5 ³ȤˡLinux
Ϥ IP ɥ쥹ȡeth0 ȥб MAC ɥ쥹 ARP
å˳Ǽޤ

θ IP ɥ쥹 10.124.12.5  MAC ɥ쥹Ѵ׵(ARP)
ä硢Υơ֥뤫ȥ꡼׵ḵ֤ޤ
η̡ IP ɥ쥹줿ѥåȤϡä󤳤ΥФ
졢ФϤ⡼ȥƥ(10.124.12.5)žޤ

줬 ץ ARP λȤߤǤ
Ф ⡼Ȥ IP ɥ쥹Ф proxy (Ĥޤꡢ͡ǤФ결
ɽΡ׿ͤʤɤʤ) ȤƵǽ櫓Ǥ
ĤޤꡢARP ׵˱뤳Ȥǡ⡼Ȥ IP ɥ쥹Ф
ѥåȤդž櫓Ǥ

Ȥǡץ ARP ޤư뤿ˤϡ⡼Ȥ IP ɥ쥹
(Ǥ 10.124.12.5) ϡ(:Ф³Ƥ)ͥåȥ
ץ IP ͥåȥΤΰĤǤʤФʤޤ

ˤĤͳޤ

ܤͳϡȥ MAC ɥ쥹ϡб IP ɥ쥹
 ARP å˳Ǽ뤫ǤARP åϡIP ɥ쥹
 MAC ɥ쥹ؤѴơ֥ʤΤǡARP (assignment)
ʤˤϡMAC ɥ쥹ɬפǤ

ܤͳϡͥåȥΤ٤ƤΥƥϡ줾ȼ
롼ƥ󥰤򤪤ʤäƤȤǤ
줾ΥƥϾʤȤ⡢⡼Ȥ IP ɥ쥹Ф
IP ѥåȤ뤿ˤϡ֤ƱˤĤʤäƤץФ
ͥåȥץʤФʤʤȤϤ狼äƤޤ

(:⡼ 10.124.12.5 Ф Proxy ARP 򤢤Ƥ
󥿡եϡ10.124.0.0 ͥåȥ³Ƥɬפ롢
ȤȤǤ礦
ۤΥͥåȥˤ륷ƥब 10.124.12.5 ˥ѥåȤ硢
Ȥꤢ 10.124.0.0 Υͥåȥޤ׵դƤϤʤ
ǡ󥿡ե 10.123.0.0 ͥåȥʤɤˤäƤ⡢⤽
 ARP ׵᤬äȤ狼ޤ󤫤顣ARP ׵ϥͥåȥ
Ф֥ɥ㥹ȤȤƼ¹ԤΤǤϤʤäȻפޤ)


VI. ץ ARP ޤưʤ

⡼Ȥ IP ɥ쥹10.124.12.5 ǤϤʤơ㤨 10.200.3.1 
ͤƤߤޤ礦

1. ⡼ȥƥϡΥɥ쥹ɤä餤狼ʤ

⡼ȥƥब狼äƤΤϡIP ͥåȥ 10.124.0.0 
ˤ eth0 ³Ƥ륱֥˥ѥåȤФȤ
ȤǤ10.200.0.0 Ȥ IP ͥåȥϤޤ
ΰΥѥåȤɤФΤ狼ʤ櫓Ǥ


2. ARP ȥ꡼ˡФб MAC ɥ쥹
   ФơɤΥȥȤФ褤Τ狼ʤ

ϡץ ARP ȤȤƤ⤦ޤưʤˡǤ褯
Ǥ IP ɥ쥹ʬ³Ƥͥåȥ
󥿡ե˳ƤƤ롢 IP ͥåȥɥ쥹
ȤۤʤȤǤ



VII. ץ ARP 򤱤ʤФʤ

1.  IP ɥ쥹ФƱ ץ ARP ȥ꡼
   ĤǤʤФʤޤBSD ξ硢륢ɥ쥹ϰϤ
   Ф ץ ARP 򤪤ʤˤϤΥɥ쥹ϰϤͤʤ
   Ȥݾڤɬפޤ
   ϤĤޤꡢBSD ١ΥͥåȥǤϡͥåȥ
   ΤҤȤĤΥФ˳Ƥɬפ뤳Ȥ̣ޤ

⤦ٶĴƤޤ⤷ ARP ׵Фʣα
ä硢BSD ƥǤҤɤȤˤʤޤ


2. Ǥ˥ͥåȥ¸ߤƤ륢ɥ쥹Фơץ ARP 
   ¹ԤƤϤޤ

ϡǽҤ٤ΤäȤХꥨǤͥåȥ
ˤǤ¸ߤIP ɥ쥹Ф ץ ARP ¹Ԥȡ
Ĥα뤳Ȥˤʤޤ

ĤޤꡢС⡼ȥƥȤ³˥ץ ARP 
ŬѤˡߥͥåȥǻ IP ɥ쥹
⡼³ήѤꤷƤϤʤȤȤǤ
(: IP ɥ쥹ΥޥؤΥͥ򥵡Ф
 proxy ARP ˻ȤäƤޤĤޤΥͥΩʤ
ʤ롢ȤȤǤϤʤȻפޤ)



VII. ץ ARP ȤϤǤʤƱͤεǽ¸ˤϡ

ʤ ץ ARP ȤʤˤϤĤؼʤޤ

äȤñʤΤϡƤΥ⡼ȥɥ쥹줾 IP ͥåȥ
ɥ쥹ͭǤ褦ˡ⡼ IP ɥ쥹򥵥֥ͥåȲƤޤ
ȤˡǤ
ơ줾Υ롼(٤ƤΥۥȾǡȥɥ쥹
ɽƤ뤹٤ƤΥǥХǤ)˥ͥåȥϩ
դäΤǤ

ˤäơ줾Υ⡼ IP ɥ쥹³Ƥ륵Ф
ФƤ IP ͥåȥΡʥѥåȤ)褦ˤǤޤ

(: ⡼ȥޥΥɥ쥹ޤȤƥ֥ͥåȤ˲ -> 
Υ֥ͥåȤؤηϩ򥲡ȥʥ֥ͥåȤؤΥȥޥΡ
Υȥˤ˽񤯡-> ֥ͥåȲͥåȥؤ³׵᤬
֥ͥåȤΥȥˤ褦ˤʤ롣ȤȤǤ礦)

ˡ롼ȡо gated ȤȤȤ
Ǥޤ

IP ͥåȥ򥵥֥ͥåȲʤˤϡ٤ƤΥۥȷϩ
ƤޤȤˡ⤢ޤ
ĤޤꡢƤΥ⡼ IP ɥ쥹줾Фơ줾Υ롼
ȥ꡼ꤷƤޤΤǤ

ȥȥ롼ξ򥢥åץǡȤɬפϤޤ
ͥåȥƤΥۥȤѹɬפϤޤ

줾ΥۥȤ롼˥ѥåȤ˻Ȥǥեȥ롼
̤ơICMP re-direct ѥåȡפ׵ȯԤۥȤ졢
η̡줾Υо˥ۥȷϩưŪɲä뤫Ǥ


VIII. 

ץ ARP ɤΤ褦ưɤΤ褦ʤΤ򾯤Ǥ
ǤȤäƤޤ

pppd  dip-uri ȤˤϡεΤ褦ʼΤäƤɬפ
ʹʤȤˡˤޤ󡣤ΥեȥưŪ˼¹Ԥ
뤫Ǥ

ץ ARP ǽβǤϤޤ󡣤Ĥξˤޤ
ǽˡˤޤ

ʤΥͥåȥˤεǽΩĤɤʬȽǤ
뤳ȤԤƤޤ

äȾɬפˤϡW. Richard Stevens ˤ
TCP/IP Illustrated, volume 1 "The protocols" (󥦥쥤Ҵ)
ʤɤ⤷ޤ

ɤǤơ꤬Ȥ
