Аммо ман барномасоз ҳастам, аз ин рӯ ман N-ро танҳо ба як қисм зиёд мекунам ва таҳияи протоколҳои воқеиро ба ихтиёри таҳиягарони Коммерсант мегузорам.
Дар як таваллуднашуда лоихаиОн чизе ки ман ҳоло мекунам, ин аст, ки аз берун ба ҳостҳо дар паси NAT расам. Барои ин бо истифода аз протоколҳо бо криптографияи калонсолон, ман ҳиссиёти онро ба ларза андохта наметавонистам, ки ин мисли тирандозӣ аз тӯп гунҷишкҳо буд. Зеро нақб аксар вақт танҳо барои сӯрохҳо дар NAT-e истифода мешавад, трафики дохилӣ одатан рамзгузорӣ мешавад, аммо онҳо то ҳол дар HTTPS ғарқ мешаванд.
Ҳангоми таҳқиқи протоколҳои гуногуни нақбсозӣ, таваҷҷӯҳи перфекционисти ботинии ман бо сабаби ҳадди ақали ҳадди ақали он ба IPIP такроран ҷалб карда шуд. Аммо он барои вазифаҳои ман якуним камбудиҳои назаррас дорад:
он дар ҳарду ҷониб IP-ҳои ҷамъиятиро талаб мекунад,
ва ҳеҷ тасдиқи барои шумо.
Аз ин рӯ, идеалистро дубора ба кунҷи торикии косахонаи сар ва ё ҳар ҷое, ки дар он ҷо нишинад, ронданд.
Ва он гоҳ як рӯз, ҳангоми хондани мақолаҳо дар бораи нақбҳои аз ҷониби модарӣ дастгирӣшаванда дар Linux ман бо FOU (Foo-over-UDP) дучор омадам, яъне. ҳар чӣ, парпечшуда дар UDP. То ҳол, танҳо IPIP ва GUE (Generic UDP Encapsulation) дастгирӣ карда мешаванд.
«Инак тири нуқра! Барои ман як IPIP оддӣ басанда аст." — фикр кардам.
Дар асл, тир тамоман нуқра набудааст. Инкапсуляция дар UDP мушкилоти аввалро ҳал мекунад - шумо метавонед бо истифода аз пайвасти қаблан муқарраршуда ба мизоҷони паси NAT аз берун пайваст шавед, аммо дар ин ҷо нисфи нуқсони навбатии IPIP бо нури нав мешукуфад - ҳар касе аз шабакаи хусусӣ метавонад дар паси шабакаҳои намоён пинҳон шавад IP-и ҷамъиятӣ ва порти муштарӣ (дар IPIP холис ин мушкилот вуҷуд надорад).
Хуб, агар шумо бандари ҷамъиятӣ ва IP-и муштариро медонед (масалан, ҳама дар паси он ба ҷое намераванд, NAT кӯшиш мекунад, ки портҳои 1-дар-1ро харита кунад), шумо метавонед нақби IPIP-over-FOU бо фармонҳои зерин, бе ягон скрипт.
дар сервер:
# Подгрузить модуль ядра FOU
modprobe fou
# Создать IPIP туннель с инкапсуляцией в FOU.
# Модуль ipip подгрузится автоматически.
ip link add name ipipou0 type ipip
remote 198.51.100.2 local 203.0.113.1
encap fou encap-sport 10000 encap-dport 20001
mode ipip dev eth0
# Добавить порт на котором будет слушать FOU для этого туннеля
ip fou add port 10000 ipproto 4 local 203.0.113.1 dev eth0
# Назначить IP адрес туннелю
ip address add 172.28.0.0 peer 172.28.0.1 dev ipipou0
# Поднять туннель
ip link set ipipou0 up
дар бораи муштарӣ:
modprobe fou
ip link add name ipipou1 type ipip
remote 203.0.113.1 local 192.168.0.2
encap fou encap-sport 10001 encap-dport 10000 encap-csum
mode ipip dev eth0
# Опции local, peer, peer_port, dev могут не поддерживаться старыми ядрами, можно их опустить.
# peer и peer_port используются для создания соединения сразу при создании FOU-listener-а.
ip fou add port 10001 ipproto 4 local 192.168.0.2 peer 203.0.113.1 peer_port 10000 dev eth0
ip address add 172.28.0.1 peer 172.28.0.0 dev ipipou1
ip link set ipipou1 up
ки
ipipou* — номи интерфейси шабакаи маҳаллии нақб
203.0.113.1 — сервери ҷамъиятии IP
198.51.100.2 — IP-и оммавии муштарӣ
192.168.0.2 — IP мизоҷ ба интерфейси eth0 таъин шудааст
То он даме, ки пайвасти UDP зинда аст, нақб дар ҳолати корӣ хоҳад буд, аммо агар он канда шавад, шумо хушбахт мешавед - агар IP: порти муштарӣ бетағйир монад - он зинда мемонад, агар онҳо тағир диҳанд - он мешиканад.
Агар иҷроиш муҳим набошад, бо истифода аз ин чиз шумо метавонед мантиқи шахсии худро барои кор бо пакетҳо дар сатҳи хеле паст созед, масалан, протоколҳои интиқоли маълумотро эҷод кунед ё хидматҳои маҳаллӣ ва дурдаст бо рафтори ғайристандартӣ трол кунед.
Розеткаҳои хом бо nfqueue даст ба ҳамдигар кор мекунанд, масалан, вақте ки нақб аллакай танзим шудааст ва FOU ба бандари дилхоҳ гӯш медиҳад, шумо наметавонед пакетро аз ҳамон порт ба таври муқаррарӣ фиристед - он банд аст, аммо шумо метавонед бастаи ба таври тасодуфӣ тавлидшударо бо истифода аз розеткаи хом мустақиман ба интерфейси шабака бигиред ва ирсол кунед, гарчанде тавлиди чунин баста каме корбурди бештарро талаб мекунад. Ҳамин тавр дар ipipou бастаҳо бо аутентификатсия сохта мешаванд.
WireGuard бе PresharedKey, бо MTU = 1440 (азбаски танҳо IPv4)
Маълумоти техникӣ барои Geeks Метрикҳо бо фармонҳои зерин гирифта мешаванд:
дар бораи муштарӣ:
UDP
CPULOG=NAME.udp.cpu.log; sar 10 6 >"$CPULOG" & iperf3 -c SERVER_IP -4 -t 60 -f m -i 10 -B LOCAL_IP -P 2 -u -b 12M; tail -1 "$CPULOG"
# Где "-b 12M" это пропускная способность основного канала, делённая на число потоков "-P", чтобы лишние пакеты не плодить и не портить производительность.