Tag Archives: networking

Links: Nov 8

You know, I’m totally baffled by the contrast in quality of Obama for America 2012 and ObamaCare projects. The first one was top-notch bleeding-edge technology project carried out with gleaming excellence, the second though has been a model failure by all means.

4Gb/s, 10k requests per second, 2,000 nodes, 3 datacenters, 180TB and 8.5 billion requests. Design, deploy, dismantle in 583 days to elect the President. #madops

Tweet above summarises the challenge for OFA2012 project and here are few links about it:

Calamities with HealthCare.gov look like they’ve been using services of the /dev/null-as-a-service kind. Facepalm.

Got an email from google+ telling me I’m eligible for custom URL. Made me even log in, found out it was still as revolting as it had been for a year or so, and on top of it, my very first posts to google+ were missing. Actually, one of the reasons I started to use G+ was to save interesting links I had come across, and as you might imagine, I’m thrilled to discover they wipe my older posts. So expect some flashbacks, as I’m not going to loose interesting stuff and will repost it here.

Continuing to catch-up on links:

Technology

  • The Ars Technica Review of Mac OS X Mavericks, in-depth, long, and interesting reading.
  • Recommended server-side SSL configurations
  • DevOps Look-fors — the way of assessing your processes maturity
  • Beej’s Guide to Network Programming
  • Question asked on many interviews — can root kill init process? It depends.
  • Algorithms part 2 commenced!
  • Boostrap 3 add-ons collection (in Russian).

English

Other

  • Banksy turns 50$ painting into 1M$ treasure
  • How a plan becomes policy:

In the beginning was the plan.
And then came the assumptions.
And the assumptions were without form.
And the plan was without substance.
And darkness was upon the face of the workers.
And they spoke among themselves saying,
“It is a crock of shit and it stinketh.”
And the workers went unto their supervisors and said,
“It is a pale of dung and none may abide the odor thereof.”
And the supervisor went unto their managers and said,
“It is a container of excrement and it is very strong, such that none may abide by it.”
And the managers went unto their directors, saying,
“It is a vessel of fertilizer, and none may abide its strength.”
And the directors spoke among themselves, saying to one another,
“It contains that which aids plant growth and it is very strong.”
And the directors went unto the vice presidents, saying unto them,
“It promotes growth and is very powerful.”
And the vice presidents went unto the president, saying unto him,
“The new plan will promote the growth and vigor of the company, with powerful effects.”
And the president looked upon the plan and saw that it was good.
And the plan became policy.
This is how shit happens.

http://ogun.stanford.edu/~bnayfeh/plan.html

  • Jennifer’s the winner: Six Decades of the Most Popular Names for Girls, State-by-State

Popular Girl’s Names

 

В выводе netstat -rn значение MSS равно 0. Что это означает?

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

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

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

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

Значение 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:

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

Отметим, что это влияет лишь на пакеты, которые мы получаем, но не отправляем: значение 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 маршрута возникает крайне редко.

Как активировать маскарад в iptables?

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

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

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

на:

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

Почему попытка удалённо выполнить команду sudo с помощью ssh оканчивается ошибкой?

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

Проблема:

Попытка удалённого вызова команды sudo с помощью ssh заканчивается ошибкой.

Например:

$ ssh hostname sudo <command>
$ sudo: sorry, you must have a tty to run sudo

Решение:

Файл /etc/sudoers в Red Hat Enterprise Linux 5 по-умолчанию содержит флаг 'requiretty'. Когда этот флаг установлен, только зарегистрированные в системе пользователи могут выполнять команды с помощью sudo. Именно это и не позволяет выполнять удалённо команду sudo через rsh или ssh. Программы rsh и ssh не выделяют устройство псевдотерминала. Рекомендуется не убирать этот флаг, поскольку без псеводтерминала невозможно отключить эхо вводимых символов и, как следствие, отображение вводимого пароля.

Для принудительного выделения псевдотерминального устройства, укажите команде ssh параметр -t :

# ssh -t hostname sudo <cmd>

Как вариант, можно также отредактировать файл /etc/sudoers с помощью visudo и отключить флаг requiretty, закомментировав строку "Defaults: requiretty". Примечание: делать это не рекомендуется.

За подробной информацией обращайтесь к Red Hat Enterprise Linux Deployment Guide.

Как в Red Hat Enterprise Linux 5 настроить мост для Xen на интерфейсе, отличном от eth0?

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

Проблема:

Конфигурация Xen по-умолчанию автоматически включает в мост xenbr0 интерфейс eth0. Однако, в некоторых случаях бывает желательно включить в мост интерфейс, отличный от eth0, чтобы обеспечить гостевым системам доступ к другой сети.

Решение:

Для того, чтобы включить в мост xenbr0 интерфейс, отличный от eth0, необходимо передать дополнительный параметр скрипту network-bridge в файле /etc/xen/xend-config.sxp. Измените строку

(network-script network-bridge)

так, чтобы она включала имя интерфейса, который нужно включить в мост:

(network-script 'network-bridge netdev=eth1')

В этом примере, интерфейс eth1 будет включён в мост xenbr0. Если вы используете bonded-интерфейс, конфигурация будет выглядеть так:

(network-script 'network-bridge netdev=bond0')

При следующем старте демона xend для настройки моста будет использована новая конфигурация. Чтобы убедиться в правильности новой конфигурации, используйте команду brctl:

В этом примере, peth1 указан, как интерфейс входящий в мост xenbr0. Это означает, что интерфейс eth1 был корректно включён в мост.

Если необходимо, чтобы в мост входило несколько сетевых интерфейсов, например eth0 и eth1, прочитайте инструкции в совете Как объединить несколько сетевых интерфейсов Xen-хоста в мост, доступный гостевым системам?.

Где найти дополнительную информацию для отладки autofs?

Использование ключа --debug системы automounter может помочь получить полезную информацию при отладке, но при этом генерируется большой объём журнальных записей. Поэтому, использование этого ключа рекомендуется лишь во время отладки конкретной проблемы.

Сначала настройте syslog писать сообщения уровня daemon.debug в отдельный файл. Это поможет в дальнейшем отбирать необходимые сообщения. Добавьте такую строку в файл /etc/syslog.conf:

daemon.debug /var/log/autofs

Перегрузите syslog:

service syslog reload

Разрешите режим отладки демона automount. В карте auto.master добавьте флаг --debug в нужной строке.

Например, у нас есть такая строка в файле auto.master:

/autofoo auto.foo --timeout=60

Измените её на следующую:

/autofoo auto.foo --timeout=60 --debug

Перегрузите autofs:

service autofs reload

В результате, autofs начнёт писать подробную информацию о своей работе в журнальный файл /var/log/autofs.

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

Как избежать неправильной нумерации сетевых карт в системах Red Hat Enterprise Linux с несколькими сетевыми интерфейсами?

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

Проблема:

Большинство устройств нумеруются ядром Linux в соответствии с их порядком в PCI-таблице системного BIOS. Наполнением этой таблицы занимается сам BIOS. Поскольку порядок устройств в этой таблице на разных системах не обязательно последовательный, устройства могут нумероваться ядром по-разному. Обычно при определении порядка устройств на шине используются номер шины, номер устройства и номер функции. Некоторые системы имеют несколько шин, например шину PCI и шину PCI-X.

Решение:

Для того, чтобы избежать случаев перенумеровывания системных сетевых интерфейсов, необходимо использовать параметр HWADDR=. Например, следующая строка может быть добавлена в любой из файлов /etc/sysconfig/network-scripts/ifcfg-ethN:

HWADDR=

Если параметр “HWADDR=” не используется, то при перезагрузках может происходить периодическое переименование устройств.

Пример

В вышеприведённом примере вы можете видеть, что устройство eth0 после перезагрузки было переименовано в “__tmp1174018308”. Чтобы избежать повторения такой проблемы, задайте параметр “HWADDR=” в файле /etc/sysconfig/network-scripts/ifcfg-eth0 следующим образом:

Ethernet Device
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:1D:09:6A:78:EA
ONBOOT=yes