
Hi, Can anybody give me an idea about how to properly set up a server to be configured for ethernet trunking at boot time? Our file server is a dual Opteron running SuSE 9.0 for AMD64, and has dual gigabit ethernet cards, and I have them both connected to the switch (with trunking enabled for those ports). I am doing this with a kluge, but have not had the time or patience to figure out how to do it better. The commands I use are: ifconfig eth0 down ifconfig eth1 down ifconfig bond0 192.168.0.100 ifenslave bond0 eth0 ifenslave bond0 eth1 The modules.conf file has: alias bond0 bonding alias eth0 bcm5700 alias eth1 bcm5700 In YaST, I configured eth0 and eth1 with dummy ipnumbers, just to make sure that the driver loads and the interfaces exist, that's the reason why they have to be stopped before bringing up bond0. I added "alias bond0 bonding" manually to modules.conf. Is anybody else out there using ethernet trunking (bonding), and how to you set it up? Thanks, John Craig

John Craig wrote:
Hi,
Can anybody give me an idea about how to properly set up a server to be configured for ethernet trunking at boot time? Our file server is a dual Opteron running SuSE 9.0 for AMD64, and has dual gigabit ethernet cards, and I have them both connected to the switch (with trunking enabled for those ports). I am doing this with a kluge, but have not had the time or patience to figure out how to do it better. The commands I use are:
ifconfig eth0 down ifconfig eth1 down ifconfig bond0 192.168.0.100 ifenslave bond0 eth0 ifenslave bond0 eth1
The modules.conf file has:
alias bond0 bonding alias eth0 bcm5700 alias eth1 bcm5700
In YaST, I configured eth0 and eth1 with dummy ipnumbers, just to make sure that the driver loads and the interfaces exist, that's the reason why they have to be stopped before bringing up bond0. I added "alias bond0 bonding" manually to modules.conf.
Is anybody else out there using ethernet trunking (bonding), and how to you set it up?
Thanks,
John Craig
Hi John, for ethernet bonding to work it is necessary to put the same MAC address on both network cards (eth0,eth1) before assigning an IP address to the bond device. It is not required to give an IP address to the slave cards, just load the bcm5700 module, set the same MAC address on the slave cards and configure the bond device: (the system loads the bcm5700 and bonding modules via /etc/modules.conf) /sbin/ifconfig eth1 hw ether ETH0_MAC_ADDRESS /sbin/ifconfig bond0 IP_ADDRESS netmask NET_MASK broadcast BROADCAST /sbin/ifenslave bond0 eth0 eth1 When the bcm5700 module gets loaded it prints the information of each network card (including the MAC addresses) into the file /var/log/messages. - Jose Luis -- JosA~(c) Luis RICARDO-CHAVEZ Tel. +33-5-61-55-68-33 Laboratoire de Physique Quantique Fax +33-5-61-55-60-65 UniversitA~(c) Paul Sabatier 118 route de Narbonne F-31062 Toulouse, France e-mail: ricardo@irsamc.ups-tlse.fr

Thanks for the info. It is interesting that you are configuring eth1 with the MAC address of eth0. I don't do that, and bonding works. Maybe the switch is able to deal with the same IP number with 2 different MAC addresses. We use an Extreme Networks Summit 5i, and I had to configure trunking on the switch to make it work. I got another useful bit of information after checking /var/log/messages. When bonding loads, it says "either miimon or or arp_interval and arp_ip_target module parameters need to be specified, otherwise bonding will not detect link failures" Fortunately, I have not had any link failures yet! Anyway, I was really asking a simpler question. If I want this to come up when the machine boots, instead of putting in several commands at the command prompt? Where is the best place to insert the script to make that happen? I am too used to just using YaST to configure everything, and I am afraid if I hack one of the existing init scripts, it might cause other problems. -- John Craig ricardo@irsamc.ups-tlse.fr wrote:
John Craig wrote:
Hi,
Can anybody give me an idea about how to properly set up a server to be configured for ethernet trunking at boot time? Our file server is a dual Opteron running SuSE 9.0 for AMD64, and has dual gigabit ethernet cards, and I have them both connected to the switch (with trunking enabled for those ports). I am doing this with a kluge, but have not had the time or patience to figure out how to do it better. The commands I use are:
ifconfig eth0 down ifconfig eth1 down ifconfig bond0 192.168.0.100 ifenslave bond0 eth0 ifenslave bond0 eth1
The modules.conf file has:
alias bond0 bonding alias eth0 bcm5700 alias eth1 bcm5700
In YaST, I configured eth0 and eth1 with dummy ipnumbers, just to make sure that the driver loads and the interfaces exist, that's the reason why they have to be stopped before bringing up bond0. I added "alias bond0 bonding" manually to modules.conf.
Is anybody else out there using ethernet trunking (bonding), and how to you set it up?
Thanks,
John Craig
Hi John,
for ethernet bonding to work it is necessary to put the same MAC address on both network cards (eth0,eth1) before assigning an IP address to the bond device. It is not required to give an IP address to the slave cards, just load the bcm5700 module, set the same MAC address on the slave cards and configure the bond device:
(the system loads the bcm5700 and bonding modules via /etc/modules.conf) /sbin/ifconfig eth1 hw ether ETH0_MAC_ADDRESS /sbin/ifconfig bond0 IP_ADDRESS netmask NET_MASK broadcast BROADCAST /sbin/ifenslave bond0 eth0 eth1
When the bcm5700 module gets loaded it prints the information of each network card (including the MAC addresses) into the file /var/log/messages.
- Jose Luis

John Craig wrote:
Thanks for the info. It is interesting that you are configuring eth1 with the MAC address of eth0. I don't do that, and bonding works. Maybe the switch is able to deal with the same IP number with 2 different MAC addresses. We use an Extreme Networks Summit 5i, and I had to configure trunking on the switch to make it work.
I got another useful bit of information after checking /var/log/messages. When bonding loads, it says "either miimon or or arp_interval and arp_ip_target module parameters need to be specified, otherwise bonding will not detect link failures" Fortunately, I have not had any link failures yet!
Anyway, I was really asking a simpler question. If I want this to come up when the machine boots, instead of putting in several commands at the command prompt? Where is the best place to insert the script to make that happen? I am too used to just using YaST to configure everything, and I am afraid if I hack one of the existing init scripts, it might cause other problems.
-- John Craig
ricardo@irsamc.ups-tlse.fr wrote:
John Craig wrote:
Hi,
Can anybody give me an idea about how to properly set up a server to be configured for ethernet trunking at boot time? Our file server is a dual Opteron running SuSE 9.0 for AMD64, and has dual gigabit ethernet cards, and I have them both connected to the switch (with trunking enabled for those ports). I am doing this with a kluge, but have not had the time or patience to figure out how to do it better. The commands I use are:
ifconfig eth0 down ifconfig eth1 down ifconfig bond0 192.168.0.100 ifenslave bond0 eth0 ifenslave bond0 eth1
The modules.conf file has:
alias bond0 bonding alias eth0 bcm5700 alias eth1 bcm5700
In YaST, I configured eth0 and eth1 with dummy ipnumbers, just to make sure that the driver loads and the interfaces exist, that's the reason why they have to be stopped before bringing up bond0. I added "alias bond0 bonding" manually to modules.conf.
Is anybody else out there using ethernet trunking (bonding), and how to you set it up?
Thanks,
John Craig
Hi John,
for ethernet bonding to work it is necessary to put the same MAC address on both network cards (eth0,eth1) before assigning an IP address to the bond device. It is not required to give an IP address to the slave cards, just load the bcm5700 module, set the same MAC address on the slave cards and configure the bond device:
(the system loads the bcm5700 and bonding modules via /etc/modules.conf) /sbin/ifconfig eth1 hw ether ETH0_MAC_ADDRESS /sbin/ifconfig bond0 IP_ADDRESS netmask NET_MASK broadcast BROADCAST /sbin/ifenslave bond0 eth0 eth1
When the bcm5700 module gets loaded it prints the information of each network card (including the MAC addresses) into the file /var/log/messages.
- Jose Luis
-- Check the List-Unsubscribe header to unsubscribe For additional commands, email: suse-amd64-help@suse.com
Try the file /etc/init.d/boot.local, it is used for location-specific stuff. There is also a boot.localnet which might be more appropriate, maybe someone else will clarify .... (I use boot.local for that type of stuff :-))

William A. Mahaffey III wrote:
John Craig wrote:
Thanks for the info. It is interesting that you are configuring eth1 with the MAC address of eth0. I don't do that, and bonding works. Maybe the switch is able to deal with the same IP number with 2 different MAC addresses. We use an Extreme Networks Summit 5i, and I had to configure trunking on the switch to make it work.
I got another useful bit of information after checking /var/log/messages. When bonding loads, it says "either miimon or or arp_interval and arp_ip_target module parameters need to be specified, otherwise bonding will not detect link failures" Fortunately, I have not had any link failures yet!
Anyway, I was really asking a simpler question. If I want this to come up when the machine boots, instead of putting in several commands at the command prompt? Where is the best place to insert the script to make that happen? I am too used to just using YaST to configure everything, and I am afraid if I hack one of the existing init scripts, it might cause other problems.
-- John Craig
ricardo@irsamc.ups-tlse.fr wrote:
John Craig wrote:
Hi,
Can anybody give me an idea about how to properly set up a server to be configured for ethernet trunking at boot time? Our file server is a dual Opteron running SuSE 9.0 for AMD64, and has dual gigabit ethernet cards, and I have them both connected to the switch (with trunking enabled for those ports). I am doing this with a kluge, but have not had the time or patience to figure out how to do it better. The commands I use are:
ifconfig eth0 down ifconfig eth1 down ifconfig bond0 192.168.0.100 ifenslave bond0 eth0 ifenslave bond0 eth1
The modules.conf file has:
alias bond0 bonding alias eth0 bcm5700 alias eth1 bcm5700
In YaST, I configured eth0 and eth1 with dummy ipnumbers, just to make sure that the driver loads and the interfaces exist, that's the reason why they have to be stopped before bringing up bond0. I added "alias bond0 bonding" manually to modules.conf.
Is anybody else out there using ethernet trunking (bonding), and how to you set it up?
Thanks,
John Craig
Hi John,
for ethernet bonding to work it is necessary to put the same MAC address on both network cards (eth0,eth1) before assigning an IP address to the bond device. It is not required to give an IP address to the slave cards, just load the bcm5700 module, set the same MAC address on the slave cards and configure the bond device:
(the system loads the bcm5700 and bonding modules via /etc/modules.conf) /sbin/ifconfig eth1 hw ether ETH0_MAC_ADDRESS /sbin/ifconfig bond0 IP_ADDRESS netmask NET_MASK broadcast BROADCAST /sbin/ifenslave bond0 eth0 eth1
When the bcm5700 module gets loaded it prints the information of each network card (including the MAC addresses) into the file /var/log/messages.
- Jose Luis
-- Check the List-Unsubscribe header to unsubscribe For additional commands, email: suse-amd64-help@suse.com
Try the file /etc/init.d/boot.local, it is used for location-specific stuff. There is also a boot.localnet which might be more appropriate, maybe someone else will clarify .... (I use boot.local for that type of stuff :-))
Hello, I've read that ethernet bonding takes place at a low (layer 2) TCP level (before IP) so to work it needs the same MAC address on the slave cards. According to the Linux kernel documentation the bonding driver sets the MAC address on the slave interfaces but that does not work on my system so I have to set it manually. The file Documentation/networking/bonding.txt contains some info about the module options and on the supported network switches. - Jose Luis -- José Luis RICARDO-CHAVEZ Tel. +33-5-61-55-68-33 Laboratoire de Physique Quantique Fax +33-5-61-55-60-65 Université Paul Sabatier 118 route de Narbonne F-31062 Toulouse, France e-mail: ricardo@irsamc.ups-tlse.fr

Jose Luis, You are right. When I checked ifconfig it shows the same MAC address for both cards. Apparently it does this automatically when you ifenslave the second adapter.
Hello,
I've read that ethernet bonding takes place at a low (layer 2) TCP level (before IP) so to work it needs the same MAC address on the slave cards. According to the Linux kernel documentation the bonding driver sets the MAC address on the slave interfaces but that does not work on my system so I have to set it manually. The file Documentation/networking/bonding.txt contains some info about the module options and on the supported network switches.
- Jose Luis
participants (3)
-
John Craig
-
JOSE LUIS RICARDO-CHAVEZ
-
William A. Mahaffey III