Протоколот 47 наспроти TCP портата 47: две заглавија, две правила
Бројот на протокол и портата живеат во различни заглавија, па едно правило не може да го замени другото. PPTP ги разделува двете, а полето за порта не може да го изрази GRE.
Хотелските мрежи и конференциските ѕидови често покажуваат посебно поле за дозвола, и некој пишува 47 во него очекувајќи PPTP да работи. Правилото се создава, тунелот сѐ уште не успева, а следниот обид користи друг број. Грешката е во самиот пакет: IPv4 има поле за протокол што именува што следи по заглавието IP, додека TCP и UDP имаат полиња за порта што постојат само кога си внатре во едно од тие заглавија. Тоа не се два начина на пишување на истата дозвола.
Заглавието IPv4 го именува следниот протокол
Полето за протокол е еден бајт во заглавието IPv4 и држи број што го опишува товарот: 6 за TCP, 17 за UDP, 47 за GRE, 50 за ESP. Сѐ што филтрира пакети ја чита таа вредност пред да погледне подлабоко, зашто подлабокото заглавие има смисла само кога типот е познат. Смени порта подоцна во разговорот, и ова поле не е поместено.
Затоа правило напишано против протоколот 47 го опишува слојот IP. Ниту една порта воопшто не учествува во одлуката.
Порти постојат внатре во TCP и UDP, никаде друго место
Порти се шеснаесетбитни идентификатори внатре во заглавијата TCP и UDP, и нивната задача е да ги разделат разговорите што делат една адреса. Заглавието GRE носи вредност за тип на протокол, често EtherType, плус изборни клучеви за мултиплексирање. Затоа изразот порта 47 не именува ништо со што пакет GRE би можел да се совпадне.
Интерфејсите на ѕидовите се разликуваат по тоа колку од ова покажуваат. Некои прифаќаат број на протокол, некои нудат именуван список, а неколку прифаќаат само TCP или UDP со порти.
PPTP ги користи двата слоја истовремено
PPTP е најјасниот пример зашто намерно ја дели својата работа на двата слоја. Контролната врска е TCP сесија кон портата 1723, а патеката на податоци е GRE, протокол 47, без порта вклучена никаде. Ѕид што дозволува 1723 и ништо друго ја пушта преговарачката постапка да почне и потоа го отфрла товарот. Тунелот изгледа како да виси по автентикацијата наместо да не успее да се поврзе, и затоа симптомот често се пријавува како проблем со лозинка.
| Path | Outer protocol | Port |
|---|---|---|
| Control channel | TCP, protocol 6 | 1723 |
| Data channel | GRE, protocol 47 | None |
Читајте ги двата реда одделно кога го пишувате правилото, и проверете го секој против синтаксата на производителот. Едниот ред бара порта, другиот бара број на протокол, и ниту еден запис не ги покрива двете.
Зошто страницата за проследување порти не може да го изрази GRE
Формулар за проследување што прифаќа само TCP и UDP не може да опише GRE, како и да се вика формуларот. Преводот на адреси додава втора тешкотија, зашто GRE нема порти и преведувачот мора да го следи идентификаторот на повикот. Некои домашни рутери доаѓаат со помошник што го решава тоа; многу не, и ниту еден дополнителен запис за дозвола TCP нема да го создаде тоа однесување.
Кога вистинското барање е современ тунел, изберете решение што намерно користи TCP или UDP наместо да се надевате дека преведувачот ќе погоди точно.
Инкапсулацијата одлучува што гледа филтерот
Инкапсулацијата го менува надворешниот пакет, и токму надворешниот пакет е тоа со што се совпаѓа правилото. Изворниот ESP е протокол 50, додека преминот низ NAT го завиткува ESP во UDP 4500 за да го преживее преводот на адреси. Филтер што дозволува UDP 4500 никогаш не го гледа протоколот 50, а филтер напишан за протоколот 50 никогаш не се совпаѓа со завитканата форма.
Прашајте за која инкапсулација се договориле клиентот и портата, па напишете го правилото точно за таа надворешна форма и ништо повеќе.
Напишете го правилото така што некој ќе може да го провери
Изразете го секое правило како фамилија адреси, надворешен протокол, транспортни порти ако има, насока и двата крајни точки. Рецензентот може да ја спореди таа реченица со запис на пакети и да дојде до пресуда. Упатството да се отвори 47 никој не може да го провери, и затоа тоа опстојува со години во процедуралните книги.
Додајте го тестот што го докажува тоа: поврзете се додека снимате на надворешниот интерфејс, и потврдете ги надворешниот протокол и портата што навистина се појавуваат во трагата.