SSM lórí OpenVPN: títẹ̀lé orísun kan àti ẹgbẹ́ kan láti ìbẹ̀rẹ̀ dé ìparí
Tẹ̀lé ìṣàn multicast kan tí ó yàtọ̀ fún orísun kan nípasẹ̀ ẹ̀tọ́ ọmọ ẹgbẹ́ olùgbà, yíyan RPF àti àwòrán ìfijíṣẹ́ tunnel kí o tó dẹ́bi fún VPN.
Yan ìṣàn kan àti olùgbà kan, lẹ́yìn náà tẹ̀lé pápá yẹn nípasẹ̀ gbogbo ìtẹ̀lé dípò kí o dán multicast wò gẹ́gẹ́ bí ẹ̀ka. Àwòrán tí ó yàtọ̀ fún orísun kùnà ní ìpele kan pàtó nínú mẹ́rin: olùgbà kò dara pọ̀ rí, olùṣàkóso pa packet kù ní ọ̀nà ìpadà rẹ̀, kò sí ipò kankan ní kernel, tàbí tunnel kò fi ẹ̀dà kankan ránṣẹ́ rí. Ṣíṣe iṣẹ́ ní ìtẹ̀lé yẹn gba ìṣẹ́jú díẹ̀ fún ìtẹ̀lé kọ̀ọ̀kan ó sì sọ fún ọ èwo nínú mẹ́rin tí o ní ní gidi.
Kọ́kọ́ fi orísun, ẹgbẹ́ àti olùgbà múlẹ̀
Kọ àwọn iye mẹ́ta sílẹ̀ kí o tó fọwọ́ kan ẹ̀rọ kankan: àdírẹ́sì orísun tí yóò ránṣẹ́, àdírẹ́sì ẹgbẹ́ tí olùgbà yóò dara pọ̀ mọ́, àti ẹ̀ka nẹ́tíwọ́kì tí olùgbà wà. Fún ìṣàn IPv4 àpẹẹrẹ kan, orísun 10.50.0.10 àti ẹgbẹ́ 232.20.30.40 ni irú pápá tí ó bá àwòrán tí ó yàtọ̀ fún orísun mu. Ohunkóhun tí kò ṣe kedere ju àwọn iye mẹ́ta yẹn lọ kò lè dán wò.
Ìwọ̀n 232/8 jẹ́ ìpamọ́ fún multicast tí ó yàtọ̀ fún orísun, àti àwòrán náà ni a ṣàlàyé rẹ̀ nínú RFC 4607. Tí ẹgbẹ́ rẹ kò bá sí nínú ìwọ̀n yẹn nígbà tí o rò pé o ń ṣiṣẹ́ SSM, dúró kí o sì jẹ́rìí ohun tí ìdásílẹ̀ náà ń gbèrò gan-an, nítorí pé ìdara pọ̀ olùgbà àti ìpinnu ìṣáwọ́lé olùṣàkóso méjèèjì sinmi lórí pé àwòrán náà wà ní ìbámu.
Ṣàyẹ̀wò pé olùgbà ti dara pọ̀ mọ́ orísun
Ìjábọ̀ ẹ̀tọ́ ọmọ ẹgbẹ́ fún ẹgbẹ́ nìkan kì í ṣe ìdara pọ̀ tí ó yàtọ̀ fún orísun. Béèrè lọ́wọ́ olùgbà orísun tí ó béèrè, àti ní olùṣàkóso ìtẹ̀lé àkọ́kọ́ wo ipò ẹgbẹ́ láti rí i bóyá àkójọ orísun yóò farahàn. Tí ìjábọ̀ kò bá gbé orísun kankan, olùṣàkóso yóò kà á gẹ́gẹ́ bí ìdara pọ̀ láti orísun yóò wù, àti gbogbo àwòrán yóò di ohun tí o kò gbèrò fún ní ìdákẹ́jẹ́.
Lórí olùgbà Linux, ṣàyẹ̀wò ohun tí socket forúkọsílẹ̀ fún ní gidi àti ohun tí kernel kọ sílẹ̀. Fáìlì ìṣètò ohun èlò kì í ṣe ẹ̀rí; tábìlì ẹ̀tọ́ ọmọ ẹgbẹ́ ni ẹ̀rí. Kà á nígbà tí olùgbà ń ṣiṣẹ́ ní gidi, nítorí pé àkọsílẹ̀ lè dúró díẹ̀ lẹ́yìn tí ìlànà tí ó dá a ti jáde. Àkọsílẹ̀ àtijọ́ láti ìdánwò àtẹ́lẹ̀ ni orísun ìgbẹ́kẹ̀lé tí ó dájú fún ìgbẹ́kẹ̀lé irọ́.
ip maddr show dev eth0
cat /proc/net/igmp | sed -n '1,40p'
Tí ìdara pọ̀ bá wà pẹ̀lú orísun tí a retí, lọ sí àwọn olùṣàkóso. Tí kò bá sí, ìṣètò tunnel kankan kò ní ṣèrànwọ́, nítorí pé kò sí ohun tí a máa fi ránṣẹ́.
Ṣàyẹ̀wò ọ̀nà ìpadà kí o tó wo tunnel
Ìtọ́jú multicast ń ṣe àyẹ̀wò ọ̀nà ìpadà, àti packet tí ó dé lórí interface mìíràn yàtọ̀ sí èyí tí ọ̀nà unicast ń tọ́ka sí ni a sọ nù. Èyí ni ìdí tí ó wọ́pọ̀ jùlọ tí ìṣàn tí a ń ránṣẹ́ kedere kò fi dé ìtẹ̀lé tó tẹ̀lé, àti pé kò ṣe àṣìṣe kankan tí ó wúlò ní ìpele ohun èlò.
Lórí olùṣàkóso tí ó dojú kọ orísun, fi ọ̀nà sí orísun wé interface tí àwọn packet ń dé lórí gan-an. Lórí olùṣàkóso tí ó dojú kọ olùgbà, ṣe bẹ́ẹ̀ fún ẹ̀ka nẹ́tíwọ́kì olùgbà fúnra rẹ̀ kí o sì jẹ́rìí pé àkójọ interface tí ó ń jáde ní ìsopọ̀ sí ibẹ̀. Àìbámu ní ọ̀nà kankan ni ìkùnà RPF, kì í ṣe ìkùnà ẹ̀tọ́ ọmọ ẹgbẹ́.
Lẹ́yìn náà jẹ́rìí pé TTL orísun tóbi tó láti ye àwọn ìtẹ̀lé tí a tọ́jú tí o ṣe àwòrán rẹ̀ kọjá. Ìṣàn tí ó ṣiṣẹ́ lórí olùṣàkóso àkọ́kọ́ tí ó sì kú lórí èkejì sábà jẹ́ ìbéèrè TTL kì í ṣe ìbéèrè ìlànà.
Ka ipò multicast kernel dípò ìṣètò
Ìṣètò sọ fún ọ ohun tí o béèrè; kernel sọ fún ọ ohun tí ń ṣẹlẹ̀. Ní gbogbo ìtẹ̀lé Linux, ka àwọn àkọsílẹ̀ ìtọ́jú multicast kí o sì jẹ́rìí pé àkójọ interface tí ó ń wọlé àti tí ó ń jáde wà fún pápá orísun àti ẹgbẹ́ gangan. Àkọsílẹ̀ fún ẹgbẹ́ pẹ̀lú orísun gbogbogbò jẹ́ ohun mìíràn, kò sì ní ṣàlàyé ìṣàn tí ó yàtọ̀ fún orísun.
ip mroute show from 10.50.0.10 iif eth1
ip route get 10.50.0.10
Àwọn daemon ìtọ́jú ń pa irọ̀ wọn mọ́ lórí ipò yẹn, àti pàṣẹ tí ó ń tẹ̀ ẹ́ jáde sinmi lórí èyí tí a fi sórí iṣẹ́. Ìlànà yẹn dúró ṣinṣin: béèrè lọ́wọ́ daemon fún àkọsílẹ̀ òkè rẹ̀ fún pápá, lẹ́yìn náà béèrè lọ́wọ́ kernel bóyá àkọsílẹ̀ ìfiránṣẹ́ wà. Daemon tí ó rò pé òun ń fi ránṣẹ́ nígbà tí kernel kò ní àkọsílẹ̀ ni ìṣòro ìwọ̀n ìṣètò lórí ẹ̀rọ yẹn.
Nígbà tí àwọn méjèèjì kò bá gbà, tún ẹ̀rọ ṣe kì í ṣe VPN. Kò sí ohun tí ó wà nísàlẹ̀ tí ó lè ṣàtúnṣe fún ìtẹ̀lé tí kò ń fi ìṣàn tí o béèrè ránṣẹ́. Kọ pápá, interface tí ó ń wọlé àti àkójọ tí ó ń jáde fún gbogbo ìtẹ̀lé nígbà tí ìṣàn ń ṣiṣẹ́. Àkọsílẹ̀ yẹn yí ìkùnà tó tẹ̀lé padà sí ìfiwéra dípò ìwádìí tuntun.
Pinnu bí tunnel ṣe ń ṣe ẹ̀dà ní gidi
Níbí ni multicast lórí VPN kò ti ní jẹ́ iṣẹ́ ojoojúmọ́ mọ́. Tunnel ojú-ọ̀nà dé ojú-ọ̀nà ń fi packet ránṣẹ́ sí ẹlẹgbẹ́ kan ṣoṣo ní ìparí kejì, nítorí náà ẹ̀dà kan dé ọ̀dọ̀ oníbàárà kan gangan. Ẹ̀ka tí a fi àfárá so ń hu ìwà bí ìsopọ̀ tí a pín, nítorí pé tunnel gbé férémù náà àti àfárá pinnu ohun tí yóò kún. Ìwọ̀nyí jẹ́ àwòrán ìfijíṣẹ́ ọ̀tọ̀ọ̀tọ̀, àti àwòrán tí ó gbà èkejì nígbà tí ó ń ṣiṣẹ́ èkíní yóò dàbí ẹni tí ó ń ṣiṣẹ́ fún olùgbà kan yóò sì kùnà fún ẹni tó tẹ̀lé.
Fún olùgbà tó ju ọ̀kan lọ nípasẹ̀ server ojú púpọ̀, ìdàpọ̀ gbọ́dọ̀ jẹ́ àwòrán ní kedere. Fífi ọ̀nà multicast sórí ẹnubodè kò kọ́ server VPN èwo nínú àwọn ẹlẹgbẹ́ ni yóò gba ẹ̀dà, kò sì sí ọ̀nà kankan ní ẹ̀gbẹ́ oníbàárà tí yóò pinnu bẹ́ẹ̀ fún un. Níbi tí ìbéèrè bá jẹ́ ọ̀pọ̀ olùgbà, lo ìdàpọ̀ tí a ṣètìlẹ́yìn tàbí àfidánwò tí a yàn pẹ̀lú ìmọ̀, kí o sì kọ èyí tí o yàn.
Níkẹyìn, ṣàyẹ̀wò ní ọ̀dọ̀ olùgbà lábẹ́ àkíyèsí tóóró: orísun, ẹgbẹ́ àti port gangan, lórí interface tí o retí, nígbà tí olùgbà tí a fún láṣẹ kan ti dara pọ̀. SSM yan olùránṣẹ́, àti yíyan kì í ṣe ìjẹ́rìí olùránṣẹ́ yẹn, bẹ́ẹ̀ ni kì í ṣe àṣẹ fún ìṣàn multicast mìíràn láti kọjá ìlànà kan náà.