Philipp's Computing Blog

Success is about speed and efficiency

Intel PRO/1000 PT Dual-Port-Server-Adapter (PCIe x4)

Geizhals.at/de | vendor product site chipset: Intel 82571GB (supported by e1000e driver)

Instead of this one I would buy an Intel ET Server, 2x 1000Base-T, PCIe x4 for ~130 EUR including SR-IOV support. I have another blog post for that card: Intel Gigabit ET Dual Port Server Adapter.

Slot brackets

  • Full Profile: c93606-002
  • Low Profile: ?

Documentation

Hardware Information and Status

lspci reveals:

04:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
04:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)

sudo mii-tool -- doesn't work well with the card but it reveals the current speed and duplex settings:

SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
eth0: negotiated 1000baseT-FD flow-control, link ok
SIOCGMIIREG on eth1 failed: Input/output error
SIOCGMIIREG on eth1 failed: Input/output error
eth1: 100 Mbit, full duplex, link ok

ethtool output for both ports on Arch Linux

Set a different MAC address

Also called MAC spoofing

# Bring down the interface and enter a new MAC address
sudo ifconfig eth1 down hw ether 00:14:11:12:34:15
# Bring up the interface
sudo ifconfig eth1 up

To get a new IP from a DHCP server afterwards:

sudo dhclient eth1

Note: On my Intel 82571EB NIC I cannot change my MAC to a MAC similar to the devices default. (error message: 00:15:17:cd:c5:9g: invalid ether address.)

Or you may put the information in your /etc/network/interfaces configuration file:

iface eth0 inet dhcp
    hwaddress ether 00:a0:WH:AT:EV:ER

WH:AT:EV:ER must be hex, off course! [0-9A-F]

Jumbo Frames

https://wiki.archlinux.org/index.php/Jumbo_Frames

ip link set eth2 mtu 4000
ip link show | grep mtu

To test, if your jumbo packages get through, you can use the ping command ping -D -s 3800 OTHER_MACHINE. For more see How to test if 9000 MTU/Jumbo Frames are working.

Bonding (bind two physical interfaces together to see only one)

kernel documentation

according to the README information is found in the Kernel documentation: /Documentation/networking/bonding.txt

high-availability of several VLANs with just two cables via bonding

bonding
source: http://ubuntuforums.org/showthread.php?t=1177042

auto bond0 #Create the interface
iface bond0 inet manual #No IP will be assigned
    post-up ifenslave bond0 eth0 eth1 #on start Asociate eth0 and eth1
    post-up vconfig add bond0 216 #on start, create vlan 216
    post-up vconfig add bond0 214 #on start create vlan 214
    pre-down vconfig rem bond0.214 #on stop, delete valn 214
    pre-down vconfig rem bond0.216 #on stop, delete vlan 216
    pre-down ifenslave -d bond0 eth0 eth1 #on stop, deasociate eth0 and eth1

auto bond0.216
iface bond0.216 inet static
    address 10.216.47.23
    netmask 255.255.255.0
    broadcast 10.216.47.255
    gateway 10.216.47.6
    auto bond0.214
    iface bond0.214 inet static
    address 10.216.45.34
    netmask 255.255.255.0
    broadcast 10.216.45.255

In /etc/modprobe.d/aliases I configured an Active-Passive policy for the bonding with the following lines:

# Alias for bonding
alias bond0 bonding
options bonding mode=1 miimon=100

Tuning the network speed

original post on rootninja.com (post on Archive.org)

ethtool -i eth1

driver: e1000e
version: 1.0.2-k2
firmware-version: 5.11-2
bus-info: 0000:04:00.1

ethtool -g eth1

Ring parameters for eth1:
Pre-set maximums:
RX:     4096
RX Mini:    0
RX Jumbo:   0
TX:     4096
Current hardware settings:
RX:     256
RX Mini:    0
RX Jumbo:   0
TX:     256

now changing the rx to max:

sudo ethtool -G eth1 rx 4096

It's done: ethtool -g eth1

Ring parameters for eth1:
Pre-set maximums:
RX:     4096
RX Mini:    0
RX Jumbo:   0
TX:     4096
Current hardware settings:
RX:     4096
RX Mini:    0
RX Jumbo:   0
TX:     256

Wake on LAN

Wake-on capabilities as reported by ethtool:

  • capabilities of port A: pumbg
  • capabilities of port B: d

See my other post Enabling Wake on Lan on an Arch Linux Computer

Tips and Tricks

  • restart autonegociation using sudo ethtool -r eth1