Ператварэнне ноўтбука ў маршрутызатар — папулярны спосаб вырашаць не тую праблему. Перасылка існуе для таго, каб машына магла перадаваць пакеты, пункт прызначэння якіх не яна сама, і ёй няма справы да таго, як хутка браўзер на гэтай жа машыне загружае старонку. Два шляхі выглядаюць аднолькава толькі таму, што абодва гоняць трафік праз адзін тунель. Раздзяліце іх аднойчы — і мноства парад пра ўключэнне перасылкі ці адкрыццё файрвола акажацца апісаннем тапалогіі, якой у вас няма.

Два шляхі пакетаў, якія з-за стала выглядаюць аднолькава

Браўзер на ноўтбуку стварае ўласны запыт. Хост выбірае маршрут тунеля, кліенцкі працэс абгортвае пакет і адпраўляе яго партнёру, а адказ вяртаецца ў праграму. Нішто ў гэтай паслядоўнасці не перасякае рашэнне аб перасылцы, бо гэтая машына — адначасова крыніца і пункт прызначэння размовы.

Цяпер пастаўце іншую прыладу на наўмысна наладжаны сегмент Ethernet і зрабіце ноўтбук яе шлюзам па змаўчанні. Гэтая прылада спараджае запыт, ноўтбук атрымлівае пакет, адрасаваны ў іншае месца, і ядро мусіць вырашыць, ці перадаваць яго далей. Гэта роля перасылкі, і яна прыходзіць з папярэднімі ўмовамі, якіх роля кліента ніколі не патрабавала: дазволены транзітны шлях, маршруты з абодвух бакоў і зваротны шлях, які працуе, калі трансляцыя — частка задумы.

RoleWho originates the trafficWhat has to be true
Client onlyThe laptop itselfTunnel route, working resolver, supported profile
GatewayAnother deviceForwarding enabled, permitted transit, routes both ways, return-path decision

Што насамрэч змяняе ip_forward

Дакументацыя ядра па IPv4 sysctl апісвае ip_forward як перамыкач, які дазваляе хосту перасылаць пакеты паміж інтэрфейсамі. Гэта не хуткі шлях для трафіку, створанага самым хостам, і ніякае чытанне гэтага параметра не робіць лакальны браўзер хутчэйшым. Хутчэй наадварот: перасылка дадае стан і палітыку машыне, якая раней рабіла менш працы.

Тая ж дакументацыя папярэджвае, што змена значэння скідвае іншыя параметры IPv4 да іхніх значэнняў па змаўчанні для хоста ці маршрутызатара. Гэта робіць перамыкач падзеяй канфігурацыі, а не праверкай: настроеныя параметры могуць вярнуцца назад пад вамі, і змена можа быць прычынай рэгрэсу, якую ніхто не здагадаецца ёй прыпісаць. Гэта таксама значыць, што перамыкач трэба ўсталяваць аднойчы, свядома, тым, хто валодае роляй шлюза. Пераключэнне яго падчас расследавання запаволення — адзіны выпадак, калі пабочны эфект гарантавана блытаюць з сімптомам.

Тры пытанні файрвола, якія не адно і тое ж пытанне

Дазволіць слухача VPN, дазволіць службы, якія запускае ноўтбук, і дазволіць трафіку праходзіць праз ноўтбук — гэта тры асобныя дазволы. Першы дае партнёру дасягнуць дэмана, другі адкрывае нешта лакальнае, а трэці ператварае машыну ў транзіт для кагосьці іншага. Кожны мае іншы абсяг, і апошні значна шырэйшы за адказы, якія патрэбныя звычайнай зыходнай праграме.

Калі пэўны паток заблакаваны, назвіце яго крыніцу, пункт прызначэння, кірунак і ўладальніка палітыкі, перш чым правіць правіла. Вузкае правіла для гэтага патоку — выпраўленне; прыняцце ўсяго на тунельным інтэрфейсе — змена палітыкі, якая выпадкова ўключае выпраўленне. Браўзер, які пасля гэтага працуе, даказвае, што паток працуе, а не што шырокае правіла было неабходным.

Мерайце толькі тады, калі шлях правільны

Мерайце з тым жа пунктам прызначэння, той жа нагрузкай і параўнальнымі ўмовамі, змяняючы адну зменную за раз. Тэст, які злучае змену перасылкі, пашырэнне файрвола і скапіяваную наладу шыфра, дае лік і ніякага тлумачэння, бо нішто ў ім не кажа, якая з трох зрушыла вынік.

Трымайце збоі маршрутаў і рэзалвера зусім па-за размовай пра прадукцыйнасць. Імя, якое марудна вырашаецца, — не праблема прапускной здольнасці, а перадача, якая спыняецца на адным фіксаваным памеры, звычайна пытанне MTU, а не абмежаванне хуткасці. Запішыце, якое з гэтых трох вы насамрэч назіралі, перш чым параўноўваць любыя лікі. Інакш наступны чытач атрымае ў спадчыну бенчмарк, які мерае не тое, і змену, якую ніхто не можа абгрунтаваць.

Апішыце тапалогію, якая ў вас ёсць, а не этыкетку на кліенце

Ноўтбук, які дзеліць сваё злучэнне, размяшчае маршрутызаваную сетку кантэйнераў ці нясе трафік для віртуальнай машыны, — гэта шлюз, як бы праграма сябе ні называла. Слова кліент апісвае, як наладжаны тунель, а не ці перадаюцца пакеты камусьці іншаму.

Зрабіце ролю відавочнай у інструкцыі па эксплуатацыі: што спараджае трафік, што мусіць праходзіць праз машыну і пра што з двух ідзецца ў бягучай задачы. Уключайце ролю шлюза, калі яна належыць да падтрыманага плана, а не як невытлумачаная хуткасная папраўка да тапалогіі, якой яна ніколі не патрабавалася.

Падобныя артыкулы