Сетевое железо - статьи

       

Linux


Речь пойдёт о семействе 2.6 ядер, для 2.4 ветки необходимо патчить ядро. Патчи можно найти по .

В ядро необходимо включить CONFIG_BRIDGE_NETFILTER=y

Если вы хотите фильтровать трафик, проходящий через мост - вы также должны включить CONFIG_BRIDGE_NF_EBTABLES=[y|m]

ebtables имеет достаточно много возможностей, которые вы можете включить в соответствующем разделе конфигурации netfilter.

ebtables заслуживает более детального описания. Ждите следующей статьи.

Device Drivers => Networking support => Networking support (NET [=y]) => Networking options => Network packet filtering (replaces ipchains) (NETFILTER) => Bridge: Netfilter Configuration

Для поддержки TAP надо включить соответствующий пункт, расположенный в:

Device Drivers => Networking support => Network device support (NETDEVICES [=y])

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

Есть одна тонкость - в мост можно включать только интерфейсы, не имеющие назначенных ip адресов. #!/bin/sh modprobe tun

LOCAL_IF="eth0" REMOTE_IF="tap0" BRIDGE_IF="br0" BRIDGE_IP="w.x.y.z" BRIDGE_MASK="a.b.c.d" BRIDGE_BROADCAST="e.f.g.h" CONFIG="/path/to/config"

# Запускаем OpenVPN в режиме демона openvpn --config $CONFIG --daemon

# Выключаем мост (если он включен) ifconfig $BRIDGE_IF down # Удаляем мост (убираем мусор за предыдущим запуском скрипта) brctl delbr $BRIDGE_IF # Добавляем новый мост brctl addbr $BRIDGE_IF # Включаем в мост интерфейсы brctl addif $BRIDGE_IF $LOCAL_IF brctl addif $BRIDGE_IF $REMOTE_IF

# Убираем адреса с интерфейсов, входящих в мост и поднимаем их ifconfig $LOCAL_IF 0.0.0.0 promisc up ifconfig $REMOTE_IF 0.0.0.0 promisc up

# Назначаем мосту адрес, если это необходимо - например вместо адреса на интерфейсе локалки. ifconfig $BRIDGE_IF $BRIDGE_IP netmask $BRIDGE_MASK broadcast $BRIDGE_BROADCAST # Включаем мост ifconfig $BRIDGE_IF up

Готово.



Содержание раздела