Модул 3 · 3.2
CNAME и основният домейн (apex)
Модул 3: Записи за Вашия уебсайт · Време за четене: 8 минути
Цел на урока: След този урок ще можете правилно да създадете CNAME запис и да обясните защо той не може да стои на основния домейн.
Основни понятия: CNAME, псевдоним (alias), целево име, правилото за CNAME (без други записи редом с него), apex (основен домейн), ALIAS/ANAME/CNAME flattening
Име, което сочи към друго име
A записът казва: „това име се намира на този адрес“. CNAME записът (от canonical name) казва нещо друго: „това име всъщност е друго име, питайте там“. С него правите псевдоним (alias).
shop.example.com. 3600 IN CNAME shops.platform.example.Ако браузър запита адреса на shop.example.com, DNS отговаря: „това е shops.platform.example“. Резолверът тогава търси A или AAAA записа на това име и връща този адрес. За посетителя няма никаква разлика: адресната лента просто показва shop.example.com.
Защо бихте искали това? Защото тогава IP адресът е проблем на другия. Платформа за онлайн магазини, услуга за бюлетини или облачен доставчик може да премества сървърите си и да сменя адресите, без Вие да трябва да променяте каквото и да било. Затова много услуги искат CNAME вместо A запис: „оставете www да сочи към shops.platform.example“.
Точката в края
В урок 2.2 видяхте, че име без точка в края се чете като относително: DNS прилепва Вашето собствено домейн име отзад. При CNAME това много често се обърква.
| Въвеждате в полето за стойност | Какво прави DNS от това |
|---|---|
shops.platform.example. | shops.platform.example (правилно) |
shops.platform.example | shops.platform.example.example.com (не съществува) |
Много панели днес сами добавят точката или Ви предупреждават. Други не го правят. Затова проверете след запазването в списъка: ако видите собственото си домейн име след стойността, точката е липсвала.
Същото правило важи за пощенския сървър в MX запис и за NS записи. При IP адрес в A запис не поставяте точка.
Правилото за CNAME: нищо редом с него
CNAME има едно твърдо правило от DNS стандарта (RFC 1034, раздел 3.6.2, и RFC 2181): име с CNAME не може да има други записи. Логично: CNAME казва „аз всъщност съм другото име“. Ако до него стои и A запис или MX запис, не е ясно кой отговор важи.
От това следват две неща, с които ще се сблъскате на практика:
- Ако вече има A запис за
shop, първо го изтрийте. Иначе панелът отказва да създаде CNAME записа, или по-лошо, приема го и DNS започва да се държи странно. - CNAME на основния домейн не е възможен.
Защо не на основния домейн?
Основният домейн, example.com без нищо пред него, на професионален език се нарича apex или върхът на зоната. На това име винаги стоят записи, които задължително трябва да ги има:
- SOA записът (техническото заглавие на зоната),
- NS записите (кои DNS сървъри управляват зоната),
- обикновено и MX записи (поща) и TXT записи (SPF, верификация).
Тъй като CNAME не допуска други записи редом с него, а apex винаги има SOA и NS, на apex не може да има CNAME. Това не е ограничение на Вашия панел, а на самия DNS.
Ако услуга Ви помоли да свържете „основния си домейн“, има три решения:
- A запис (и евентуално AAAA) с IP адреса на услугата. Повечето платформи за онлайн магазини предоставят за целта фиксиран адрес. Това работи навсякъде.
- ALIAS, ANAME или запис тип „CNAME flattening“. Някои DNS доставчици предлагат собствен тип запис, който се държи като CNAME, но който самият DNS сървър преобразува в A запис, преди отговорът да напусне системата. Това не е официален тип запис: работи само при доставчици, които го поддържат, и навсякъде се нарича различно.
- Пренасочване. Оставете основния домейн чрез A запис да сочи към Вашия собствен уеб сървър, а той да пренасочва посетителите към
www.example.com, който пък има CNAME към услугата. Как работи пренасочването, ще прочетете в урок 3.4.
Къде другаде CNAME не е позволен
- MX запис не може да сочи към CNAME (RFC 2181, раздел 10.3). Пощенският сървър в MX трябва да бъде име със собствен A или AAAA запис. Някои пощенски сървъри се справят въпреки това, но не можете да разчитате на това.
- Никакъв CNAME на име, което имате и като поддомейн в хостинг панела си. Поддомейн в панела получава собствени записи, които сочат към Вашия хостинг. Ако искате името да сочи към друга услуга, изтрийте поддомейна и създайте само CNAME записа.
- Вериги са възможни, но ги ограничавайте. CNAME може да сочи към име, което само по себе си е CNAME. Всяка стъпка струва допълнително запитване. Големите платформи правят това често (виждате два или три CNAME един след друг), но сами не правете дълги вериги.
На практика: ето как изглежда в панел
Като пример използваме DNS екрана на Моят WebOké. В други панели (DirectAdmin, cPanel, Plesk, Cloudflare, повечето регистратори) бутоните се казват различно, но въвеждате същите три неща: тип, име и целево име.
- Отворете DNS екрана на домейна си и кликнете върху Add Record.
- Изберете типа CNAME.
- В полето Име въведете само
shop, без Вашето домейн име. - В полето Сочи към въведете целевото име, с точка в края:
shops.platform.example. - Запазете и проверете в списъка дали след стойността не стои Вашето собствено домейн име.
Панелът в примера предупреждава, ако точката липсва. Не всеки панел прави това.
Обобщение
- CNAME превръща едно име в псевдоним на друго име; тогава IP адресът се управлява от другия.
- Поставете точка в края на целевото име, иначе DNS прилепва Вашия собствен домейн отзад.
- Име с CNAME не може да има други записи.
- Затова CNAME не може да стои на основния домейн: там винаги има SOA и NS. Използвайте там A запис, запис от тип ALIAS на Вашия DNS доставчик или пренасочване.
- MX запис не може да сочи към CNAME.
Тест
Задача
Задача Z3.2: Проследяване на CNAME. Към кое име сочи CNAME записът на en.wikipedia.org? Въведете целевото име.
Задача O3.2: Самостоятелна настройка във Вашата тренировъчна зона. Създайте в тренировъчната си зона CNAME запис с име winkel, който сочи към shops.shop-demo.dnspractice.eu. (с точката). Уверете се, че за winkel няма друг запис. В тренировъчната зона използвате фиктивна услуга; при истинския си домейн въвеждате целевото име, посочено от реалната услуга. След това кликнете върху Проверка.
Задача O3.2
Тази задача изпълнявате във Вашата собствена тренировъчна зона: истинска DNS зона на DNS сървърите на WebOké, само за Вас. Впишете се с Вашия имейл адрес. Ще получите линк за вход по имейл и след това ще се върнете на този урок. Използваме Вашия адрес само за курса.
Допълнително четене
Тези статии описват стъпките в панелите на WebOké; в други панели те работят по подобен начин.
