Показаны сообщения с ярлыком сеть. Показать все сообщения
Показаны сообщения с ярлыком сеть. Показать все сообщения

вторник, 8 мая 2012 г.

FreeBSD управление алиасами сетевых интерфейсов

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

ifconfig em0 inet alias 192.168.0.101 netmask 255.255.255.0

Чтобы удалить алиас:

 ifconfig em0 -alias 192.168.0.101

Чтобы алиасы сетевых интерфейсов создавались автоматически при старте системы, добавьте в /etc/rc.conf строки вида:

ifconfig_em0_alias0="inet 192.168.0.101 netmask 255.255.255.0"
ifconfig_em0_alias1="inet 192.168.0.102 netmask 255.255.255.0"

понедельник, 4 июля 2011 г.

Настройка polling во FreeBSD

Не буду распространятся сильно о том, что такое polling, просто скажу о приносимой им пользе.

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

Для работы polling требуется его поддержка ядром FreeBSD. По умолчанию она отключена, поэтому необходимо перекомпилирвать ядро со следующими параметрами:

options DEVICE_POLLING
options HZ=1000

Второй параметр, в общем-то, не обязателен.

Итак, справка для тех, кто не умеет компилировать ядро FreeBSD. Идем в директорию /usr/src/sys/i386/conf и правим там файл с именем GENERIC добавляя нужные нам параметры. Затем идем в директорию /usr/src/ и выполняем команды:

make -j4 buildkernel
make installkernel
reboot

После перезагрузки можно включить polling для определенных интерфейсов командой вида (для последних версий FreeBSD):

ifconfig re0 polling

Соответственно, стоит добавить параметр polling  в настройки сетевых интерфейсов в файле  /etc/rc.conf чтобы поллинг автоматически включался после перезагрузки.

На моем стареньком селероне это дало снижение нагрузки по обработке прерываний с примерно 40 процентов до примерно одного. Довольно ощутимо.

понедельник, 6 июня 2011 г.

Настройка dhcp клиента dhclient в FreeBSD

DHClient в FreeBSD включен по умолчанию. Чтобы начать его использовать, следует прописать в файле /etc/rc.conf строку следующего вида:


ifconfig_fxp0="DHCP"

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

dhcp_program="/sbin/dhclient"
dhcp_flags=""

Также существует ряд параметров командной строки:


-b Заставляет dhclient перейти в режим фоновой работы.
-c file Определяет альтернативное положение конфигурационного файла.
-d Заставляет dhclient всегда работать на переднем плане.
-l file Определяет альтернативное положение файла с данными о предыдущих полученных конфигурациях.
-q Заставляет dhclient быть менее многословным при загрузке.
-u Заставляет dhclient не принимать конфигурации с неизвестными параметрами в них. По умолчанию, DHCP клиент принимает такие конфигурации.

Напомню, что настройки клиента по умолчанию находится в файле /etc/dhclient.conf А предыдущие полученные настройки сетевых интерфейсов в файлах /var/db/dhclient.leases.IFNAME, где IFNAME - имя интерфейса.

Более подробно о параметрах файла dhclient.conf можно прочитать в мане dhclient.conf(5).

Можете обратить своё внимание на мой пост про настройку DHCP сервера в FreeBSD.

воскресенье, 5 июня 2011 г.

Изменение mac адреса в FreeBSD

Для того чтобы изменить mac адрес сетевой карты я всегда прописывал команду
ifconfig re0 ether 00-00-00-00-00-01
в какой-нибудь стартовый скрипт, к примеру в /etc/rc.d/ipnat

Но оказалось все проще, можно задавать этот параметр прямо из /etc/rc.conf следующим образом
ifconfig_re0="ether 00:00:00:00:00:01"

Настройка dhcp сервера freebsd

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

После этого переходим в каталог /usr/ports/net/isc-dhcp41-server (последняя версия на момент написания заметки) и выполняем классическую команду:

make && make install

После того, как процесс установки dhcp сервера закончится, необходимо перейти к его конфигурации. Для этого правим файл /usr/local/etc/dhcpd.conf
Стоит закомментировать все строки и сконфигурировать сеть с нуля. Выглядит это все примерно так:

subnet 192.168.0.0 netmask 255.255.255.0 {
   range 192.168.0.100 192.168.0.200;
   option routers 192.168.0.55;
   option domain-name-servers 172.16.1.40, 172.16.1.41;
   default-lease-time 36000;
   max-lease-time 72000;
}

То есть вы указываете подсеть, маску, диапазон адресов, роутер(ы) по умолчанию, DNS сервера, время, на которое выдается адрес хосту.

Кроме того, можно осуществить привязку IP адреса к MAC адресу, чтобы у хоста всегда был один и тот же IP. Для этого пропишите следующие строки:

host username {
   hardware ethernet 00:00:00:00:00:00;
   fixed-address 192.168.0.11;
}

Узнать MAC интерфейсов компьютера можно с помощью команды ifconfig. А если вы хотите определить MAC другой системы в сети, то зная её IP можно обратиться к команде arp -a.

После того, как все закончили правку конфигурационного файла, пропишем пару строк в файл /etc/rc.conf

dhcpd_enable="YES"
dhcpd_ifaces="dc0"

Вторая строка определяет на каком интерфейсе будет раздавать адреса наш DHCP сервер.

Наконец, стартуем:

/usr/local/etc/rc.d/isc-dhcpd start

Вот и все. Успешной работы!

пятница, 3 июля 2009 г.

Настройка сети

Я оказался непоследователен описав в предыдущем посте как работать с портами, не рассказав как настроить работу сети, а без этого работа с портами врят ли возможна. Конечно, можно использовать исходники поставляемые в составе дистирбутива FreeBSD, но врят ли они будут последних версий.

Ежели вы устанавливали ось с использованием сетевого загрузчика (что в современных условиях часто оправдано), то как минимум один интерфейс у вас должен быть уже сконфигурирован. Вообще говоря, настройки сетевых карт, которые подхватываются при загрузке находятся в файле /etc/rc.conf и выглядят примерно таким образом:

ifconfig_fxp0="inet 84.246.77.15 netmask 255.255.255.0"
ifconfig_rl0="inet 192.168.0.55 netmask 255.255.255.0"

гду fxp0 - внешний интерфейс, rl0 - внутренний. В данном примере сервер является шлюзом между сетью интернет и внутренней сетью. Поэтому для того, чтобы внутренние пользователи могли получить доступ к сети Интернет, на сервере необходимо сконфигурировать службу NAT. Для этого в rc.conf необходимо добавить следующие строки:

defaultrouter="84.246.77.1" - указываем роутер для отправки пакетов в инет (выдается провайдером)
gateway_enable="YES" - указываем, что наш сервер является шлюзом

ipnat_enable="YES" - включаем систему натирования, которая будет автоматически загружаться
ipnat_program="/sbin/ipnat -CF -f" - флаги -CF очищают таблицу правил NAT, а -f указывает, чт нужно загрузить правила из файла
ipnat_rules="/etc/ipnat.rules" - путь к файлу с правилами
ipnat_flags=""

Теперь при перезагрузке системы NAT будет подниматься автоматически. Осталось составить таблицу правил натирования и сохранить её в файл /etc/ipnat.rules. В простейшем случае она будет состоять из одной строки:

map fxp0 192.168.0.0/24 ->85.249.77.16/32

то есть при запросах из подсети 192.168.0.0/24 в интернет пакетам будет присваиваться адрес отправителя 85.249.77.16/32. Конечно же будет производиться и обратная трансляция адресов.

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

rdr fxp0 0.0.0.0/0 port 26000 -> 192.168.0.10 port 26000 tcp

Более подробно про составление правил можно почитать в файлах из папки /usr/share/examples/ipfilter/. Осталось только стартануть ipnat командой

/etc/rc.d/ipnat start

и при необходимости после этого использовать команду

/sbin/ipnat -CF -f /etc/ipnat.rules

Все, система работает. Однако, в случае если у вашего провайдера идет привязка сетевых карт по MAC-адресу, а вам необходимо её заменить, то установить MAC-адрес на сетевой карте програмным путем можно с помощью команды вида:

ifconfig fxp0 ether 10-0F-3D-1A-E3-45

На этом вроде все.