Екі ие, бір мекенжай: TAP көпіріндегі қайталанатын IP
Мекенжайын тек бірінші қосылғанда сақтайтын VPN клиенті жарысты емес, ARP қақтығысын ұтылады. Көпірдегі мекенжайдың барлық иесін табыңыз.
Бір Windows клиенті 10.8.0.2 мекенжайын ұстап, іске қосу реті өзгергенше жұмыс істейді; содан кейін сол мекенжай қақтығыс ретінде хабарланады, ал клиентте ештеңе өзгермеген. Сол көпірленген сегменттегі екінші хост та сол мәнді талап етеді, ал конфигурацияны соңынан бітірген машина әдетте ұтылады. Екеуі де оны өзіндікі деп санайды, ал ұтылған тарап өзіне пайдалануға бұйырылған мекенжайды үнсіз пайдалануды қояды. Дәл осыны уақыт мәселесі деп қарау оның әр қайта жүктеуде қайталануына әкеледі.
Көпірге тиіспес бұрын қақтығыс дәлелдерін оқыңыз
Windows мекенжай қақтығысын екінші талапкердің аппараттық мекенжайымен бірге хабарлайды. Дәл сол аппараттық мекенжай пайдалы факт, өйткені ол бір хосттағы бір интерфейске сәйкес келеді, ал оқиғаның көрсетілетін атауы қайталаманың қайда екені туралы ештеңе айтпайды. Бірдеңе өзгертуден бұрын аппараттық мекенжайды жазып алыңыз.
ARP негізіндегі қайталаманы анықтау мекенжайды пайдалану алдында бәсекелес иелерді тексереді және одан кейін де бақылауды жалғастырады. Сондықтан желіні конфигурациялап жатқанда жоқ болған хост бір сағаттан кейін де қақтығыс тудыра алады. Тексеру іске қосу кезіндегі бір реттік бақылау емес. Кейінірек пайда болған машина күні бойы тыныш пайдаланылып келген мекенжайды алуы мүмкін, сондықтан ақау конфигурация қатесі емес, жарыс сияқты оқылады.
Қақтығыс оқиғасы өзі ғана екінші талапты қай конфигурация жасағанын айтпайды, ал мекенжайларды тәжірибе жүзінде тазалау сізге айтатын сәйкестікті жояды. Дәлелдің мәні — аппараттық мекенжайды тексеруге болатын интерфейске айналдыру. Тапсырысты машина атауы бойынша іздеу әдетте сізді дұрыс емес хостқа жібереді.
Сегменттегі әрбір талапты түгендеңіз
Көпірленген TAP конфигурациясы бұрын бөлек болған Ethernet сегменттерін біріктіреді, сондықтан өз желілерінде бірегей болған мекенжайлар кадрлар бір байланысты бөліскенде соқтығысуы мүмкін. Осы ақаулар класы VPN-де бар және ол алмастырған маршрутталған желілерде жоқ. Күдіктенген бірінші иесін емес, барлық мүмкін иені тізіңіз.
Тізімді осы ретпен өтіңіз: әрбір көпір құрылғысындағы және оның мүше порттарындағы мекенжайлар, OpenVPN пулы және әр клиентке арналған кез келген тіркелген тағайындау, сондай-ақ көпірленген сегментті қамтитын кез келген DHCP сервері. Содан кейін қақтығыс есебіндегі аппараттық мекенжайды табылған интерфейстермен салыстырыңыз.
ip -4 addr show | grep -E 'inet |^[0-9]+: '
bridge link show
ip neigh show dev br0
Пул мен DHCP диапазоны адамдар ұмытатын екі ие. Екі диапазонды бірге басып шығарып, басқа нәрсе жасамас бұрын қабаттасуды іздеңіз. Қолмен тағайындалған көпір мекенжайы мен сол мәнді беретін пул ерте ме, кеш пе соқтығысады, ал екі диапазон қатар басылмайынша қақтығыс кездейсоқ болып көрінеді.
Көпірлерді тек сәйкестік қажет жерде нөмірлеңіз
Қалыпты хост көпірінде көпір құрылғысы хосттың үшінші қабатының конфигурациясын алып жүреді, ал Ethernet және TAP мүшелері порт ретінде әрекет етеді. Әр мүшеге өз мекенжайын беру немесе бір орнату скриптін мекенжайды өзгертпей бірнеше машинаға көшіру — бір сегменттің сол мәннің үш иесіне айналу жолы. Мүшелерге кадрларды жіберу үшін өз сәйкестіктері қажет емес. Оларға сол сегментте қолжетімді болуы тиіс әр хостқа дәл бір сәйкестік қажет.
Тек кадрларды ауыстыратын көпірге сол сегментте мекенжай мүлдем қажет емес. Оны нөмірсіз қалдыру қақтығыстардың тұтас класын жояды, бірақ хостта сіз тексерген басқару жолы әлі болуы шарт. Алдымен қатынасты растаңыз, екінші мекенжайды алып тастаңыз, үшінші қолжетімділікті тексеріңіз.
Егер жоятын мекенжай машинаға кіретін жалғыз жол болса, оны тәжірибе ретінде жою — диагноз емес, өзіңіз жасаған үзіліс. Бірдеңені сынамас бұрын сыртқы жолды тексеріңіз.
Түзетуді қайта жүктеуге төзімді етіңіз
Жұмыс істеп тұрған интерфейсті өзгерту ағымдағы жүктеуді түзетеді, басқа ештеңе емес. Іске қосу кезінде мекенжайды қайта жасайтын нәрсенің бәрі келесі қайта жүктеуде қақтығысты қалпына келтіреді, ал сіз түзету жұмыс істемеді деп қорытынды жасайсыз, шын мәнінде ол ешқашан тұрақты болмаған. Қай файлды өзгерткеніңізді жазыңыз, келесі қайта жүктеу тосынсый ашудың орнына шешімді растайды.
Сол конфигурацияның иесін табыңыз: желі менеджерінің профилі, интерфейс бойынша файл, контейнер немесе VM анықтамасы, немесе cloud-init үзіндісі. Оны сонда өзгертіңіз, содан кейін жаңа мән қайта оралатынын растау үшін әдейі бір зардап шеккен хостты қайта жүктеңіз. Қайта жүктеу — тұрақтылықты дәлелдейтін жалғыз сынақ.
Көпір мекенжайларын DHCP диапазонының ішінде ерекшелік ретінде қалдырыңыз немесе оның сыртына жылжытыңыз. Тек электрондық кестеде ғана бар резервтеу ерекшелік емес, және бөлгіш оны оқымайды.
Мұны барлық клиент желіде болғанда дәлелдеңіз
Бір сәтті қосылым ештеңені дәлелдемейді, өйткені бастапқы симптом тек рет өзгергенде пайда болатын. Барлық жоспарланған клиентті қосыңыз, іске қосу ретін өзгертіңіз және қайта қосылғаннан кейін қайталаңыз. Содан кейін бұрын жарыста ұтылған хостты қайта жүктеп, мекенжайдың сақталатынын растаңыз.
Тікелей растау үшін мекенжайды тағайындамас бұрын қайталама иенің бар-жоғын тексеріп, содан кейін көршілер кестесін бақылаңыз. Егер ештеңе тексеруге жауап бермесе және мекенжай толық қайта жүктеу циклінде бірегей болып қалса, қақтығыс жасырылмай, шешілген. Төмендегі командалар екі тексеруді де көпір құрылғысында орындайды. RFC 5227 осы құралдар орындайтын тексеру мен хабарлау мінез-құлқын сипаттайды және біреу анықтауды өшіруді ұсынғанда сілтеме жасалатын дереккөз болып табылады.
arping -D -I br0 10.8.0.2
ip neigh show dev br0 | grep 10.8.0.2
Жауап алмаған тексеру таза сегментте күтілетін нәтиже. Жауап тудырған тексеру сізге қалған иенің аппараттық мекенжайын береді, бұл басында Windows оқиғасы берген дәлелдің дәл өзі. Бұл шығысты өзгеріс жазбасымен бірге сақтаңыз, өйткені бұл мекенжайдың бірегей ұсталғанының жалғыз дәлелі.