настроить мост + NAT

Добрый вечер. В общем есть компьютер с Gentoo который использовался как шлюз+proxy сервер. Теперь возникла необходимость поставить еще одну карточку во внутреннюю сеть. Дальше мост между внутренними картами и нат. Проблема как раз сделать мост. Имеется:
eth0 - 1-я сетевая карта внутренний интерфейс
eth1 - внешний интерфейс
eth2 - 2-я карта которая смотрит во внутреннюю сеть
установил net-misc/bridge-utils Прописал в /etc/iconf.d/net

 more /etc/conf.d/net
config_eth1=("10.3.70.217 netmask 255.255.254.0")

brctl_br0=("setfd 0" "sethello 0" "stp off")
brctl_br0=("eth0 eth2")
config_eth0=("null")
config_eth2=("null")
config_br0=("192.168.0.1 netmask 255.255.255.0")
depend_br0() {
need net.eth0 net.eth2
}

потом создал ссылку в init.d

ln -s /etc/init.d/net.lo /etc/init.d/br0

дальше получаю

gentoo ~#/etc/init.d/br0 start
 * Caching service dependencies ...
/etc/conf.d/net: line 2: scripts: command not found
/etc/conf.d/net: line 2: scripts: command not found
/etc/conf.d/net: line 2: scripts: command not found
/etc/conf.d/net: line 2: scripts: command not found                         [ ok ]
 * Starting br0
 *   Configuration not set for br0 - assuming DHCP
 *   Bringing up br0
 *     dhcp
 *       network interface br0 does not exist
 *       Please verify hardware or kernel module (driver)                   [ !! ]

Тут как я понимаю не хватает какого то драйвера в ядре(?). Вообще нужны ли net.eth0 net.eth2 в init.d?
Ну и собственно дальше когда буду NAT настраивать через iptables можно просто использовать br0 ?

Цитата: Тут как я понимаю не

Цитата:
Тут как я понимаю не хватает какого то драйвера в ядре(?)

Совершенно верно. Надо включить соответствующие опции в ядре (CONFIG_BRIDGE)

Цитата:
Ну и собственно дальше когда буду NAT настраивать через iptables можно просто использовать br0 ?

истинно так

Спасибо. Сегодня попробую. А

Спасибо. Сегодня попробую. А CONFIG_BRIDGE я нашел в настройках ядра это наверно 802.1d.

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

сегодня попробовал. ничего не

сегодня попробовал. ничего не вышло. Даже не знаю в чем может быть дело.
Еще немного инфы

ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0c:46:16:b1:ef
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:11 Base address:0x8000

eth1      Link encap:Ethernet  HWaddr 00:e0:4c:48:b0:e5
          inet addr:10.3.70.217  Bcast:10.3.71.255  Mask:255.255.254.0
          inet6 addr: fe80::2e0:4cff:fe48:b0e5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2411 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1682 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2617699 (2.4 MiB)  TX bytes:112421 (109.7 KiB)
          Interrupt:12 Base address:0xc000

eth2      Link encap:Ethernet  HWaddr 00:21:91:21:5b:6a
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:10 Base address:0xe000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:295 errors:0 dropped:0 overruns:0 frame:0
          TX packets:295 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5310 (5.1 KiB)  TX bytes:5310 (5.1 KiB)
ls -l /etc/init.d/
total 156
-rwxr-xr-x 1 root root  3614 Jan 27 00:30 bootmisc
lrwxrwxrwx 1 root root    18 Feb 24 10:00 br0 -> /etc/init.d/net.lo
-rwxr-xr-x 1 root root  1232 Jan 27 00:30 checkfs
-rwxr-xr-x 1 root root  3226 Jan 27 00:30 checkroot
-rwxr-xr-x 1 root root  3054 Jan 27 00:30 clock
-rwxr-xr-x 1 root root  1419 Jan 27 00:30 consolefont
-rwxr-xr-x 1 root root  1729 Jan 27 00:29 crypto-loop
lrwxrwxrwx 1 root root    21 Feb 24 05:45 depscan.sh -> ../../sbin/depscan.sh
lrwxrwxrwx 1 root root    23 Feb 24 05:45 functions.sh -> ../../sbin/functions.sh
-rwxr-xr-x 1 root root  5606 Jan 27 00:30 halt.sh
-rwxr-xr-x 1 root root   433 Jan 27 00:30 hostname
-rwxr-xr-x 1 root root  1855 Jan 27 00:30 keymaps
-rwxr-xr-x 1 root root   620 Jan 27 00:30 local
-rwxr-xr-x 1 root root  2088 Jan 27 00:30 localmount
-rwxr-xr-x 1 root root  1018 Feb 24 08:28 metalog
-rwxr-xr-x 1 root root  2947 Jan 27 00:30 modules
lrwxrwxrwx 1 root root     6 Feb 24 05:40 net.eth0 -> net.lo
lrwxrwxrwx 1 root root    18 Feb 24 08:26 net.eth1 -> /etc/init.d/net.lo
lrwxrwxrwx 1 root root    18 Feb 24 09:30 net.eth2 -> /etc/init.d/net.lo
-rwxr-xr-x 1 root root 30689 Jan 27 00:30 net.lo
-rwxr-xr-x 1 root root  3307 Jan 27 00:30 netmount
-rwxr-xr-x 1 root root  1526 Jan 26 23:51 nscd
-rwxr-xr-x 1 root root   670 Jan 27 00:30 numlock
-rwxr-xr-x 1 root root   666 Jan 27 00:43 pydoc-2.6
-rwxr-xr-x 1 root root   304 Jan 26 23:24 reboot.sh
-rwxr-xr-x 1 root root   276 Jan 27 00:30 rmnologin
-rwxr-xr-x 1 root root   558 Jan 27 01:04 rsyncd
lrwxrwxrwx 1 root root    23 Feb 24 05:45 runscript.sh -> ../../sbin/runscript.sh
-rwxr-xr-x 1 root root   385 Jan 26 23:24 shutdown.sh
-rwxr-xr-x 1 root root  3315 Feb 26 02:28 squid
-rwxr-xr-x 1 root root  2159 Jan 27 01:20 sshd
-rwxr-xr-x 1 root root  5799 Jan 27 00:31 udev
-rwxr-xr-x 1 root root  2579 Jan 27 00:31 udev-dev-tarball
-rwxr-xr-x 1 root root  2680 Jan 27 00:31 udev-mount
-rwxr-xr-x 1 root root   683 Jan 27 00:31 udev-postmount
-rwxr-xr-x 1 root root   942 Jan 27 00:30 urandom
-rwxr-xr-x 1 root root   530 Feb 24 08:31 vixie-cron
modprobe -l | grep bridge
/lib/modules/2.6.31-gentoo-r10/kernel/net/bridge/bridge.ko
/etc/init.d/br0 start
 * Caching service dependencies ...
/etc/conf.d/net: line 2: scripts: command not found
/etc/conf.d/net: line 2: scripts: command not found
/etc/conf.d/net: line 2: scripts: command not found
/etc/conf.d/net: line 2: scripts: command not found                                                                                                    [ ok ]
 * Starting br0
 *   Configuration not set for br0 - assuming DHCP
 *   Bringing up br0
 *     dhcp
 *       network interface br0 does not exist
 *       Please verify hardware or kernel module (driver)            

Подскажите в чем может быть проблема?

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

Хорошо бы было увидеть как

Хорошо бы было увидеть как настроен br0 в /etc/conf.d/net. И мост через bridge-utils создали?

/etc/conf.d/net показывал уже

/etc/conf.d/net показывал уже в первом посте. Ничего не менял смотрите сами.

 more /etc/conf.d/net
config_eth1=("10.3.70.217 netmask 255.255.254.0")
routes_eth1=("default gw 10.3.70.1")

brctl_br0=("setfd 0" "sethello 0" "stp off")
brctl_br0=("eth0 eth2")
config_eth0=("null")
config_eth2=("null")
config_br0=("192.168.0.1 netmask 255.255.255.0")
depend_br0() {
need net.eth0 net.eth2
}

Ошибка та же.
Через bridge-utils ничего не делал кроме emerge bridge-utils =)) потому что элементарно не знаю как. В мануале об этом ничего не написано.
Поделитесь что забыл?

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

Вот так в мануале: #

Вот так в мануале:

# настройка моста: подробности в "man btctl"
brctl_br0=( "setfd 0" "sethello 0" "stp off" )

# включаем порты в мост br0
bridge_br0="eth0 eth1"

А так у вас:

brctl_br0=("setfd 0" "sethello 0" "stp off")
brctl_br0=("eth0 eth2")

Сравните...

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Youshi спасибо поправил. Но

Youshi спасибо поправил. Но дело оказалось не в этом.
Когда создавал сетевой интерфейс создал просто br0. Удалил его создал новый net.br0 и все запустилось =))

Всем спасибо проблема решена

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

Проглазел в первом посте

Проглазел в первом посте конфиг :)
У меня примерно такая же ситуация, с тем лишь отличаем что 2 сетевых карты. Между ними настроен мост и нат.
Настраивал давно, по этому мануалу. Вроде всё на ура работает.
eth0 - внутренняя сеть, eth1 - WAN
Для этого при помощи bridge-utils делаем следущее :

# brctrl addbr br0
# brctrl addif br0 eth0

Далее в /etc/conf.d/net пишем:

config_eth1=("ваши настройки")
config_eth0=("null")

brctl_br0=("setfd 0" "sethello 0" "stp off")
bridge_br0="eth0"
config_br0=("192.168.1.1/24")
depend_br0() {
        after net.eth0
        need net.eth0 net.eth1
}

Далее для NAT`а настроиваем iptables :

iptables -F
iptables -t nat -F

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

export LAN=br0
export LAN_ADDR=192.168.1.0/255.255.255.0
export WAN=eth1

# тут правила не имеющие отношения к NAT

iptables -I FORWARD -i ${LAN} -d ${LAN_ADDR} -j DROP
iptables -A FORWARD -i ${LAN} -s ${LAN_ADDR} -j ACCEPT
iptables -A FORWARD -i ${WAN} -d ${LAN_ADDR} -j ACCEPT
iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE

#Сообщаем ядру, что ip-форвардинг разрешен
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

У вас скорее всего проблема в

config_eth0=("null")
config_eth2=("null")
config_br0=("192.168.0.1 netmask 255.255.255.0")

Получается один интерфейс вообще не настроен. Насколько я понял brctrl как раз создаёт мост между интерфейсами, а в /etc/conf.d/net он настраивается.

kopwin спасибо за инфу, но

kopwin спасибо за инфу, но видимо как у меня, тоже работоспособно.
спасибо проблема решена, см топик выше.

Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".