|
Proper Switch Configuration for Trouble-Free
Ethernet Operation of VOS Modules |
Noah Davids
Stratus Support Engineer
Stratus Technologies
Proper Switch Configuration for Trouble-Free
Ethernet Operation of VOS Modules
For the proper functioning of your VOS Ethernet adapters and optimal
performance of your TCP/IP communication, it is not enough that the Stratus
configuration be correct. Your Ethernet switch configuration must also be
correct. An incorrectly configured switch can result in degraded or
unacceptable TCP performance or even complete communication failure. To make
matters worse, the problem might not be noticed until there is a failover due
to the failure of the active adapter. This article will discuss the proper
configuration of the switch ports connected to Stratus® VOS adapters.
The number of models and brands of switches makes it impossible to discuss
specifics of every model. Instead, I will describe the configuration for a
Cisco® Catalyst® 6500 Series Switch. It is quite
possible that your switch uses the same features and commands; if not your
network administrator will have to ask your switch vendor what the equivalent
commands are.
The switch ports that connect to adapters that are dlmux or sdlmux partners
must be configured the same. Many network administrators do not realize
that there are two adapters with the same IP address. They configure the
switch port for the active adapter, test with a ping and leave it at that. The
standby adapter is left with all the default settings. The result is that
things work fine until there is a failover, then nothing works.
I strongly recommend that you go over the switch settings with your network
administrator to confirm that they are set correctly. I also recommend that
you schedule a monthly failover test. I have found that settings on switch
ports have a mysterious way of changing. The test can be done simply by
starting a ping from another host to the Stratus, pulling the cable out of the
active adapter and confirming that the pings are still receiving a response.
You will probably loose one ping, you may loose two, but anything more than
four presents a problem that should be investigated. It is also possible for
all pings to fail if the switch port connected to the standby adapter has
become miss-configured, so plan the time of the test when a communication
outage will not present a problem, or at least will present a problem you can
live with.
You can determine the active adapter using the dlmux_admin command. For
example:
dlmux_admin #sdlmuxB.m15.12.2 sdlmux_status
Group Name: #sdlmuxB.m15.12.2
Device Name: %phx_vos#enet.m15.12.2
Adapter State: ACTIVE UP
Partner: %phx_vos#enet.m15.13.2
Partner State: UP
Shows that #enet.m15.12.2 is the active adapter.
There are six critical settings: VLAN, speed, duplex, portfast, security
and inline power. Parameters for trunking, channel and dot1q tunneling should
also be set.
VLAN:
VLANs are a mechanism that allows a switch to carry traffic for multiple
LAN segments and to keep the traffic for those segments separated. Both
adapters of a dlmux/sdlmux partnership must be on the same VLAN.
To check the VLAN numbers, use the “show port status” command.
Console> show port status 2/1
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ------------
2/1 connected 52 half 100 100BaseTX
Console> show port status 4/1
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ------------
4/1 connected 52 half 100 100BaseTX
Speed:
Ports on blades supported by the Cisco Catalyst 6500 Series can be set to
10/100 or auto. Some blades also support a speed of 1000. Auto allows the
speed to be negotiated to any supported speed.
The K104, K450 and U713 do not support negotiation. If a switch port is
connected to one of these adapters and the speed is set to auto, the switch
will attempt to sense the speed setting of the adapter. If the switch port is
set to a specific speed, then that speed is used, regardless of the speed the
Stratus adapter is using. The K104 and K450 only operate at 10 mbps. As long
as the switch is set to 10 or auto, the link will work as expected. The K460
does support negotiation. If a speed is listed as a parameter, only that speed
is negotiated. If no speed is specified, a default of 10 mbps is used. As long
as the switch port is configured to auto or the same speed as the K460, the
link will come up at the desired speed.
The U713 will operate at 10 or 100 mbps, and it will also try to sense the
speed of the switch port. When two devices both try to sense at which speed
the other is operating, they will almost always end up using 10 mbps. This
will happen even if you have a “-speed 100” as a parameter in the U713
configuration. This is a known hardware bug that cannot be fixed (rns-187). As
a result a switch port connected to a U713 should always have its speed set to
100, if that is the desired speed.
However, setting the switch port speed to
100 mbps on Cisco 6500 blades WS-X6548-RJ-45 blade and WS-X6148-RJ-45 may result
in a failure to link between the switch port and the U713. For the WS-X6548-RJ-45
blade disabling the auto-mdix feature should correct the problem (but make sure
you are using a straight through cable). The following commands can be used to
disable auto-mdix and display the current state
set port auto-mdix mod/port disable
where mod/port is the module and port that the U713 is connected to.
Example:
Console> (enable) set port auto-mdix 5/40 disable
Auto-mdix is disabled on port 5/40.
To show the state use
show port auto-mdix mod/port
Example:
Console> (enable) show port auto-mdix 5/47
Port auto-mdix
----- ---------
5/47 disable
For the WS-X6148-RJ-45 if you are running a release prior to 8.5(1) you must set the speed for 10 or auto to get a reliable link. Setting the speed at 100 will sometimes get you a link of 100 mbps but most of the time result in no link. If you are runing 8.5(1) or later you must set inlinepower to off (see inlinepower below).
In release 15.0 you cannot set the speed on any of the adapters on a Stratus ftServer® V Series
system. This is documented as bug gbe-76 for the U577 and gbe-88 for the U575. All of
the V Series adapters support negotiation. If, for some reason, you want to
run at a speed lower than the maximum possible between switch and adapter, you
must set the speed on the switch.
You can see what speed the switch ports are connected at with the show port
status command.
Console> show port status 2/1
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ------------
2/1 connected 52 half 100 100BaseTX
Console> show port status 4/1
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ------------
4/1 connected 52 half 100 100BaseTX
The default setting is auto. This should be OK for all adapters except the
U713 (assuming you want to run at 100 mbps). There is some Cisco documentation
that says that you should always set an explicit speed for ports connected to
servers. The documentation is not consistent, so I can’t say that this is a
hard and fast rule. Still, always setting the speed instead of relying on auto
will not hurt – provided the switch port and the adapter are consistent. To
set the speed use the “set port speed” command
Note that gbe-76 is fixed starting with release 15.1 and gbe-88 is fixed starting in release 15.1.1aa.
Duplex:
Ports on blades supported by the Cisco Catalyst 6500 Series can be set to
half, full, or auto. Auto allows the duplex mode to be negotiated to any
supported mode. If the Stratus adapter does not support negotiation (K104,
K450, U713), and the switch port is set to auto, it will default to half
duplex mode. This is OK for the K104 and K450, but you can configure the U713
into full duplex mode. If you do set the U713 into full duplex mode, the
switch port must also be set to full duplex. The K460 will default to half if
you do not explicitly set the mode with the “-duplex” parameter.
As I said above, the K460 always tries to negotiate its settings, but if
the switch does not negotiate a duplex mode, the K460 will still use the mode
set in the parameters. Therefore, the switch port should be set to auto or the
same mode as the K460. If the modes are different between the K460 and the
switch port, the link will come up, but will have a duplex mismatch.
All the ftServer V Series adapters support full duplex, but again, because
of gbe-76 and gbe-88, you
maynot be able to explicitly set the duplex mode. This means that if you set the
switch port to full duplex, the Stratus adapter will not see the switch
negotiate a duplex mode and will set itself to half duplex. If you leave the
switch port set to auto, both the Stratus adapter and the switch port will
negotiate to full duplex. If you want to run at half duplex, you must set the
switch port to half duplex or make sure that you are running a
release that has these bug fixes.
All fiber gigabit adapters run in full duplex, and all copper adapters
running at gigabit speeds run in full duplex mode by default. This mode cannot
be changed.
You can see what duplex the switch ports are connected at with the show
port status command.
Console> show port status 2/1
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ------------
2/1 connected 52 half 100 100BaseTX
A duplex mismatch will not prevent the link from working and may not even
be noticeable at low frame rates. However, as the frame rate increases, there
will be an increasing number of errors on the link until the point where
throughput becomes a significant problem. The full duplex side of the mismatch
will see Align-Err and FCS-Err errors. The half duplex side of the mismatch
will have Late-Coll and Excess-Coll errors. You can see errors on the switch
with the show port command.
Console> show port 2/1
Port Name Status Vlan Duplex Speed Type
----- -------------------- ---------- ---------- ------ ----- ------------
2/1 notconnect 1 full 1000 No Connector
Port Security Violation Shutdown-Time Age-Time Max-Addr Trap IfIndex
----- -------- --------- ------------- -------- -------- -------- -------
2/1 disabled shutdown 0 0 1 disabled 3
Port Num-Addr Secure-Src-Addr Age-Left Last-Src-Addr Shutdown/Time-Left
----- -------- ----------------- -------- ----------------- ------------------
2/1 0 - - - - -
Port Broadcast-Limit Multicast Unicast Total-Drop Action
-------- --------------- --------- ------- -------------------- ------------
2/1 - - - 0 drop-packets
Port Send FlowControl Receive FlowControl RxPause TxPause
admin oper admin oper
----- -------- -------- --------- --------- ---------- ----------
2/1 desired off off off 0 0
Port Status Channel Admin Ch
Mode Group Id
----- ---------- -------------------- ----- -----
2/1 notconnect auto silent 41 0
Port Status ErrDisable Reason Port ErrDisableTimeout Action on Timeout
---- ---------- ------------------- ---------------------- -----------------
2/1 notconnect - Enable No Change
Port Align-Err FCS-Err Xmit-Err Rcv-Err UnderSize
----- ---------- ---------- ---------- ---------- ---------
2/1 0 0 0 0 0
Port Single-Col Multi-Coll Late-Coll Excess-Col Carri-Sen Runts Giants
----- ---------- ---------- ---------- ---------- --------- --------- ---------
2/1 0 0 0 0 0 0 0
Port Last-Time-Cleared
----- --------------------------
2/1 Tue Mar 5 2002, 11:43:01
On VOS, the “netstat –interface” command (for STCP interfaces) or the
“netstat –detail command (for TCP_OS interfaces) will show you the error
counters. The full duplex side will see “improper framing” or “bad CRC”
errors. The half duplex side will see “late collisions” and “excessive retry”
errors.
netstat -interface #sdlmux.14.2
MAC Type : CSMA/CD
MAC Address: 00:00:a8:c1:86:a1
Device Name: #sdlmux.14.2
Line Speed : 10 mb/s
MAC Statistics:
Received frames : 376944
Received multicast and broadcast frames : 376944
Received octets : 61736486
Transmitted frames : 1
Transmitted octets : 42
LAN Chipset re-initialized : 0
SQE error : 0
Transmit ring full : 0
Transmit frame discarded, late collisions: 8
Transmit frame was deferred : 8
Transmit frame after a single retry : 0
Transmit frame after multiple retry : 0
Transmit frame discarded, excessive retry: 8
Receive frame discarded, lack of buffers : 0
Receive frame discarded, improper framing: 0
Receive frame discarded, an overflow : 0
Receive frame discarded, bad CRC : 0
Receive frame discarded, bad address : 0
Receive frame discarded, congestion : 0
MAC Summary:
Transmitted frames : 1
Transmitted octets : 42
Retransmitted frames : 8
Received frames : 753888
Received octets : 61736486
Total of lost frames : 0
The default setting on a Cisco Catalyst 6500 Series is auto. This should be
OK for all adapters except the U713 (assuming you want to run in full duplex).
There is some Cisco documentation that says that you should always set an
explicit duplex for ports connected to servers. The documentation is not
consistent so I can’t say that this is a hard and fast rule. Still, as long as
the switch port is not connecting to a V Series adapter setting, the duplex,
instead of relying on auto, will not hurt - provided the switch port and the
adapter are consistent. To set the duplex mode, use the “set port duplex”
command.
Portfast:
The portfast setting allows a port to skip the listening and learning
stages of the Spanning Tree algorithm. This will significantly speed up the
transmission of frames after a failover.
To check the portfast setting use the “show port spantree” command.
Console> (enable) show port spantree 2/1
Port(s) Vlan Port-State Cost Prio Portfast Channel_id
------------------------ ---- ------------- --------- ---- -------- ----------
2/1 1 connected 2684354 32 enabled 0
By default, portfast is disabled, so it must be enabled. To enable portfast
you can use either the “set spantree portfast” command or the “set port host”
command.
Security:
The security setting allows you to specify what addresses can be attached
to the port and what the effects of an address violation will be. To check on
the security setting, use the “show port security” command.
You either want security disabled, or you want to specify the MAC addresses
of both the primary and secondary adapters. Remember, the addresses differ
only by one bit in the fourth octet, so you have to look closely to
distinguish the two.
Console> (enable) show port security 2/1
Port Security Violation Shutdown-Time Age-Time Maximum-Addrs Trap IfIndex
----- -------- --------- ------------- -------- ------------- -------- -------
2/1 enabled shutdown 120 1440 25 disabled 3
Port Secure-Src-Addrs Age-Left Last-Src-Addr Shutdown Shutdown-Time-Left
---- ----------------- -------- ----------------- -------- ------------------
2/1 00-00-a8-40-3b-6e 4 00-11-22-33-44-55 No -
00-00-a8-60-3b-6e 100
Security by default is off. With any luck, you will not have to request any
changes from your network administrator.
Inline Power:
Inline power is a mechanism that allows the switch port to deliver low
voltage power to the device connected to it. It is used primarily for cameras
and phones, but the number of devices that can make use of it is expanding.
The delivery of power is negotiated when the device is connected.
Theoretically, a device that does not use inline power should not be affected
in any way. However, there have been a number of very difficult link
establishment problems on the K460 and U713 that were resolved when the inline
power setting was changed from auto to off. As a result, Stratus recommends
that the inline power setting always be set to off.
The “show port inlinepower” command can be used to show the current status.
You want the Admin and Oper values to be off.
Console> show port inlinepower 2/1
Default Inline Power allocation per port: 9.500 Watts (0.22 Amps @42V)
Total inline power drawn by module 3: 0 Watt
Port InlinePowered PowerAllocated
Admin Oper Detected mWatt mA @42V
----- ----- ------ -------- ----- --------
2/1 off off no 00.00 0.000
If the switch port does not support inlinepower, you will get a “feature
not supported” error.
The default setting is auto. This will have to be changed on ports that
support this feature. To change the setting, use the “set port inlinepower”
command.
Trunking:
Trunking is negotiated when a link is established. Since Stratus adapters
will not be part of a trunk, the negotiation will fail. There is no reason to
delay link establishment while the switch port tries to negotiate trunking so
it should be turned off.
To check the state of trunking use the “show port trunk” command. The state
should be set to not-trunking.
Console> (enable) show port trunk 2/1
* - indicates vtp domain mismatch
Port Mode Encapsulation Status Native vlan
-------- ----------- ------------- ------------ -----------
2/1 off dot1q not-trunking 1
By default, trunking is on so it must be turned off. To turn trunking, off
you can use either the “set trunk” command or the “set port host” command.
Channel:
The channel setting controls the protocol that is used to negotiate an
EtherChannel group when the link comes up. Again, since Stratus VOS adapters
will not be part of an EtherChannel group, the negotiation will fail. There is
no reason to delay link establishment while the switch port tries to negotiate
an EtherChannel so it should be turned off.
You can show the channel state with the “show port channel” command. The
mode should be off.
Console> show port channel 2/1
Port Status Channel Admin Ch
Mode Group Id
----- ---------- --------- ----- -----
2/1 connected off 195 769
By default, channel is set to auto so it must be
turned off. To turn off channel, you can use either the “set port channel”
command or the “set port host” command.
Dot1q tunneling:
802.1q is another way of constructing VLANs. It is probably possible to make this feature work, however, Cisco
recommends that it be disabled on ports connected to end stations. I’m not going to contradict Cisco, so for ports
connected to Stratus adapters this feature should be disabled.
You can see the current status with the “show port dot1qtunnel” command.
Console> (enable) show port dot1qtunnel 2/1
Port Dot1q tunnel mode
----- -----------------
2/1 disabled
The default for this feature is disabled. If for some reason it is enabled, it can be disabled with the “set port
dot1qtunel” command or the “set port host” command.
Summary of commands and status:
Command |
Expected Value |
show port status |
VLAN, speed, duplex
For ports connected to a K104 or K450, speed can be auto or 10
For ports connected to a K460, speed can be auto or same speed as K460
For ports connected to U713, speed should be desired speed
For ports connected to a V Series adapter, speed should be auto or desired speed
For ports connected to a K104 or K450, duplex mode can be auto or half. Do not use full, it is not supported by the adapters
For ports connected to a K460, duplex mode can be auto or same mode as the K460
For ports connected to U713, duplex mode should be same mode as U713
For ports connected to V Series adapter, duplex mode should be auto or half. Do not set full, setting auto will result in full duplex being set correctly |
show port spantree |
Portfast should be enabled |
show port security |
Enabled with both active and standby addresses
or disabled |
show port inlinepower |
Off or “feature not supported” |
show port trunk |
Not-trunking |
show port channel |
Off |
show port dot1qtunnel |
Disabled |
The question of multiple switches:
The following discussion applies only when using dlmux devices (K104, K450 or K460) or when using sdlmux devices (U713, U714, U570, U571, U574, U575, U576, U577) on releases that do not have the sdlmux-129 fix. sdlmux-129 is fixed in 15.0.1ag and all 15.1 and 15.2 releases. There should be no problems using sdlmux devices in multiple switch topologies in releases containing the sdlmux-129 fix.
Finally, there is the question of whether it is better to have both partners plugged into the same switch or whether each partner should be plugged into a different switch. The advantage of multiple switches is increased reliability. If a switch fails, the other switch can take over.
There are however some disadvantages in using multiple switches, depending upon the topology of the network and whether you are using adapters that use dlmux (K104, K450, K460) or sdlmux (U713, U714, U570, U571, U574, U575, U576, U577).
Figure 1 – simple topology
Before continuing, let’s assume that the currently active adapter is on the right side of the module and is connected to switch 2. The standby then is on the left side and connected to switch 1. Also assume that the adapters are using sdlmux. If you looked at the address mappings on switch 1 it would show:
Switch 1 address map
Port |
"Address" |
2 |
Host A |
6 |
Host B |
9 |
VOS module standby |
10 |
VOS module active Host C,D |
Switch 2 address map
Port |
"Address" |
1 |
VOS module standby Host A, B |
2 |
VOS module active |
4 |
Host C |
9 |
Host D |
Now assume that the active adapter fails. The newly active adapter sends out a test message, addressed to the standby adapter, and the switch tables now show:
Switch 1 address map
Port |
"Address" |
2 |
Host A |
6 |
Host B |
9 |
VOS module standby VOS module active |
10 |
Host C,D |
Switch 2 address map
Port |
"Address" |
1 |
VOS module standby VOS module active Host A, B |
2 |
empty |
4 |
Host C |
9 |
Host D |
The active MAC addresses moves to port 9 of switch 1. Note that because the test message that is sent out is addressed to the standby address, switch 2 never sees it. When host C or D sends a frame to the VOS module, switch 2 must flood the frame out all ports because it no longer has a mapping for “VOS module active”. Once VOS replies, the address is mapped to port 1.
Figure 2 shows a more complex topology with the two switches connected to a backbone switch, which also has connections to other hosts.
Figure 2 – more complex topology
The situation is different in figure 2. In this scenario, the link between switch 1 port 10 and switch 2 port 1 has been disabled by spanning tree to prevent loops. Before the adapter failure, the address mapping looks like this:
Switch 1 address map
Port |
"Address" |
1 |
VOS module active Host C, D, E, F |
2 |
Host A |
6 |
Host B |
9 |
VOS module standby |
Switch 2 address map
Port |
"Address" |
2 |
VOS module active |
4 |
Host C |
9 |
Host D |
10 |
VOS module standby Host A, B, E, F |
Switch 3 address map
Port |
"Address" |
1 |
VOS module standby Host A, B |
4 |
Host E |
6 |
Host F |
10 |
VOS module active Host C, D |
After the failure of the active adapter and the transmission of the test packet out of the newly active adapter, we have:
Switch 1 address map
Port |
"Address" |
1 |
Host C, D, E, F |
2 |
Host A |
6 |
Host B |
9 |
VOS module standby VOS module active |
Switch 2 address map
Port |
"Address" |
2 |
empty |
4 |
Host C |
9 |
Host D |
10 |
VOS module standby Host A, B, E, F |
Switch 3 address map
Port |
"Address" |
1 |
VOS module standby Host A, B |
4 |
Host E |
6 |
Host F |
10 |
VOS module active Host C, D |
Note that the address map of switch 3 has not changed. This is because the test message that was sent by the newly active adapter was never broadcast to the other switches. If either of hosts, E or F, sends a frame to the VOS module, it will be sent out of port 10 of switch 3. Switch 2 will flood it to all its other ports, but it will not get to switch 1 (remember that switch 2 port 1 has been disabled to prevent loops). If hosts C or D send a frame to the VOS module, switch 2 will flood it out all ports, including port 10, but switch 3 will inspect its address cache. Since the destination address is on the same port, it will just drop the frame. As a result, only hosts on switch 1 can communicate with the VOS module, at least until the switch 3 ages out the address entry for “VOS module active” on port 10.
If either one of the other links between the switches had been disabled by spanning tree instead of the link between switch 1 and 2, then things would have worked correctly. Of course, unless the network administrator explicitly set up link costs to control which link was disabled, it is pretty much random and the more complex the topology, the more chances that at least some hosts will lose connectivity to the module after a failover, at least until the addresses have aged out.
If the adapters use dlmux, there is a slightly different story. The message that is sent after a failover for dlmux adapters is addressed to itself, that is, both the source and destination addresses are the MAC address of the active adapter. For the figure 1 topology, this difference in message destination doesn’t matter. For the figure 2 topology, it *may* matter, depending on how the switch works. If the switch looks up the outgoing port before updating its address table, the switch will forward the frame to the other switches, and all switches will update their address tables with the new address configuration. If however, the switch updates its address table before looking up the outgoing port, it will not forward the frame and none of the other switches will update their tables. Frankly, I am not sure how the Cisco Catalyst 6500 Series does it.
My recommendation is to connect both adapters to the same switch unless you have the topology shown in figure 1.
Revision History |
  | Originally published in Vol 6 (Dec 2004) of the Stratus eCustomer/ePartner Newsletter |
  | Updated 05-08-30 to include information regarding link issues between the U713 and certain Cisco 6500 blades |
  | Updated 05-11-02 to include information about gbe-88 and what releases contain the fixes to gbe-76 and gbe-88 |
  | Updated 05-11-07 to include releases containing fix for sdlmux-129 | |
Specifications and descriptions are summary in
nature and subject to change without notice
Stratus and ftServer are registered trademarks
of Stratus Technologies Bermuda Ltd.
Catalyst and Cisco are
registered trademarks or trademarks of Cisco Systems, Inc. and/or its
affiliates in the U.S. and certain other
countries. All other trademarks and registered trademarks are
property of their respective holders.