👍 What we like
- ✓10 GbE link between two machines without an SFP+ switch
- ✓i40e driver already included in the Linux kernel
- ✓Reversible, verifiable configuration with netplan try
- ✓The TL-SG108-M2 remains useful for the 2.5 GbE LAN
👎 What to watch
- ✕The TL-SG108-M2 does not support 10 GbE and cannot connect to the X710-DA2
- ✕A direct link only connects two machines; beyond that you need a switch with SFP+ ports
- ✕Some X710 cards reject unqualified DAC cables or modules
- ✕Each machine needs a free PCIe x8 slot
🏆 Our picks
Affiliate links · same price for youSee all our recommended gear in the shop.
📑 Contents ▾
- 01 Prerequisites
- 02 Step-by-step installation
- · Step 1: Install the card and check that it is detected
- · Step 2: Check the i40e driver (nothing to install)
- · Step 3: Connect the DAC cable between the two cards
- · Step 4: Configure the 10 GbE interface with Netplan
- · Step 5: Test the link and measure throughput with iperf3
- · Step 6: Keep the TL-SG108-M2 for the 2.5 GbE LAN
- 09 Verification checks
- 10 Security and best practices
- 11 Troubleshooting common errors
- 12 FAQ
- · Can the Intel X710-DA2 be connected to the TP-Link TL-SG108-M2?
- · Do I need to install a proprietary Intel driver?
- · Can an SFP+ to RJ45 module connect the X710 to the 2.5 GbE switch?
- · Are jumbo frames required?
- 17 Read also
- 18 Host this yourself
Moving a homelab to 10 GbE is entirely possible in 2026, but not with just any hardware. One point needs clearing up first. The TP-Link TL-SG108-M2 is an unmanaged switch. It has 8 RJ45 ports running at 100 Mb/s, 1 Gb/s and 2.5 Gb/s, with no SFP+ port, no 10 GbE link and no web interface. The Intel X710-DA2 is a PCIe 3.0 x8 card that only has two 10 Gb/s SFP+ cages. These two products cannot build a 10 GbE network together: the card does not plug into this switch.
This guide follows the simplest and most reliable approach for a homelab: a direct point-to-point 10 GbE link. Two machines, each with an X710-DA2, are connected by an SFP+ DAC cable and use a dedicated subnet, for example between a hypervisor and a NAS. The TL-SG108-M2 keeps its role as a 2.5 GbE switch for the rest of the local network. If you later want to connect more than two machines at 10 GbE, you will need a switch with SFP+ ports; the Linux configuration described here stays the same.
Prerequisites
- Two machines running Ubuntu 24.04 LTS (or a recent distribution that uses Netplan), each with a free PCIe slot, ideally wired as x8. The X710-DA2 is a low-profile PCIe 3.0 x8 card.
- Two Intel X710-DA2 cards (one per machine).
- One SFP+ DAC cable (twinax). No cable comes with the products mentioned. Intel states that passive or active “limiting” DACs compliant with SFF-8431 v4.1 and SFF-8472 v10.4 should be compatible. However, some 700 Series cards only accept qualified modules, so check the compatibility list for your card (especially if it is an OEM Dell, HPE, etc. card).
- Console or SSH access from the local network on each machine, with an account that has
sudorights. - For the rest of the LAN: the TL-SG108-M2 switch, used only for the 1 or 2.5 GbE RJ45 ports.
Step-by-step installation
Step 1: Install the card and check that it is detected
Shut down the machine, unplug it, then install the X710-DA2 in an x8 (or wider) PCIe slot. After booting, check that the system sees the card and which PCIe link width it negotiated:
lspci -nn | grep -i ethernet
# Find the "Ethernet Controller X710 for 10GbE SFP+" line and its address, e.g. 01:00.0
sudo lspci -vv -s 01:00.0 | grep -E 'LnkCap|LnkSta'
Check: the LnkSta line should show the same width as LnkCap (Width x8). If it shows x4 or x1, the card is in a slot that limits its throughput: move it to another slot.
Step 2: Check the i40e driver (nothing to install)
The X710 uses the i40e driver, which is part of the Linux kernel and ships with Ubuntu 24.04. There is no proprietary .deb package to install. Check that the module is loaded and which interfaces it created:
lsmod | grep i40e
ip -br link
sudo apt update && sudo apt install -y ethtool
sudo ethtool -i enp1s0f0 # replace with the name shown by "ip -br link"
Check: ethtool -i should show driver: i40e along with the card’s firmware versions. Interface names (enp1s0f0, enp1s0f1…) depend on the machine, so note yours. If you plan to update the firmware (NVM), only use Intel’s official tool or the card vendor’s tool, following the documentation for your model.
Step 3: Connect the DAC cable between the two cards
Connect the SFP+ DAC between one port of the X710 in machine A and one port of the X710 in machine B. Do not try to connect the card to the TL-SG108-M2: it has no SFP+ cage. Then check that the link comes up:
sudo ip link set enp1s0f0 up
sudo ethtool enp1s0f0 | grep -E 'Speed|Duplex|Link detected'
sudo dmesg | grep -i i40e | tail -n 20
Check: you should see Speed: 10000Mb/s, Duplex: Full and Link detected: yes. If dmesg reports “unqualified module” or “unsupported SFP+ module type”, the card is rejecting the cable: see the Troubleshooting section.
Step 4: Configure the 10 GbE interface with Netplan
On each machine, create a separate Netplan file for the 10 GbE link. Leave the existing file that configures the LAN interface alone (often 50-cloud-init.yaml or 01-netcfg.yaml). The interface is matched by its MAC address, which the Netplan documentation recommends for the MTU setting to work reliably. You can get the MAC from ip -br link.
The point-to-point link declares no gateway and no DNS: the default route stays on the LAN. The gateway4 key is deprecated anyway; if you need a gateway, use routes: with to: default.
sudo nano /etc/netplan/60-lien-10g.yaml
# Machine A (on machine B: address 10.10.10.2/30 and its own MAC)
network:
version: 2
ethernets:
lan10g:
match:
macaddress: "aa:bb:cc:dd:ee:01"
set-name: lan10g
mtu: 9000
addresses:
- 10.10.10.1/30
sudo chmod 600 /etc/netplan/60-lien-10g.yaml
sudo netplan generate
sudo netplan try # automatically reverts after 120 s unless you confirm
If you don’t want to use jumbo frames, remove the mtu: 9000 line. The maximum MTU supported by i40e is 9702; whatever value you choose, it must be identical on both ends. If the 10.10.10.0/30 subnet is already in use on your network, pick another one.
Check:
ip -br addr show lan10g
ip link show lan10g | grep -o 'mtu [0-9]*'
ip route get 10.10.10.2 # should show "dev lan10g"
Step 5: Test the link and measure throughput with iperf3
First check that the two machines can reach each other and that jumbo frames pass without fragmentation. 8972 bytes of payload + 28 bytes of IP/ICMP headers = 9000:
ping -c 4 10.10.10.2
ping -c 4 -M do -s 8972 10.10.10.2 # only if MTU is 9000 on both sides
Install iperf3 on both machines. If the installer asks whether to run iperf3 as a service, answer “No”: the server only runs during the test.
sudo apt install -y iperf3
On machine A (server), listen only on the 10 GbE address. The -1 option makes the server exit after a single test (TCP port 5201 by default):
iperf3 -s -B 10.10.10.1 -1
On machine B (client):
iperf3 -c 10.10.10.1 -t 30 -P 4 # B to A, 4 parallel streams
Start iperf3 -s -B 10.10.10.1 -1 on A again, then test the reverse direction from B:
iperf3 -c 10.10.10.1 -t 30 -P 4 -R # A to B
Check: the [SUM] line in the output gives the aggregate throughput. Actual throughput depends on the CPUs, the PCIe slot and the MTU. Compare it with the same test over your LAN link: if the result stays at 1 or 2.5 GbE levels, the traffic is not going through lan10g. In that case, check ip route get and the -B option.
Step 6: Keep the TL-SG108-M2 for the 2.5 GbE LAN
The TL-SG108-M2 is plug-and-play: it has no web interface and nothing to configure. Connect the machines’ built-in RJ45 ports (ideally 2.5 GbE ports) and your ISP router or router to it. The 10 GbE link handles large transfers between A and B (backups, NFS or iSCSI storage for a hypervisor), and the switch serves everything else.
sudo ethtool eno1 | grep -E 'Speed|Link detected' # replace eno1 with your LAN interface
Check: Speed: 2500Mb/s if the machine’s NIC and the cable (Cat 5e or better) support 2.5 GbE, otherwise 1000Mb/s.
Verification checks
ip -br addr # lan10g UP with 10.10.10.x/30
sudo ethtool lan10g | grep Speed # 10000Mb/s
ip route # the default route does NOT use lan10g
sudo journalctl -k -b | grep -i i40e # no module or link errors
Then reboot one of the machines and run these checks again to confirm that the Netplan configuration is applied at boot.
Security and best practices
- Keep the 10 GbE link private. It has no gateway and must not be routed to the Internet. Make the services that use it (NFS, SMB, iSCSI) listen only on
10.10.10.x, and never expose SMB, SSH, the Docker socket or an admin interface to the Internet. - Firewall without locking yourself out. With UFW, allow SSH before enabling the firewall:
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp # adapt to your LAN subnet
sudo ufw allow in on lan10g from 10.10.10.0/30
sudo ufw enable
sudo ufw status verbose
- Test network changes with
netplan tryso they roll back automatically, especially when working remotely. - Don’t leave iperf3 running as a permanent service: the
-1option stops the server after the test. - Keep the system updated (
sudo apt update && sudo apt upgrade), which includes kernel fixes and therefore fixes to the i40e driver.
Troubleshooting common errors
- Symptom: no link, and
dmesgshows “unqualified module” or “Rx/Tx is disabled… unsupported SFP+ module type”. Cause: the card does not accept the DAC cable or module. Fix: use an SFF-8431/SFF-8472-compliant DAC that is on the compatibility list from Intel or your card’s vendor (watch out for OEM cards). - Symptom:
ethtoolshowsSpeed: 1000Mb/s. Cause: a 1 GbE SFP module is plugged in instead of a DAC or 10 GbE module. Fix: replace it with a 10 GbE SFP+ cable or module on both ends. - Symptom: a normal ping works, but
ping -M do -s 8972fails and transfers stall. Cause: the MTU is not the same on both sides. Fix: set the samemtu:value in both Netplan files, or go back to 1500. - Symptom: disappointing iperf3 throughput.
Cause: a single stream, a limited PCIe slot (
LnkStalower thanLnkCap), a saturated CPU or traffic going over the LAN. Fix: use-P 4, and checklspci -vv,topandip route get. - Symptom: the interface doesn’t get its address after a reboot.
Cause: the MAC was copied incorrectly or the YAML is badly indented.
Fix: run
sudo netplan generate, which reports errors, and compare the MAC withip -br link.
FAQ
Can the Intel X710-DA2 be connected to the TP-Link TL-SG108-M2?
No. The X710-DA2 only has SFP+ cages, and the TL-SG108-M2 only has RJ45 ports limited to 2.5 Gb/s. This switch will never do 10 GbE. To connect several machines at 10 GbE, you need a switch with SFP+ ports; with only two machines, the direct DAC link described here is enough.
Do I need to install a proprietary Intel driver?
No. The i40e driver is included in the Ubuntu 24.04 kernel. Intel also publishes out-of-tree driver releases, but they aren’t needed for homelab use.
Can an SFP+ to RJ45 module connect the X710 to the 2.5 GbE switch?
Don’t count on it. The X710 runs at 10 GbE (and 1 GbE with suitable modules), and compatibility with copper RJ45 modules and multi-gigabit speeds is not guaranteed. Check Intel’s documentation for your card before buying anything.
Are jumbo frames required?
No. They can reduce CPU load for large transfers, but the link works at MTU 1500. If you enable them, use the same value on each end.
Read also
- Meilleur switch 2 5 gbe homelab
- Ventirad silencieux cpu serveur homelab
- Rendre son nas silencieux ventilateurs
Host this yourself
No hardware to manage? This kind of service runs on a managed VPS, ready in minutes. See PlanetHoster plans