Версия 1.0.1, 18 юни 2008
Веселин Колев, Софийски Университет "Св. Климент Охридски"
Адрес за кореспонденция: vesso AT vesselin.org
Първоизточник: http://www.vesselin.org
Лиценз на документа: CC Attribution-ShareAlike
Съдържание:
Пощенските концентратори на мрежата на СУ (AS5421) са IPv6 базирани. Целта е те да осигуряват двупротоколна адреса SMTP услуга, в духа на пълна IPv6 интеграция на мрежата на СУ. По-долу е описано какви опции са използвани за IPv6 интеграцията.
Linux дистрибуцията, която пощенските концентратори на мрежата на СУ използват, е Red Hat Enterprise Linux 5. В състава на тази дистрибуция пакетът sendmail е компилиран с поддръжка на IPv6, което свежда IPv6 интеграцията на SMTP услугата, базирана на схемата с използване на концентраторите, само до въвеждане на съответните конфигурационни опции.
sendmail.mc
.Конфигурационният файл sendmail.cf
, който демонът sendmail чете при стартирането си, се генерира от m4 макросен прототип, който по подразбиране се съхранява във файла sendmail.mc
. И двата файла се намират в директория /etc/mail
. За редакцията на sendmail.mc
и генерирането на негова основа на нова версия на sendmail.cf
, са необходими ефективни права на root.
Промените, засягащи използването на IPv6, касаят следните макросни дефиниции в съдържанието на m4 макросния прототип sendmail.mc
:
DAEMON_OPTIONS(`...')dnl CLIENT_OPTIONS(`...')dnl define(`confBIND_OPTS', `WorkAroundBrokenAAAA')dnl
За да може sendmail демона да обслужва SMTP сесии, които се транспортират по адресен протокол IPv6, е добра практика да се декларира на кой точно локален IPv6 адрес слуша демона (по подразбиране на порт 25/tcp). Възможно е на един сървър да има повече от един IPv6 адрес и е добре да се правят точни декларации, чрез които всяка услуга да използва точно определени локални адреси. За да се настои sendmail демона да слуша на точно определени локални за стека IPv6 адреси, се използва опцията DAEMON_OPTIONS
. Ето примерна декларация, чрез която sendmail демона ще слуша на порт 25/tcp на локалния за стека IPv6 адрес 2a01:288:8000:aaaa::1:
DAEMON_OPTIONS(`Port=smtp,Addr=2a01:288:8000:aaaa::1, Name=MTA6, Family=inet6')dnl
Когато sendmail демона получи едно писмо за обработка и трябва да го изпрати до друг пощенски сървър, той трябва да влзе в ролята на пощенски клиент и да иницира изходяща SMTP сесия. Това не е проблем в системи, в които има само един локалн IPv6 адрес, но може да е проблем в системи, в които има повече от един локално зададен IPv6 адрес. Дори и да е налице първия случай (само един IPv6 адрес), няма гаранция във всеки един от конкретните случаи, че в определено време от живота на системата, няма да се наложи прибавянето на още IPv6 адреси към локалния TCP/IP стек. Именно затова е нужно да се специфицира точно в конфигурацията на sendmail демона кой IPv6 адрес ще се използва за изходящи SMTP сесии. Указването на клиентския IPv6 адрес става чрез опцията CLIENT_OPTIONS
. По-долу е дадена примерна декларация, чрез която sendmail демона ще използва IPv6 адреса 2a01:288:8000:aaaa::1
за изходящите си сесии по адресен протокол IPv6:
CLIENT_OPTIONS(`Family=inet6, Addr=2a01:288:8000:aaaa::1')dnl
При канонизиране на името на хост, sendmail процесът изпраща запитване за PTR и AAAA (проверка за съответствие) записи до библиотеката на резолвера, а последната от своя страна ги изпраща до съответния рекурсивен сървър за имена. Ако в отговора, получен от рекурсивния сървър за имена, се съдържа статус "SERVFAIL
", се получава проблем с канонизацията. За да се избегне той, в m4 макросния прототип sendmail.mc
трябва да се декларира:
define(`confBIND_OPTS', `WorkAroundBrokenAAAA')dnl
Трябва да се припомни, че след реакция на макросния прототип sendmail.mc
, се генерира нова версия на файла sendmail.cf
:
# cd /etc/mail # m4 sendmail.mc > sendmail.cf
Ако генерирането на нова версия на файла sendmail.cf
е преминало без съобщения за грешка, новата версия на конфигурацията може да се подаде за прочит на демона sendmail:
# service sendmail restart
Версия 1.0: [tar.gz] [електронен подпис върху архива]
Публикувана на: 2 януари 2008г.
Този документ е с OpenPGP подписано съдържание
[информация] [електронен подпис][TimeStamp]