2004 г.
Oskar Andreasson, перевод
Андрея Киселева
Предисловие
Я приступил к работе над этим документом в надежде на то, что он поможет вам понять настройки IP (от англ. Internet Protocol -- Межсетевой Протокол, прим. перев), предоставляемые ядром Linux 2.4. Этим руководством я надеюсь дать необходимые знания, которые помогут вам изменять настройки ядра "на лету". Часть настроек может быть использована для увеличения производительности, а так же для повышения уровня безопасности. В этом документе не будут обсуждаться все возможности, которые заключает в себе механизм управления системой -- sysctl, здесь мы сосредоточим все свое внимание на управлении сетевой подсистемой. Надеюсь, что этот документ заполнит собою недостаток документации по данной теме. На самом деле едва ли существует достаточно хорошая документация, которая детально описывала бы всю структуру ipsysctl, исключение составляет лишь файл ip-sysctl.txt, входящий в комплект документации, сопровождающей исходные тексты ядра, но она очень и очень кратко поясняет возможные настройки, которые могли бы быть использованы.
Я полагаю, что может существовать литература, которая содержит описание отдельных настроек, однако вам едва ли удастся найти подробное и связное их описания. Если вы нашли этот документ достаточно полезным или просто интересным -- не стесняйтесь, передавайте, помогайте в изучении, переводите на другие языки, вобщем все, что вы сочтете необходимым. Единственная просьба -- присылайте свои замечания, чтобы в документе не было ошибок или неточностей из-за изменений в ядре и пр. Если вам встретится новая команда sysctl, которая не упоминается здесь -- сообщите мне и я постараюсь добавить ее описание как можно быстрее.
Этот документ предназначен для всех, кто стремится расширить свои познания как операционной системы Linux в целом, так и TCP/IP в частности. Для понимания этого документа вы должны обладать хорошими знаниями о TCP/IP, вы должны знать -- что такое заголовок пакета и из каких частей он состоит. Вам так же понадобится понимание принципов маршрутизации и основы построения сетей на базе TCP/IP.
Этот документ не предназначен для новичков в Linux, но едва ли это будет серьезным ограничением, если вы испытываете определенные потребности в изучении приводимого здесь материала. Одно лишь замечание -- перед внесением изменений в настройки убедитесь на 100% в том, что достаточно четко представляете себе, что именно вы делаете, поскольку некоторые изменения могут привести к весьма неожиданным результатам.
Этот документ рекомендуется всем, кто интересуется компьютерами и компьютерными сетями. Здесь вы найдете основые сведения о различных переменных, доступных через интерфейс ipsysctl, это поможет вам продвинуться вперед в понимании того, для чего предназначена каждая из них.
Этот документ может читаться в любом, удобном для вас порядке. Если вас интересуют лишь отдельные разделы -- читайте их. Если ранее вы никогда не сталкивались с sysctl -- прочитайте первую главу, а затем можете перейти к изучению интересующих вас разделов. Если вас обуревает желание прочитать документ от начала до конца -- читайте так. Если вы предпочитаете читать, начиная с конца -- читайте так. Если вам нравится читать в зашифрованном виде -- я не вижу причин, чтобы не делать этого!
Все, что я хочу сказать -- читайте те разделы, которые представляют для вас интерес. Если что-то для вас окажется непонятным -- прочитайте соответствующие разделы или в этом документе или где либо еще. Я не буду указывать вам -- как читать этот документ, ибо каждый из вас уже имеет некоторые познания и сам сможет решить -- что ему необходимо.
В данном документе используются следующие соглашения по выделению информации различного рода:
Команды, вводимые пользователем, и вывод, получаемый в результате работы команд, отображаются моноширинным шрифтом, кроме того, ввод пользователя отображается жирным шрифтом:
[blueflux@work1 neigh]$ ls
default eth0 lo
[blueflux@work1 neigh]$
Все команды и имена программ отображаются жирным шрифтом .
Все упоминания об аппаратном обеспечении, а так же о внутренних механизмах ядра или абстрактных понятиях системы (например: петлевой (loopback) интерфейс), отображаются курсивом.
Вывод на экран выделяется таким образом.
Имена файлов и пути к файлам отображаются таким образом: /usr/local/bin/iptables.
Это руководство базируется на описании, содержащемся в /usr/src/linux/Documentation/networking/ip-sysctl.txt. Прежде чем продолжить, я хотел бы поблагодарить людей, которые нашли время для его написания. Все, кто будет читать оба этих документа с легкостью обнаружат, что оба они имеют одинаковую структуру.
Я хотел бы выразить свою признательность всем разработчикам, учавствовавшим в работе над реализацией стека протоколов TCP/IP, которая заняла значительное время. Я надеюсь, что смогу внести свой вклад в сообщество Linux этим руководством, облегчая труд тех, кому оно необходимо.
Я так же хотел бы поблагодарить Fabrice Marie за неоценимую помощь со стандартизацией и за подсказки, когда у меня что-то не получалось. Огромное спасибо всем участникам из списка рассылки netfilter mailing list за помощь при разрешении некоторых вопросов. Огромное спасибо всем участникам проекта linuxsecurity за их терпение, проявленное при выслушивании моих напыщеных речей, а затем и оправданий за срыв сроков публикации.
Хочу выразить огромную благодарность каждому, кто оказал мне посильную помощь.