Настройки на пощенските концентратори на мрежата на СУ "Св. Климент Охридски" за работа с IPv6

Версия 1.0.1, 18 юни 2008

Веселин Колев, Софийски Университет "Св. Климент Охридски"

Адрес за кореспонденция: vesso AT vesselin.org

Първоизточник: http://www.vesselin.org

Лиценз на документа: CC Attribution-ShareAlike

 

Съдържание:

  1. Увод

  2. Настройки в макросния прототип sendmail.mc

  3. Предишни версии на публикацията

 

1. Увод.

Пощенските концентратори на мрежата на СУ (AS5421) са IPv6 базирани. Целта е те да осигуряват двупротоколна адреса SMTP услуга, в духа на пълна IPv6 интеграция на мрежата на СУ. По-долу е описано какви опции са използвани за IPv6 интеграцията.

Linux дистрибуцията, която пощенските концентратори на мрежата на СУ използват, е Red Hat Enterprise Linux 5. В състава на тази дистрибуция пакетът sendmail е компилиран с поддръжка на IPv6, което свежда IPv6 интеграцията на SMTP услугата, базирана на схемата с използване на концентраторите, само до въвеждане на съответните конфигурационни опции.

 

2. Настройки в макросния прототип 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

 

3. Предишни версии на публикацията.

 

Този документ е с OpenPGP подписано съдържание
[информация] [електронен подпис][TimeStamp]

Creative Commons - Признание 2.5 Valid CSS! Valid XHTML 1.0 Strict