bonding+dhcp

Есть сервер с несколькими сетевухами. При старте стевухи в режиме bonding падает внешняя сеть.
eth0 - смотрит в интернеты
eth1 - смотрит в локалку
bond0 (eth2,eth3) - встроенные сетевухи, которые смотрят на комп с такой же мамой как и сервак, но под Win7
Комп висящий на bond0 при старте винды сбрасывает IP у eth0 и права у /dev/null на rwxr--r--
Мамы на которых стоят сетевушки: GA-890FXA-UD5
Под виндой они тоже сконфигурированы как 802.3ad

Забить на bond не предлагать - без него работало когда-то.
Сделать bridge на bond0-eth1 - тоже, точнее чем это будет лучше? Ну не будут пакеты NATиться..
Забавно но bond прироста скорости не даёт - делал для интереса тест на посылку UDP - пользует половину канала.
Вдогонку кто знает как теперь переименовывать сетевушки по новым правилам udev ? Читал вроде все официальные мануалы, но без примера не понятно. (Забавно, что eth2,eth3 при присвоении MAC в bond0 режиме одной сетевухе, вторая устанавливает себе такой же..)

fulcrum log # cat /etc/conf.d/net

# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d.  To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
preup() {
        # Adjusting the bonding mode / MII monitor
        # Possible modes are : 0, 1, 2, 3, 4, 5, 6,
        #     OR
        #   balance-rr, active-backup, balance-xor, broadcast,
        #   802.3ad, balance-tlb, balance-alb
        # MII monitor time interval typically: 100 milliseconds

        if [[ ${IFACE} == "bond0" ]] ; then
            #BOND_MODE="balance-alb"
            BOND_MODE="802.3ad"
            BOND_MIIMON="100"
            echo ${BOND_MODE} >/sys/class/net/bond0/bonding/mode
            echo ${BOND_MIIMON}  >/sys/class/net/bond0/bonding/miimon
            einfo "Bonding mode is set to ${BOND_MODE} on ${IFACE}"
            einfo "MII monitor interval is set to ${BOND_MIIMON} ms on ${IFACE}"
        else
            einfo "Doing nothing on ${IFACE}"
        fi
        
        iptables-restore < /etc/iptables.up.rules
        return 0
}

modules="dhcpcd"
#config_eth0="null"
#config_eth1="null"

interfaces="bond0"

config_eth1="192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255"
dns_domain_eth0="sky"

mac_eth0="00:a0:c9:e3:53:aa"

config_bond0="192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255"
slaves_bond0="eth2 eth3"
dns_domain_bond0="sky"

config_eth0=""
ifup_eth0="/root/iptables-rc.bond"

fulcrum log # cat /etc/resolvconf.conf

# Configuration for resolvconf(8)
# See resolvconf.conf(5) for details

resolv_conf=/etc/resolv.conf
# If you run a local name server, you should uncomment the below line and
# configure your subscribers configuration files below.
name_servers=127.0.0.1
fulcrum log # 

fulcrum log # cat /etc/resolv.conf.head

nameserver 127.0.0.1
#domain sky

fulcrum log # cat /etc/resolv.conf.tail

domain netbynet.ru
nameserver 212.1.224.6
nameserver 212.1.230.111
fulcrum log # 

fulcrum log # cat /etc/resolv.conf

# Generated by dhcpcd from eth0
nameserver 127.0.0.1
#domain sky
domain netbynet.ru
nameserver 212.1.224.6
nameserver 212.1.244.6
domain netbynet.ru
nameserver 212.1.224.6
nameserver 212.1.230.111
fulcrum log # 

fulcrum log # cat /etc/dnsmasq.conf

# Configuration file for dnsmasq.
#
# Format is one option per line, legal options are the same
# as the long options legal on the command line. See
# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.

# The following two options make you a better netizen, since they
# tell dnsmasq to filter out queries which the public DNS cannot
# answer, and which load the servers (especially the root servers)
# uneccessarily. If you have a dial-on-demand link they also stop
# these requests from bringing up the link uneccessarily.

# Never forward plain names (without a dot or domain part)
#domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv

# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.

interface=bond0
interface=eth1

dhcp-range=192.168.1.11,192.168.1.250,1d
dhcp-range=192.168.2.11,192.168.2.250,1d


dhcp-host=00:16:36:7b:d9:0d,neko,192.168.1.4,1d

dhcp-host=00:14:85:b4:e2:e4,alexF,192.168.1.6,1d

dhcp-host=00:e0:4c:10:0c:6e,blackbird,192.168.2.5,1d

dhcp-host=00:26:6c:88:8d:86,redbook,192.168.1.7,1d
dhcp-host=00:15:f2:15:f2:67,WPA,192.168.1.10,1d

dhcp-host=00:1c:f0:d6:d1:67,WPA2,192.168.1.50,1d

dhcp-host=00:0e:2e:72:37:e1,adam,192.168.1.14,1d

# Set the NTP time server address to be the same machine as
# is running dnsmasq
dhcp-option=42,0.0.0.0

# Set the NIS domain name to "welly"
dhcp-option=40,sky

# Set the "all subnets are local" flag
dhcp-option=27,1

# Send RFC-3397 DNS domain search DHCP option. WARNING: Your DHCP client
# probably doesn't support this......
#dhcp-option=119,eng.apple.com,marketing.apple.com
dhcp-option=119,sky
# Send RFC-3442 classless static routes (note the netmask encoding)
#dhcp-option=121,192.168.1.0/24,1.2.3.4,10.0.0.0/8,5.6.7.8

# Send encapsulated vendor-class specific options. The vendor-class
# is sent as DHCP option 60, and all the options marked with the
# vendor class are send encapsulated in DHCP option 43. The meaning of
# the options is defined by the vendor-class. This example sets the
# mtftp address to 0.0.0.0 for PXEClients
dhcp-option=vendor:PXEClient,1,0.0.0.0

fulcrum log # cat ~/iptables-rc.bond

iptables -F
iptables -t nat -F

#Setup default policies to handle unmatched traffic
 iptables -P INPUT ACCEPT
 iptables -P OUTPUT ACCEPT
 iptables -P FORWARD DROP

#Copy and paste these examples ...
 export WAN=eth0
 export LAN=eth1
 export LANB=bond0

#Then we lock our services so they only work from the LAN
 iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -i ${LAN} -j LOG
 iptables -A INPUT -i ${LAN} -j ACCEPT
 iptables -A INPUT -i ${LANB} -j ACCEPT
 
# iptables -I INPUT 1 -i ${LANB} -j LOG
# iptables -I INPUT 1 -i ${LANB} -j ACCEPT
# iptables -I INPUT 1 -i ${LAN} -j ACCEPT
# iptables -I INPUT 1 -i lo -j ACCEPT
 
## iptables -A INPUT -p UDP ! --dport bootps -i ${LAN} -j REJECT
## iptables -A INPUT -p UDP ! --dport domain -i ${LAN} -j REJECT
## iptables -A INPUT -p UDP ! --dport distcc -i ${LAN} -j REJECT
## iptables -A INPUT -p UDP ! --dport 4000   -i ${LAN} -j REJECT
# iptables -A INPUT -p UDP ! --dport distcc -i ${LAN} -j REJECT

## iptables -A INPUT -p UDP ! --dport bootps -i ${LANB} -j REJECT
## iptables -A INPUT -p UDP ! --dport domain -i ${LANB} -j REJECT
## iptables -A INPUT -p UDP ! --dport distcc -i ${LANB} -j REJECT
## iptables -A INPUT -p UDP ! --dport 4000   -i ${LANB} -j REJECT
# iptables -A INPUT -p UDP ! --dport distcc -i ${LANB} -j REJECT

#(Optional) Allow access to our ssh server from the WAN
# iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
# Next strings added by John -->>
iptables -A INPUT -p TCP --dport 137:139 -i ${WAN} -j ACCEPT
iptables -A INPUT -p UDP --dport 137:139 -i ${WAN} -j ACCEPT
iptables -A INPUT -p TCP --dport 445 -i ${WAN} -j ACCEPT

iptables -A INPUT -p TCP --dport 20:21 -i ${WAN} -j ACCEPT
iptables -A INPUT -p UDP --dport 20:21 -i ${WAN} -j ACCEPT

iptables -A INPUT -p TCP --dport 2049:2049 -i ${WAN} -j ACCEPT
iptables -A INPUT -p UDP --dport 2049:2049 -i ${WAN} -j ACCEPT
# <<----

#Drop TCP / UDP packets to privileged ports
# iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
# iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP

#Finally we add the rules for NAT
## iptables -I FORWARD -i ${LAN} -d 192.168.1.0/255.255.255.0 -j DROP
## iptables -I FORWARD -i ${LANB} -d 192.168.1.0/255.255.255.0 -j DROP 
# iptables -I FORWARD -i ${LAN} -d 192.168.2.0/255.255.255.0 -j DROP
# iptables -A FORWARD -i ${LAN} -s 192.168.1.0/255.255.255.0 -j LOG 
 iptables -A FORWARD -i ${LAN} -s 192.168.1.0/255.255.255.0 -j ACCEPT
 iptables -A FORWARD -i ${LANB} -s 192.168.2.0/255.255.255.0 -j ACCEPT
 iptables -A FORWARD -s 192.168.1.0/255.255.255.0 -d 192.168.2.0/255.255.255.0 -j ACCEPT
 iptables -A FORWARD -s 192.168.2.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -j ACCEPT
 iptables -A FORWARD -i ${LAN} -o ${LANB} -j ACCEPT
 iptables -A FORWARD -i ${LANB} -o ${LAN} -j ACCEPT
# iptables -A FORWARD -i ${LAN} -s 192.168.2.0/255.255.255.0 -j ACCEPT

 iptables -A FORWARD -i ${WAN} -d 192.168.1.0/255.255.255.0 -j ACCEPT
 iptables -A FORWARD -i ${WAN} -d 192.168.2.0/255.255.255.0 -j ACCEPT

 iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
#Tell the kernel that ip forwarding is OK
 echo 1 > /proc/sys/net/ipv4/ip_forward
 for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

#This is so when we boot we don't have to run the rules by hand
/etc/init.d/iptables save
iptables-save > /etc/iptables.up.rules

А бондинг в данном случае

А бондинг в данном случае какую цель преследует? Почему именно 802.3ad а не, к примеру, просто rr, который вполне может дать «прирост скорости»?
preup() вроде как давно не нужен? используем modules="bonding" \ slaves_bond0="eth0 eth1" в conf.d/net, остальное — как опции загружаемого модуля.

Кто чего «сбрасывает», _слегка_ непонятно.

как теперь переименовывать сетевушки? Так же, как и раньше, но не используя зарезервированные слова. Пример можно найти в /etc/udev/rules.d/70-persistent-net.rules

Делал по единственному в то

Делал по единственному в то время примеру. Поэтому и preup() Рекомендуете лучшее решение? Тогда конфик и параметры в студию!
Сбрасывается IP eth0 который получается по dhcp. Сбрасывается при старте компа висящего на bond0. Причём это происходит когда стартует именно винда! В момент когда графика загрузилась перед тем как вывести диалог логина.

В смысле не используя зарезервированные слова? Пример в студию!

>Рекомендуете лучшее

>Рекомендуете лучшее решение?
вроде уже написал. подробности в /usr/src/linux/Documentation/networking/bonding.txt (там ко всему прочему есть и нюансы 802.3, в частности ad_select, умолчательное значение которого скорее всего объясняет «нерасширение» полосы) и в /usr/share/doc/openrc-xxx/net.example.bz2

>Сбрасывается IP eth0 который получается по dhcp. Сбрасывается при старте компа висящего на bond0. Причём это происходит когда стартует именно винда!
таки не понял :D

>В смысле не используя зарезервированные слова? Пример в студию!
обсосали уже на форуме много раз новые predictable names. хотя бы здесь http://www.gentoo.ru/node/26715 , а вообще — поиск.

Есть сервер с Gentoo.

Есть сервер с Gentoo. Включен. Раздаёт тырнет и плюшки через eth1. Комп под виндой выключен.
Включаем комп под виндой. В момент выдачи диалога логина - помирает IP у eth0. Соответственно теперь тырнета нет ни у кого.
Плюс права у /dev/null становятся rw-r--r-- что порождает свои проблемы..

john@fulcrum / $ cat

john@fulcrum / $ cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 23
Permanent HW addr: 6c:f0:49:e7:1a:ac
Slave queue ID: 0

Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 19
Permanent HW addr: 6c:f0:49:e6:f4:59
Slave queue ID: 0

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

судя по всему, прочесть

судя по всему, прочесть bonding.txt и net.example так и не судьба? ну тогда хаутушку читайте хотя бы.

Ну и, разумеется, стоило бы в первую голову выяснить, какой режим bonding будет сответствовать «риалтековскому концу». В Вашем примере я вижу RR, в то время как говорилось, что там 802.3

А вы уверены, что бондинг у

А вы уверены, что бондинг у вас одинакого настроен с обоих концов?

В этой жизни ни в чём нельзя

В этой жизни ни в чём нельзя быть уверенным!
Но родная рилтековская утилита говорит шо teaming работает. Режима почему-то не отображает. Только при начальном конфиге.

C:\Users\john>ipconfig /all

Настройка протокола IP для Windows

   Имя компьютера  . . . . . . . . . : blackbird
   Основной DNS-суффикс  . . . . . . :
   Тип узла. . . . . . . . . . . . . : Гибридный
   IP-маршрутизация включена . . . . : Нет
   WINS-прокси включен . . . . . . . : Нет

Ethernet adapter bond0:

   DNS-суффикс подключения . . . . . :
   Описание. . . . . . . . . . . . . : Realtek Virtual Miniport Driver for Teami
ng (NDIS 6.0)
   Физический адрес. . . . . . . . . : 00-E0-4C-10-0C-6E
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да
   IPv4-адрес. . . . . . . . . . . . : 192.168.2.5(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Аренда получена. . . . . . . . . . : 9 апреля 2013 г. 22:17:35
   Срок аренды истекает. . . . . . . . . . : 10 апреля 2013 г. 22:17:35
   Основной шлюз. . . . . . . . . : 192.168.2.2
   DHCP-сервер. . . . . . . . . . . : 192.168.2.2
   DNS-серверы. . . . . . . . . . . : 192.168.2.2
   NetBios через TCP/IP. . . . . . . . : Включен

Туннельный адаптер isatap.{C9FE8716-3EF5-45E2-8E2A-923F7A74F94F}:

   Состояние среды. . . . . . . . : Среда передачи недоступна.
   DNS-суффикс подключения . . . . . :
   Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP
   Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP включен. . . . . . . . . . . : Нет
   Автонастройка включена. . . . . . : Да

Туннельный адаптер Teredo Tunneling Pseudo-Interface:

   DNS-суффикс подключения . . . . . :
   Описание. . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP включен. . . . . . . . . . . : Нет
   Автонастройка включена. . . . . . : Да
   IPv6-адрес. . . . . . . . . . . . : 2001:0:9d38:6ab8:813:1879:3f57:fdfa(Основ
ной)
   Локальный IPv6-адрес канала . . . : fe80::813:1879:3f57:fdfa%11(Основной)
   Основной шлюз. . . . . . . . . : ::
   NetBios через TCP/IP. . . . . . . . : Отключен

стоит поинтересоваться, что

стоит поинтересоваться, что же именно в терминах linux bonding (со всеми нюансами) реализует «родная рилтековская утилита»

Есть идея как?

Есть идея как?

поискать официальную и прочую

поискать официальную и прочую информацию именно по этой проприетарной утилите — как же еще?

Спасибо Кэп! Но стоит

Спасибо Кэп! Но стоит заметить, что какая разница КАК оно сокнфигурировано на винде! Ведь проблема существует на стороне линукса: почему инициализация одного виртуального интерфеса, висящего на двух физических, приводит к краху третьего физического интерфейса?

Пожалуйста. Как спросили —

Пожалуйста. Как спросили — так и отвечено. Вы сначала правильно настройте свой бондинг а там глядишь и проблемы с «крахом» пропадут. На данный момент у Вас судя по всему нет ни понимания того, что нужно сделать, ни как сделать.

Вот и обращаюсь на форму за

Вот и обращаюсь на форму за конкретным советом. Если бы гарантированно знал, что настроено правильно, то сюда бы и не писал. Смысл форума - общаться с живыми людьми и делиться своим опытом. Читать мануалы все умеют. И их читал. И вот теперь спрашиваю живых людей! Были ли у них схожие ситуации или хотя бы удачная настройка части подсистем. Ещё следует заметить, что невозможно быть везде затычкой, поэтому и пробелы в знаниях.
Конкретно ещё есть особенность: если комп на винде перегрузить в линукс и там выставить тоже бондинг, но IP получит новый, т.к. возьмёт MAC от 2 сетевухи, а не от первой, как было под виндой. В этом случае сеть умирает вообще. Даже после перезагруза под винду. Помогает только физическое отрубание питания от компа. После этого сеть под виндой опять жива.

net-misc/libteam

net-misc/libteam

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Комментарий бы хоть

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

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

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