Problems with dhcp client and SFP PCI Express card
Since yesterday I'm having trouble getting an IPv4 Address from my ISP over an SFP PCI Express card. The card worked fine for over a year now, but now it seems to make problems. Here is a link of the card that I'am using: https://www.startech.com/ch/Netzwerk-IO/Adapter-Karten/PCIe-Gigabit-Ethernet-LWL-Karte-Offen-SFP~PEX1000SFP2
And this is what I found out so far:
- The firewall is able to get an IPv6 address, but no IPv4 address.
- The ISP support claims that the v4 DHCP request does not get through to their server.
- If I use an external SFP to Ethernet converter (TP-LINK MC220L) with the same SPF module on a regular ethernet port on the same firewall I immediately get an IPv4 address.
Does anyone have an idea what could cause such a problem? Is my PCI card damaged or is this maybe some sort of driver issue?
JKnott last edited by
If you're getting an IPv6 address, but not IPv4, it has nothing to do with hardware. Run Packet Capture on the interface to see what's happening. Look for DHCP traffic on port 67 or 68 and possibly ARP.
@JKnott Thanks for the hint. I now found out what was causing this problem. For some reason the PCI Express card lost the MAC address. I entered a random MAC address in the interface configuration and now I'm getting an IPv4 address. Sadly there is no sticker on the card which address the card had from the factory and I also found no information about this problem or a way to reset the card somehow.
Is this a known problem and how could I restore the factory MAC address?
JKnott last edited by JKnott
For some reason the PCI Express card lost the MAC address.
I'm surprised you got an IPv6 address. Do you see a link local (starts with fe80) address? If so, you can convert it back to the MAC address by taking the least significant 64 bits, removing the fffe in the middle and inverting the 7th bit. Also, when you were doing Packet Capture, you should have seen what's supposed to be the MAC address, what did it show?
@JKnott On the packet capture the mac address was simply 00:00:00:00:00:00.
I found this converter for the link local conversion: http://www.sput.nl/internet/ipv6/ll-mac.html
But when I convert the link local of my fiber card I get the mac address from my internal LAN card. Very strange. Do you have any idea what could be wrong here?
JKnott last edited by
Do you have any idea what could be wrong here?
@JKnott The only idea that I have at the moment is that this could be some problem with the kernel driver for the card or that the hardware itself got broken. The only thing that changed on the firewall in the past year is that I installed newer versions of pfSense. To rule out hardware problems I will do some more tests to see if the card does have a mac address when I plug it into other computers with other operating systems.
Regarding kernel driver issues: The card I'm using has an Realtek RTL8168E chip on it. I found this article that describes problems with the Opensource kernel driver for this card:
Sadly this guide is only for Ubuntu, but there is a link to the source code of the driver that is used in the article: https://github.com/mtorromeo/r8168
I could also try to compile this driver on the FreeBsd from pfSense to see if this would solve the problem. Sadly I'm not to familiar with FreeBsd, so I hope I can compile the driver.
@kiokoman Thanks for the link. I will test this driver. I also just found out that the driver was updated in the pfSense 2.5 source code:
3 year old driver:
1 year old driver:
@kiokoman I've just installed and tested the newer kernel driver and this fixed the problem! I removed the manual mac address and now it shows the hardware address again. Also the IPv6 address is now different from the local LAN. Thanks for the quick help!