Ó ní ìbéèrè tí kò tẹ̀. Ẹ̀gbẹ́ kejì gbọdọ̀ gba pakẹti IP 1,500 byte kan náà tí olùránṣẹ́ ń gbé jáde, pẹ̀lú àwọn àkọlé. Tunnel kò lè fi pakẹti yẹn pẹ̀lú férémù tirẹ̀ sínú pakẹti IP 1,500 byte kejì, nítorí náà ohun kan nínú àpẹẹrẹ gbọdọ̀ juwọ́ sílẹ̀. Ìtẹ̀lé tí ó wà nísàlẹ̀ ni èyí tí mo ń lò nínú fèrèsé ìyípadà. Kọ ìsúnná byte, fi hàn ohun tí underlay lè gbé ní tòótọ́, lẹ́yìn náà yan ọ̀nà gbígbé kan ṣoṣo kí o sì jẹ́rìí pakẹti inu ní ẹ̀gbẹ́ kejì.

Kọ ìsúnná byte kí o tó yí profáìlì padà

Ìdìpọ̀ ń fi byte kún oríṣiríṣi ìpele, ìpapọ̀ sì jẹ́ ànímọ́ profáìlì rẹ kì í ṣe nọ́mbà dúró tí o lè wá. Ẹbí àdírẹ́sì, yíyan cipher, ìlànà gbígbé àti èyíkéyìí àṣàyàn ìrẹ́pọ̀ tàbí férémù ń yí nọ́mbà padà, nítorí náà ìyọkúrò tí a dà sílẹ̀ láti ìgbékalẹ̀ mìíràn kò ní láárí gẹ́gẹ́ bí ìsúnná. Bẹ̀rẹ̀ láti ìbéèrè inu, fi àfikún tí a wọ̀n fún pakẹti kọ̀ọ̀kan ti ìṣètò rẹ kún, kí o sì kọ ìwọ̀n ode tí ó jáde sínú tikẹ́ẹ̀tì ìyípadà kí ẹnikẹ́ni tó yí fáìlì padà.

Nọ́mbà méjì ń pinnu àpẹẹrẹ náà: pakẹti ode tí ó tóbi jù tí ọ̀nà ń gbé láìsí ìpín, àti àwọn byte àfikún tí ìdìpọ̀ rẹ nílò. Nígbà tí èkíní kéré ju èkejì pẹ̀lú 1,500, ọ̀kan nínú wọn gbọdọ̀ yí padà. Yíyan yẹn yóò di hárapọ̀tọ̀, kì í ṣe àtinúdá, nítorí náà mo kọ àwọn nọ́mbà méjèèjì kí mo tó sọ̀rọ̀ nípa àwọn àṣàyàn. Kò sí ohun kan ní ìpele tunnel tí ń rẹ́pọ̀ àwọn byte yẹn kúrò, kò sì sí nọ́mbà odidi MTU kan tí yóò mú ìbéèrè tí a fún ọ kúrò.

Ṣàyẹ̀wò underlay pẹ̀lú ping do-not-fragment

Wọ̀n ọ̀nà náà dípò gbígbẹ́kẹ̀lé MTU gbagede, nítorí ìsopọ̀ tí ó kéré jù nínú ọ̀nà ode ni ó ṣe pàtàkì. Ní Linux, -M do ń gbé bit do-not-fragment kalẹ̀ àti -s ń gba ẹrù ICMP, nítorí náà férémù 1,500 byte ń dáhùn pẹ̀lú 1,472 byte ẹrù nígbà tí a bá yọ àkọlé IP 20 byte àti àkọlé ICMP 8 byte kúrò. Gbé ẹrù náà sókè títí ìdánwò yóò fi kùnà, lẹ́yìn náà fò lọ sí ìwọ̀n jumbo láti wo bóyá ọ̀nà náà ń gbé e rárá.

ping -M do -s 1472 -c 2 198.51.100.10
ping -M do -s 8972 -c 2 198.51.100.10
tracepath -n 198.51.100.10

Ọ̀nà tí ó kọjá 1,472 tí ó sì kùnà ní 8,972 kò lè gbé pakẹti inu 1,500 byte pẹ̀lú àfikún nínú pakẹti ode kan ṣoṣo. Ìdáhùn yẹn ni o nílò kí o tó ṣí ìṣètò VPN. Ó tún pinnu èwo nínú àwọn apá méjì tí ń bọ̀ ni ó kan ọ, nítorí náà pa àwọn èsì ìdánwò méjèèjì mọ́ lẹ́gbẹ̀ẹ́ tikẹ́ẹ̀tì. Ríronú níbí ń ná fèrèsé ìtọ́jú kan, nítorí tunnel tí ó ń sọ ara rẹ̀ di up kò sọ ohunkóhun nípa pakẹti tí ó tóbi jù tí ọ̀nà yóò gbà.

Gbé MTU ọ̀nà sókè níbi tí gbogbo hop bá gbà nìkan

Férémù jumbo jẹ́ ànímọ́ end-to-end, kì í ṣe ètò tí o ń tan ní àwọn ibi ìparí méjì tí o ń ṣàkóso lẹ́ẹ̀kọ̀ọ̀kan. Gbogbo switch, router àti ìfilọ̀lẹ̀ olùpèsè lórí ọ̀nà ode gbọdọ̀ gbà ìwọ̀n tí ó tóbi, hop 1,500 byte kan sì yóò ju pakẹti tí o ṣẹ̀ṣẹ̀ sọ di tóbi nù ní ìdákẹ́jẹ́. Gbígbé gbagede àdúgbò nìkan sókè ni ìyípadà ìdajì tí ó ṣe àwáwí tí ń jẹ́ kí tunnel dàbí ẹni tí ó ti bàjẹ́ nígbà tí underlay ń ju nǹkan nù ní ìdákẹ́jẹ́.

ip link set dev eth1 mtu 9000
ip link show dev eth1
ping -M do -s 8972 -c 2 198.51.100.10

Yí gbagede padà, lẹ́yìn náà tún ọ̀nà kan náà ṣàyẹ̀wò kí o tó yí ohunkóhun mìíràn padà. Tí ìdánwò bá ṣì kùnà, dá a padà pẹ̀lú ip link set dev eth1 mtu 1500 kí o sì lọ sí ìpín dípò jíjà pẹ̀lú olùpèsè nípa ìsopọ̀ tí kì í ṣe tirẹ̀.

Lo ìpín tunnel nígbà tí underlay kò lè tóbi sí i

Ọ̀nà ìpín tí a ti ṣe àtìlẹ́yìn fún lábẹ́ pakẹti inu ń jẹ́ kí ọ̀pọ̀ pakẹti ode gbé pakẹti inu kan, ibi ìparí tunnel tí ó dojú kọ yóò sì tún wọn ṣọ̀kan kí ó tó fi ìpilẹ̀ náà fún stack. Àṣàyàn UDP fragment ti Community OpenVPN jẹ́ ìmúṣẹ kan ti èrò yẹn, kì í sì ṣe ohun kan náà pẹ̀lú ìpín IP déédéé ti pakẹti ode. Àwọn peer méjèèjì gbọdọ̀ máa ṣiṣẹ́ ẹ̀yà tí ó ṣe àtìlẹ́yìn fún ìlànà yẹn, ọ̀nà dátà sì gbọdọ̀ jẹ́ èyí tí o ń rò: àwọn oníbàárà OpenVPN 3 àti àwọn ọ̀nà dátà tí kernel ń mú kánkán ní àwọn ààlà ọ̀tọ̀ọ̀tọ̀, nítorí náà profáìlì tí ó ṣiṣẹ́ lórí oníbàárà kan lè kùnà lórí òmíràn.

openvpn --config client.ovpn --tun-mtu 1500 --fragment 1400 --verb 4

Ìpín ode déédéé ni àṣàyàn mìíràn, ó sì jẹ́ èyí tí ó rọrùn jù. Àwọn router IPv6 kò ṣe ìpín pakẹti tí a fi ránṣẹ́ lọ rárá, nítorí náà pakẹti ode tí ó tóbi jùlọ kàn ń kú, olùránṣẹ́ sì ń mọ̀ nípa rẹ̀ nìkan tí ìfiránṣẹ́ ICMPv6 tí ó kan bá là á kọjá lórí ọ̀nà. Àwọn ìpín tún ń pè ìṣàwárí àti ìmúpọ̀ ìpadánu, nítorí náà mo kà á sí ọ̀nà àbò kì í ṣe ètè.

Olùgbéjáde ode tí ó dá lórí ìṣàn ń yẹra fún ìbéèrè ìwọ̀n nípa pínpín ìṣàn byte tirẹ̀, pakẹti inu tí a tún kọ́ sì lè ṣì jẹ́ 1,500 byte. Ìyẹn jẹ́ ìpinnu gbígbé tí ó ní iye tirẹ̀, pẹ̀lú ìhùwàsí TCP nínú TCP tí a mọ̀, nítorí náà gbà á ní mọ̀ọ́mọ̀ kì í ṣe gẹ́gẹ́ bí àbájáde ẹ̀gbẹ́ ti àríyànjiyàn MTU.

Jẹ́rìí pé pakẹti inu dé láìyípadà

Ìjẹ́rìí kì í ṣe handshake tí ó ṣàṣeyọrí. Gba ohun tí ń kọjá lórí gbagede tunnel ní ẹ̀gbẹ́ méjèèjì kí o sì fi ìwọ̀n àti àkóónú pakẹti tí ohun èlò gbé jáde ní tòótọ́ wé èyí tí ẹ̀gbẹ́ kejì gbà.

ip link show dev tun0
ping -M do -s 1472 -c 2 10.8.0.1
tcpdump -ni tun0 -c 5 'icmp and greater 1000'

Tí ohun tí a gba bá fi pakẹti inu tí ó kún ìwọ̀n hàn ní ẹ̀gbẹ́ kejì, yíyan gbígbé náà ń ṣiṣẹ́, iṣẹ́ tí ó kù ni láti kọ ọ́ sílẹ̀. Tí kò bá fi nǹkan hàn nígbà tí tunnel ń sọ ara rẹ̀ di up, a ń ju pakẹti ode nù níbìkan láàárín àwọn ibi ìparí, èyí tí yóò dá ọ padà sí ìdánwò kì í ṣe sí àwọn ètò cipher.

Kọ nǹkan mẹ́ta sínú tikẹ́ẹ̀tì ìyípadà kí o tó pa á: ìsúnná ode tí a wọ̀n, ọ̀nà tí o yàn àti àṣẹ tí ó fi hàn pé pakẹti inu là á kọjá. Ẹni tí ó bá tẹ tunnel yìí lẹ́yìn yóò nílò àwọn mẹ́tẹ̀ẹ̀ta, kò sì sí ọ̀kan nínú wọn tí a lè tún kọ́ láti inú fáìlì ìṣètò nìkan.

Àwọn àpilẹ̀kọ tó jọra