RedHat KB – Ivan Pesin https://pesin.space/blog Articles & Translations Wed, 19 Oct 2016 02:08:18 +0000 en-US hourly 1 https://wordpress.org/?v=5.1.1 В выводе netstat -rn значение MSS равно 0. Что это означает? /blog/2009/08/%d0%b2-%d0%b2%d1%8b%d0%b2%d0%be%d0%b4%d0%b5-netstat-rn-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-mss-%d1%80%d0%b0%d0%b2%d0%bd%d0%be-0-%d1%87%d1%82%d0%be-%d1%8d%d1%82%d0%be-%d0%be%d0%b7%d0%bd/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25b2-%25d0%25b2%25d1%258b%25d0%25b2%25d0%25be%25d0%25b4%25d0%25b5-netstat-rn-%25d0%25b7%25d0%25bd%25d0%25b0%25d1%2587%25d0%25b5%25d0%25bd%25d0%25b8%25d0%25b5-mss-%25d1%2580%25d0%25b0%25d0%25b2%25d0%25bd%25d0%25be-0-%25d1%2587%25d1%2582%25d0%25be-%25d1%258d%25d1%2582%25d0%25be-%25d0%25be%25d0%25b7%25d0%25bd Fri, 14 Aug 2009 07:01:49 +0000 http://www.n-ix.com/ipesin/?p=281

Вывод команды netstat -nr выглядит обычно так:

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.0.254   0.0.0.0         UG        0 0          0 eth0

Значение максимального размера сегмента (Maximum Segment Size, MSS) равное нулю в выводе команды netstat является неверным для любого типа сети. Это значение игнорируется ядром при активации сетевого подключения.

Когда MSS маршрута равен нулю, он определяется ядром исходя из размера MTU интерфейса, с которого отправляется пакет.

Чтобы посмотреть настройки интерфейса, используйте команду ifconfig:

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:61:93:55:3E
          inet addr:192.168.0.22  Bcast:172.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 ...

Значение MSS вычисляется по формуле MSS = MTU – 40 байт. То есть, если MTU интерфейса равен 1500 байтам, то вычисленный ядром размер MSS будет равен 1460 байтам. Это предлагаемое значение MSS (advertised MSS) для TCP-соединения, оно используется, чтобы сообщить другой стороне о предпочитаемом размере MSS. Когда устанавливается TCP-соединение, значение MSS отправляется в SYN-пакете.

MSS маршрута (который выводится командой netstat -rn) может использоваться для переопределения предлагаемого значения MSS, которое вычисляется ядром. Например, если мы хотим принудительно задать MSS равное 1200 байтам для всех соединений с сетью 192.168.1.0/24, можно использовать команду ip:

ip route add 192.168.1.0/24 dev eth0 advmss 1200

Можно также задать значение MSS для конкретного хоста:

ip route add 192.168.0.212 dev eth0 advmss 1200

Отметим, что это влияет лишь на пакеты, которые мы получаем, но не отправляем: значение MSS — это предлагаемое значение, которое используется для информирования удалённой системы о том, что мы можем обработать.

MSS пакетов, которые отправляем мы сами, может определяться аналогичным путём, хотя и не всегда, поскольку параметр предлагаемого MSS является необязательным. Red Hat Enterprise Linux указывает значение MSS в пакетах SYN и SYN-ACK, тогда как другие реализации стека TCP/IP могут его не указывать.

В общем, если предлагаемое значение MSS получено не было, то используется минимальное значение MSS, равное 536 (MTU 576 – 40 байт = 536).

Также обратите внимание, что, кроме значений MTU и MSS маршрутов, в Red Hat Enterprise Linux реализована технология определения MTU для маршрута (path MTU discovery) — это простой протокол, который пытается автоматически определить оптимальный размер MTU для TCP-соединения.

Если автоопределение MTU маршрута работает корректно, то необходимость изменять MTU интерфейса или значение MSS маршрута возникает крайне редко.

]]>
Как объединить несколько сетевых интерфейсов в один логический (bonding) в Red Hat Enterprise Linux? /blog/2009/08/%d0%ba%d0%b0%d0%ba-%d0%be%d0%b1%d1%8a%d0%b5%d0%b4%d0%b8%d0%bd%d0%b8%d1%82%d1%8c-%d0%b2-%d0%be%d0%b4%d0%b8%d0%bd-%d0%bb%d0%be%d0%b3%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b9-%d0%bd%d0%b5%d1%81%d0%ba/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25be%25d0%25b1%25d1%258a%25d0%25b5%25d0%25b4%25d0%25b8%25d0%25bd%25d0%25b8%25d1%2582%25d1%258c-%25d0%25b2-%25d0%25be%25d0%25b4%25d0%25b8%25d0%25bd-%25d0%25bb%25d0%25be%25d0%25b3%25d0%25b8%25d1%2587%25d0%25b5%25d1%2581%25d0%25ba%25d0%25b8%25d0%25b9-%25d0%25bd%25d0%25b5%25d1%2581%25d0%25ba Mon, 10 Aug 2009 19:15:21 +0000 http://www.n-ix.com/ipesin/?p=499

Red Hat Enterprise Linux позволяет администраторам объединять несколько сетевых интерфейсов в один с помощью модуля ядра bonding и специального сетевого интерфейса, который называется “интерфейсом объединенного канала” (channel bonding interface). Объединение каналов даёт возможность двум или более сетевым интерфейсам работать как одному, увеличивая пропускную способность и обеспечивая отказоустойчивость.

Чтобы создать bonding-интерфейс, создайте файл в каталоге /etc/sysconfig/network-scripts/ с именем ifcfg-bond<N>, заменив <N> номером интерфейса, например 0.

Содержимое этого файла может быть идентичным содержимому файлов настройки объединяемых интерфейсов. Единственное отличие состоит в том, что директива DEVICE должна быть равна bond<N>, где <N> это номер интерфейса.

Ниже приведён пример конфигурационного файла для bonding-интерфейса:

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no

После того, как вы создадите настройку для bonding-интерфейса, нужно внести изменения в настройку объединяемых интерфейсов. Они должны быть сконфигурированы с директивами MASTER= и SLAVE=. Файлы настройки объединяемых интерфейсов могут быть практически идентичными.

Например, если ваш bonding-интерфейс объединяет два Ethernet-интерфейса — eth0 и eth1, тогда их конфигурационные файлы могут выглядеть так:

DEVICE=eth&lt;N&gt;
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

В примере замените <N> на номер интерфейса.

Для работы bonding-интерфейса необходимо загрузить соответствующий модуль ядра. Процедура загрузки модуля ядра слегка отличается в Red Enterprise Linux версии 3 и Red Hat Enterprise Linux версии 4.

Red Hat Enterprise Linux версии 3

Чтобы обеспечить автоматическую загрузку модуля при активации bonding-интерфейса, добавьте в файл /etc/modules.conf строку:

alias bond&lt;N&gt; bonding

Замените <N> на номер интерфейса, например 0. Для bonding-интерфейсов, отличных от bond0 также требуется строка:

options bond&lt;N&gt; -o bond&lt;N&gt; mode=1 miimon=100

Для каждого сконфигурированного bonding-интерфейса должна быть соответствующая запись в файле /etc/modules.conf.

Red Hat Enterprise Linux версии 4

Чтобы обеспечить автоматическую загрузку модуля при активации bonding-интерфейса, добавьте в файл /etc/modprobe.conf строки:

alias bond&lt;N&gt; bonding
options bond&lt;N&gt; miimon=100 mode=0

Замените <N> на номер интерфейса, например 0. Также замените другие значение, такие как “miimon” и “mode”, на необходимые вам. Подробную информацию о различных параметрах можно найти в документации, перечисленной в конце документа

Для каждого сконфигурированного bonding-интерфейса должна быть соответствующая запись в файле /etc/modprobe.conf.

Примечание: До выхода Update 2 для Red Hat Enterprise Linux version 4, система не поддерживала более одного bonding-интерфейса. Если вы пытаетесь настроить более одного bonding-интерфейса, вам необходимо обновить вашу систему до Red Hat Enterprise Linux 4 Update 2 или более поздней.

После настройки файлов конфигурации интерфейсов и параметров в файле /etc/modules.conf (или /etc/modprobe.conf для RedHat Enterprise Linux 4) можно использовать команду ifup для активации bonding-интерфейса, или можно просто перезапустить сервис сети командой service network restart.

Дополнительная информация: с помощью модуля ядра можно управлять важными аспектами bonding-интерфейса.

]]>
Каким угрозам подвергаются сетевые сервисы? /blog/2009/07/%d0%ba%d0%b0%d0%ba%d0%b8%d0%bc-%d1%83%d0%b3%d1%80%d0%be%d0%b7%d0%b0%d0%bc-%d0%bf%d0%be%d0%b4%d0%b2%d0%b5%d1%80%d0%b3%d0%b0%d1%8e%d1%82%d1%81%d1%8f-%d1%81%d0%b5%d1%82%d0%b5%d0%b2%d1%8b%d0%b5-%d1%81/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba%25d0%25b8%25d0%25bc-%25d1%2583%25d0%25b3%25d1%2580%25d0%25be%25d0%25b7%25d0%25b0%25d0%25bc-%25d0%25bf%25d0%25be%25d0%25b4%25d0%25b2%25d0%25b5%25d1%2580%25d0%25b3%25d0%25b0%25d1%258e%25d1%2582%25d1%2581%25d1%258f-%25d1%2581%25d0%25b5%25d1%2582%25d0%25b5%25d0%25b2%25d1%258b%25d0%25b5-%25d1%2581 Tue, 21 Jul 2009 14:53:32 +0000 http://www.n-ix.com/ipesin/?p=217

Хотя доступ пользователей к средствам администрирования — важный вопрос безопасности для системных администраторов организации, но учёт активных сетевых сервисов имеет первостепенное значение для всех, кто использует операционную систему Linux.

Многие сервисы в Red Hat Enterprise Linux представляют собой сетевые сервера. Если на машине запущен сетевой сервис, то серверное приложение, которое называют “демоном”, слушает один или несколько сетевых портов, ожидая подключений. Каждый из таких серверов должен считаться потенциальной мишенью атаки.

Сетевые сервисы могут подвергать Linux-системы многим опасностям. Вот список самых основных:

  • Атаки на переполнение буфера (Buffer Overflow Attacks) – Сервисы, которые работают с портами от нулевого до 1023-го должны выполняться с административными привилегиями. Если такой сервис содержит ошибку переполнения буфера, то злоумышленник может использовать её для получения доступа к системе с правами пользователя, под которым запущен данный сервис. Взломщики используют автоматические утилиты для поиска систем с уязвимостями, а после получения доступа к ним, они внедряют автоматизированные руткиты (rootkits), которые позволяют им сохранить доступ к системе в дальнейшем.
  • Атаки на отказ в обслуживании (Denial of Service Attacks, DoS) – Этот тип атак заключается в заваливании сервиса запросами на обслуживание. Получая необычайно большое количество запросов от злоумышленника, сервис пытается обработать каждый из них, растрачивая на это ресурсы системы. В результате новые запросы перестают обрабатываться из-за нехватки системных ресурсов.
  • Атаки на уязвимости в скриптах (Script Vulnerability Attacks) – Если сервис использует скрипты для выполнения различных действий на стороне сервера, что характерно для Web-сервисов, взломщик может построить свою атаку на плохо написанных скриптах. Уязвимости в скриптах могут приводить к состоянию переполнения буфера, либо позволять модифицировать файлы в системе.

Чтобы ограничить подверженность системы сетевым атакам, все ненужные сервисы должны быть выключены.

]]>
Как пересканировать SCSI-шину без перезагрузки компьютера? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%bf%d0%b5%d1%80%d0%b5%d1%81%d0%ba%d0%b0%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-scsi-%d1%88%d0%b8%d0%bd%d1%83-%d0%b1%d0%b5%d0%b7-%d0%bf%d0%b5%d1%80%d0%b5%d0%b7%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bf%25d0%25b5%25d1%2580%25d0%25b5%25d1%2581%25d0%25ba%25d0%25b0%25d0%25bd%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d1%2582%25d1%258c-scsi-%25d1%2588%25d0%25b8%25d0%25bd%25d1%2583-%25d0%25b1%25d0%25b5%25d0%25b7-%25d0%25bf%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7%25d0%25b0 Sun, 19 Jul 2009 09:06:56 +0000 http://www.n-ix.com/ipesin/?p=322

Система: Red Hat Enterprise Linux 3, 4 и 5

Добавить и удалить конкретное SCSI-устройство, как и пересканировать всю SCSI-шину, возможно без перезагрузки системы. Обратитесь к документу Online Storage Reconfiguration Guide за полным обзором по этой теме в Red Hat Enterprise Linux 5.

Для Red Hat Enterprise Linux 5

Для хранилища, подключённого через fibre channel, можно инициировать выполнение LIP (loop initialization primitive) на фабрике:

echo "1" &gt; /sys/class/fc_host/host#/issue_lip

Выполнение LIP (как в приведённом примере) — это всё, что необходимо в Red Hat Enterprise Linux 5 для пересканирования шины fibre channel. Для завершения операции сканирования нужно несколько секунд. Эта функциональность полностью поддерживается начиная с версии Red Hat Enterprise Linux 5.

Для Red Hat Enterprise Linux 4 и 5

Чтобы пересканировать шину SCSI-контроллера, выполните команду:

echo "- - -" &gt; /sys/class/scsi_host/host#/scan

Замените символ # номером SCSI-шины, которую нужно пересканировать.

Кроме полного пересканирования шины, можно добавлять или удалять только определённое заданное устройство. Команды для различных версий Red Hat Enterprise Linux приведены в следующих разделах.

Для Red Hat Enterprise Linux 4 или 5

Чтобы удалить одно заданное устройство, выполните:

# echo 1 &gt; /sys/block/&lt;dev&gt;/device/delete

Для Red Hat Enterprise Linux 3, 4 или 5

Чтобы добавить одно заданное устройство, выполните:

# echo "scsi add-single-device &lt;H&gt; &lt;B&gt; &lt;T&gt; &lt;L&gt;" &gt; /proc/scsi/scsi

Чтобы удалить заданное устройство, выполните:

# echo "scsi remove-single-device &lt;H&gt; &lt;B&gt; &lt;T&gt; &lt;L&gt;" &gt; /proc/scsi/scsi

Где <H> <B> <T> <L> — это хост, шина, целевой номер устройства и логический номер (host, bus, target, LUN) соответственно. Соответствующие устройству номера можно найти в каталоге /sys (тольок для ядер версии 2.6), файле /proc/scsi/scsi или выводе команды dmesg.

В документации и выводе утилит указанные номера могут также называться как “хост”, “канал”, “идентификатор” и “lun”.

Рекомендации для виртуальных гостевых систем

Вышеописанные процедуры применимы для систем с гипервизорами (т.е. для dom0 в Red Hat Enterprise Linux 5), но не могут использоваться для динамического изменения хранилищ виртуальных гостевых систем. За подробной информацией о добавлении хранилищ в виртуальные гостевые системы обращайтесь к документу Virtualization Guide.

Для владельцев контроллеров Hewlett-Packard SmartArray

Контроллеры HP SmartArray и другое аппаратное обеспечение, использующее драйвер cciss, имеют другой интерфейс для управления SCSI-устройствами. Пользователи таких котроллеров могут обратится к аналогичному руководству здесь.

]]>
Как заставить HP Smart Array просканировать шину без перезагрузки Red Hat Enterprise Linux 4? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%b7%d0%b0%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-hp-smart-array-%d0%bf%d1%80%d0%be%d1%81%d0%ba%d0%b0%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d1%88%d0%b8%d0%bd%d1%83/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25b7%25d0%25b0%25d1%2581%25d1%2582%25d0%25b0%25d0%25b2%25d0%25b8%25d1%2582%25d1%258c-hp-smart-array-%25d0%25bf%25d1%2580%25d0%25be%25d1%2581%25d0%25ba%25d0%25b0%25d0%25bd%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d1%2582%25d1%258c-%25d1%2588%25d0%25b8%25d0%25bd%25d1%2583 Thu, 16 Jul 2009 16:14:47 +0000 http://www.n-ix.com/ipesin/?p=500

Для работы с контроллером HP Smart Array используется драйвер cciss. Если в работающую систему были добавлены диски, поддерживающие горячую замену, они не будут видны до тех пор, пока не пересканируется шина SCSI. Обычно это происходит при загрузке системы. Если перезагрузка системы невозможна или нежелательна, можно использовать следующий подход: инициировать сканирование шины командами драйвера. Для этого, отправьте команду rescan драйверу cciss:

echo "rescan" &gt; /proc/driver/cciss/cciss0

А после того, как шина будет просканирована, можно добавить новое устройство в систему:

echo scsi add-single-device 3 2 1 0 &gt; /proc/scsi/scsi

Вышеприведённый пример добавляет устройство с SCSI-номером 1, логическим номером 0, подключенное ко второй шине третьего контроллера (controller 3, bus 2, target 1, lun 0). Измените эти значения в соответствии с параметрами добавляемого устройства.

]]>
Как с помощью yum скачать пакет, не устанавливая его в системе? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-yum-%d1%81%d0%ba%d0%b0%d1%87%d0%b0%d1%82%d1%8c-%d0%bf%d0%b0%d0%ba%d0%b5%d1%82-%d0%bd%d0%b5-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d1%2581-%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d1%2589%25d1%258c%25d1%258e-yum-%25d1%2581%25d0%25ba%25d0%25b0%25d1%2587%25d0%25b0%25d1%2582%25d1%258c-%25d0%25bf%25d0%25b0%25d0%25ba%25d0%25b5%25d1%2582-%25d0%25bd%25d0%25b5-%25d1%2583%25d1%2581%25d1%2582%25d0%25b0%25d0%25bd%25d0%25b0 Mon, 13 Jul 2009 15:30:21 +0000 http://www.n-ix.com/ipesin/?p=498

Система: Red Hat Enterprise Linux 5

Решение:

Убедитесь, что пакет yum-downloadonly установлен в системе. Если нет, то этот пакет доступен в Red Hat Network (RHN).  Чтобы установить пакет yum-downloadonly в системе, зарегистрированной в Red Hat Network, выполните команду:

#yum install yum-downloadonly

yum-downloadonly — это плагин, который может быть использован для загрузки пакетов из RHN или репозиториев yum, без установки их в системе. Проверьте содержимое файла /etc/yum/pluginconf.d/downloadonly.conf и убедитесь, что плагин разрешён:

[main]
enabled=1

Теперь, для примера, выполните следующую команду, которая загружает последнюю версию vsftpd, если она доступна, без установки в системе:

# yum install --downloadonly vsftpd
Loading "downloadonly" plugin
Loading "rhnplugin" plugin
rhel-i386-server-5        100% |=========================| 1.4 kB    00:00
Setting up Install Process
Parsing package install arguments
Package vsftpd - 2.0.5-10.el5.i386 is already installed.
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package vsftpd.i386 0:2.0.5-12.el5 set to be updated
--&gt; Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Updating:
 vsftpd                  i386       2.0.5-12.el5     rhel-i386-server-5  138 k

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       1 Package(s)
Remove       0 Package(s)

Total download size: 138 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): vsftpd-2.0.5-12.el 100% |=========================| 138 kB    00:02

exiting because --downloadonly specified

По-умолчанию, пакет сохраняется в каталог /var/cache/yum/<repo>/packages/. В нашем случае <repo> это rhel-i386-server-5. Чтобы сохранить пакет в другом каталоге, укажите параметр --downloaddir вместе с --downloadonly. Например:

#yum install --downloadonly --downloaddir=/tmp vsftpd

В результате последняя доступная версия пакета vsftpd, если он не установлен в системе, будет загружена и сохранена в каталоге /tmp.

Чтобы скачать пакет установленный в системе, используйте команду yumdownloader. Например, в системе установлен пакет httpd-2.2.3-22.el5:

# rpm -q httpd
httpd-2.2.3-22.el5

Чтобы скачать его, воспользуйтесь командой yumdownloader:

# yumdownloader httpd-2.2.3-22.el5
Loaded plugins: fastestmirror, kmod, protectbase, rhnplugin, versionlock
Loading mirror speeds from cached hostfile
Reading version lock configuration
0 packages excluded due to repository protections
httpd-2.2.3-22.el5.i386.rpm

Пакет сохраняется в текущем каталоге. Чтобы указать другое место, добавьте ключ --destdir с указанием нужного каталога. За подробной информацией о возможностях и параметрах команды обращайтесь к странице руководства, доступной по команде man yumdownloader.

Прим.пер.: утилита yumdownloader входит в пакет yum-utils.

]]>
Как активировать маскарад в iptables? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b0%d1%81%d0%ba%d0%b0%d1%80%d0%b0%d0%b4-%d0%b2-iptables/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25b0%25d0%25ba%25d1%2582%25d0%25b8%25d0%25b2%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d1%2582%25d1%258c-%25d0%25bc%25d0%25b0%25d1%2581%25d0%25ba%25d0%25b0%25d1%2580%25d0%25b0%25d0%25b4-%25d0%25b2-iptables Fri, 10 Jul 2009 11:34:39 +0000 http://www.n-ix.com/ipesin/?p=455

Приведённые здесь инструкции активируют функциональность маскарада, но не обеспечивают полной настройки пакетного фильтра.

В нашем примере, мы будем использовать устройство eth0. Следующая команда iptables добавляет цель MASQUERADE в послемаршрутизационную цепь обработки пакетов (т.е. непосредственно включает маскарад):

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

После этого, нужно отредактировать файл /etc/sysctl.conf, чтобы настроить продвижение пакетов. Для этого измените строку:

net.ipv4.ip_forward=0

на:

net.ipv4.ip_forward=1

Если такой строки в файле нет, просто добавьте вышеприведённую строку, которая устанавливает значение параметра ip_forward равным 1 (единице). После этого, чтобы пересчитать файл конфигурации sysctl, запустите команду:

sysctl -p

]]>
Как определить, выполняется ли текущая система в виртуальной машине? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b8%d1%82%d1%8c-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d0%bb%d0%b8-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25be%25d0%25bf%25d1%2580%25d0%25b5%25d0%25b4%25d0%25b5%25d0%25bb%25d0%25b8%25d1%2582%25d1%258c-%25d0%25b2%25d1%258b%25d0%25bf%25d0%25be%25d0%25bb%25d0%25bd%25d1%258f%25d0%25b5%25d1%2582%25d1%2581%25d1%258f-%25d0%25bb%25d0%25b8-%25d1%2582%25d0%25b5%25d0%25ba%25d1%2583%25d1%2589%25d0%25b0 Sun, 05 Jul 2009 09:53:25 +0000 http://www.n-ix.com/ipesin/?p=313

В только-что загрузившейся системе, чтобы узнать, работает ли она в виртуальном окружении, достаточно проверить вывод команды dmesg. Ниже приведены примеры выполнения команды в разных виртуализационных средах:

Xen

$ dmesg | grep -i virtual 
Xen virtual console successfully installed as xvc0

VMWare

$ dmesg | grep -i virtual  
     VMware vmxnet virtual NIC driver         Vendor: VMware    Model: Virtual disk      Rev: 1.0  
     hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive

QEMU или KVM

$ dmesg | grep -i virtual    
   CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03

Кроме того, можно также использовать команду dmidecode, для получения информации из системного BIOS. Например:

VMWare:

# dmidecode | egrep -i 'manufacturer|product'   
    Manufacturer: VMware, Inc.       Product Name: VMware Virtual Platform

QEMU или KVM:

# dmidecode | egrep -i 'vendor' 
   Vendor: QEMU

]]>
Как получить дополнительную информацию о производительности дисков? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d1%8c-%d0%b4%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%83%d1%8e-%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bf%25d0%25be%25d0%25bb%25d1%2583%25d1%2587%25d0%25b8%25d1%2582%25d1%258c-%25d0%25b4%25d0%25be%25d0%25bf%25d0%25be%25d0%25bb%25d0%25bd%25d0%25b8%25d1%2582%25d0%25b5%25d0%25bb%25d1%258c%25d0%25bd%25d1%2583%25d1%258e-%25d0%25b8%25d0%25bd%25d1%2584%25d0%25be%25d1%2580%25d0%25bc%25d0%25b0 Thu, 02 Jul 2009 08:32:35 +0000 http://www.n-ix.com/ipesin/?p=327

Команда iostat предоставляет статистику операций ввода/вывода, но иногда администраторам требуется более детальная информация. В таких случаях может оказаться полезным файл /proc/diskstats. Ниже приведён пример выполнения команды cat /proc/diskstats:

# cat /proc/diskstats
    1       0 ram0 0 0 0 0 0 0 0 0 0 0 0
.........................................
    1      15 ram15 0 0 0 0 0 0 0 0 0 0 0
    8       0 sda 13707 12045 788079 251532 3517 6016 76252 184444 0
 77704 435976
    8       1 sda1 834 1670 2 4
    8       2 sda2 23606 784578 9531 76248
    8       3 sda3 1267 1431 0 0
   22       0 hdc 9 9 144 544 0 0 0 0 0 468 544
    2       0 fd0 0 0 0 0 0 0 0 0 0 0 0
    9       0 md0 0 0 0 0 0 0 0 0 0 0 0

Рассмотрим приведённый вывод:

Первые две колонки — это старший и младший номер устройства.

Третья колонка содержит имя устройства, после которого идут ещё 11 колонок.

Поле 1: количество выполненных операций чтения. Это общее число успешно завершённых операций чтения.

Поле 2: количество объединённых операций чтения.

Поле 3: количество считанных секторов. Это общее число успешно прочитанных секторов.

Поле 4: количество миллисекунд, затраченных на чтение. Это общее число миллисекунд, затраченных на операции чтения (измеряется от вызова __make_request() до end_that_request_last()).

Поле 5: количество выполненных операций записи. Это общее число успешно завершённых операций записи.

Поле 6: количество объединённых операций записи. Последовательные операции чтения и записи могут объединяться для повышения эффективности. Потому две операции считывания по 4K, могут стать одной операцией по считыванию 8K непосредственно перед передачей запроса диску. Таким образом, эти операции будут посчитаны (и выполнены) как одна операция ввода/вывода. Это поле показывает насколько часто происходит такая ситуация.

Поле 7: количество записанных секторов. Это общее число успешно записанных секторов.

Поле 8: количество миллисекунд, затраченных на запись. Это общее число миллисекунд, затраченных на операции записи (измеряется от вызова __make_request() до end_that_request_last()).

Поле 9: количество выполняемых операций ввода/вывода в текущий момент. Единственное поле, значение которого может уменьшаться до нуля. Увеличивается при передаче запросов соответствующей request_queue_t и уменьшается при их завершении.

Поле 10: количество миллисекунд, затраченных на выполнение операций ввода/вывода. Это значение возрастает, пока значение поля 9 не равно нулю.

Поле 11: взвешенное число миллисекунд, затраченных на выполнение операций ввода/вывода. При каждом начале, завершении,или объединении операций ввода/вывода, или при считывании этой статистики, это поле увеличивается на число выполняемых в текущий момент операций ввода/вывода (поле 9), умноженное на количество миллисекунд, затраченных на выполнение операций ввода/вывода, с момента последнего обновления данного поля. Это позволяет получить простую статистику как времени выполнения операций ввода/вывода, так и количества незавершённых операций, число которых может возрастать.

Прим.пер.: здесь рассматривается формат записи, относящийся к диску, не разделу. Для разделов представлены только 4 поля, аналоги описанных полей 1,3,5,7. Начиная с ядра 2.6.25 у разделов появился полный набор полей статистики.

]]>
Как настроить дополнительные маршруты в Red Hat Enterprise Linux? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-%d0%b4%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%bc%d0%b0%d1%80%d1%88%d1%80%d1%83/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bd%25d0%25b0%25d1%2581%25d1%2582%25d1%2580%25d0%25be%25d0%25b8%25d1%2582%25d1%258c-%25d0%25b4%25d0%25be%25d0%25bf%25d0%25be%25d0%25bb%25d0%25bd%25d0%25b8%25d1%2582%25d0%25b5%25d0%25bb%25d1%258c%25d0%25bd%25d1%258b%25d0%25b5-%25d0%25bc%25d0%25b0%25d1%2580%25d1%2588%25d1%2580%25d1%2583 Tue, 30 Jun 2009 20:16:37 +0000 http://www.n-ix.com/ipesin/?p=321

Система: Red Hat Enterprise Linux 3.5, 4 and 5

Чтобы задать статические маршруты, используются файлы /etc/sysconfig/network-scripts/route-interface. Они считываются при инициализации сетевых интерфейсов (ниже описывается синтаксис файлов).

Существуют два варианта синтаксиса этих файлов. Первый — это аргументы к команде ip, второй состоит из директив “сеть/маска/шлюз”.

Синтаксис 1:

Если используется синтаксис с аргументами команды ip, скрипт ifup-route для каждой строки из файла выполняет команду ip route add. Строка в файле должна содержать все необходимые параметры для добавления маршрута. Например, чтобы задать маршрут по-умолчанию, файл должен содержать следующее:

default via X.X.X.X dev bond0
10.10.10.0/24 via X.X.X.X dev bond0

В приведённом примере, X.X.X.X — это IP-адрес шлюза. Вторая строка задаёт другой статический маршрут, где X.X.X.X это тоже IP-адрес шлюза. Каждая строка в файле обрабатывается как отдельный маршрут.

Синтаксис 2:

Альтернативный вариант синтаксиса следующий:

ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=X.X.X.X

Где X.X.X.X это IP-адрес шлюза. Следующие записи должны быть последовательно пронумерованы (например ADDRESS1=, NETMASK1=, GATEWAY1=). Обратите внимание, что нумерация должна идти последовательно без пропусков (после 0 должна идти 1, а не любое число, большее 0).

]]>