настроить мост + NAT
bumbaram 24 февраля, 2010 - 02:33
Добрый вечер. В общем есть компьютер с 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)
истинно так
Спасибо. Сегодня попробую. А
Спасибо. Сегодня попробую. А 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)Подскажите в чем может быть проблема?
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
Хорошо бы было увидеть как
Хорошо бы было увидеть как настроен 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 =)) потому что элементарно не знаю как. В мануале об этом ничего не написано.
Поделитесь что забыл?
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
Вот так в мануале: #
Вот так в мануале:
А так у вас:
brctl_br0=("setfd 0" "sethello 0" "stp off") brctl_br0=("eth0 eth2")Сравните...
Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!
Youshi спасибо поправил. Но
Youshi спасибо поправил. Но дело оказалось не в этом.
Когда создавал сетевой интерфейс создал просто br0. Удалил его создал новый net.br0 и все запустилось =))
Всем спасибо проблема решена
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
Проглазел в первом посте
Проглазел в первом посте конфиг :)
У меня примерно такая же ситуация, с тем лишь отличаем что 2 сетевых карты. Между ними настроен мост и нат.
Настраивал давно, по этому мануалу. Вроде всё на ура работает.
eth0 - внутренняя сеть, eth1 - WAN
Для этого при помощи bridge-utils делаем следущее :
Далее в /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 спасибо за инфу, но видимо как у меня, тоже работоспособно.
спасибо проблема решена, см топик выше.
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...