My x86 router journey

  • Thread starter Thread starter varkey
  • Start date Start date
  • Replies Replies 125
  • Views Views 22,975
I had recently acquired a mini pc with 4 intel NICs to be used as an x86 router / firewall. More details around the process of acquiring it is in another thread - Important - All international "Gift" packages now liable for customs duty @ 41.2% | Online Shopping

So I got the mSATA SSD module (and a keyboard :P) and I was trying to set up things over the last 1-2 days. At first I tried OPNsense, but to be honest, I didn't find it whole thing as refined or polished as pfSense. I couldn't even get my BSNL and Kerala Vision connections up for some reason. Maybe it is bit of unique or non-supported, I do not know, but the same config works on first try in OpenWRT without issues.

The Kerala Vision and BSNL connections come over the same fiber, goes into my Huawei ONT in transparent bridge mode (well, it doesn't have any other mode ;)) and then into the router, on the same port. Then VLANs are setup for each (1830 for BSNL Voice, 702 for BSNL Internet and 140 for Kerala Vision). On OPNsense, the the voice interface came up fine cause it was just a static IP config and didn't need mac spoofing. However for BSNL and Kerala Vision, as they do mac binding, I needed to spoof the mac.

But this doesn't appear to be supported natively OPNsense, and my PPPoE interfaces never even came up. Maybe once or twice, the BSNL interface came up but got disconnected in a short time. The logs show PPPoE timeout and retrying. 🤷‍♂️
I tried what I can and gave up.

Now on pfSense, the UI is more clean and polished. The layout also seemed better than OPNsense. I did the same config on pfSense and here they were pretty direct and mac spoofing on VLAN interfaces is not supported and must be set on the parent interface (this is the feature request Feature #1337: VLANs with different MAC address than parent interface - pfSense - pfSense bugtracker). But the issue is, I need two different macs when talking to Kerala Vision and BSNL (as that's what is originally registered on their end and I didn't want to get it reset).

I anyway I found a work-around in pfSense forum (MAC address spoofing on VLAN's and impressions from a second-try user) where you need to create bridge interface with just the VLAN interface as a member, and on the bridge interface you can spoof the mac. So BSNL Internet was setup on the regular VLAN interface and Kerala Vision on the bridge interface.

Finally, I was able to get my WAN interfaces up, now the next problem. The unbound DNS resolver kept on getting restarted. Log entries like below were being logged repeatedly. I searched online but couldn't find a solution that worked for me. Every 4 seconds or so the resolver was getting restarted which breaks everything as DNS fails.

Code:
Mar 22 13:51:25 mercury unbound: [54761:0] info: start of service (unbound 1.9.1).

Anyway I found the problem, it was the DHCP client for the BSNL IPv6 which was constantly getting a no addresses response. And for each such response, unbound gets restarted, I have no clue why 🤷‍♂️ Mostly related to this bug Bug #5413: Incorrect Handling of Unbound Resolver [service restarts, cache loss, DNS service interruption] - pfSense - pfSense bugtracker where unbound is restarted for each change rather than using unbound-control for such cases.

Code:
Mar 22 12:55:33 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:55:41 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:55:47 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:55:54 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:56:00 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:56:06 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:56:13 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:56:19 mercury dhcp6c[97095]: status code for NA-0: no addresses
Mar 22 12:56:25 mercury dhcp6c[97095]: status code for NA-0: no addresses

Setting this to true fixed the problem, as it is probably BSNL not responding.

pfsense-ipv6-dhcp.webp

So far things are working, I am still playing with how the fail over and load balancing should work. Overall, OpenWRT seems more mature for my use cases? I mean so many issues in getting something like this working which I could get it running in OpenWRT with no such challenges.

dashboard-pfsense-edited.webp


@C3PO @vishalrao @vignesh_venkatesan @achaudhary997 @JB700
 
It's cleared by customs now.

@varkey how do I pay the customs? Do I have to pay by cash when it arrives?

The last time I imported by private courier was in 2018 from Amazon GlobalShipping. They paid for 42% duty and I was only charged 18% by Amazon lol, due to late delivery even had delivery charges refunded lol.
 

Attachments

  • Screenshot_20200809-080152__01.webp
    Screenshot_20200809-080152__01.webp
    30 KB · Views: 340
💪🏼 You'd have the pay by cash I think on delivery for FedEx.

DHL lets you pay online if required, they'd send a link where you can pay. Aramex also you can pay online.

I guess since its cleared as a personal shipment with 42% duty, got cleared quick or maybe Delhi customs is quicker 😅. My shipments take much longer with multiple queries from customs. 😞 All came through Bangalore customs though.
 
Got the mini PC today.Got charged ~4450 in customs and advancement stuff. FedEx gave the Personal Import IEC instead of my real one despite sending them my IEC by email even before parcel was picked up in Malaysia. So frustrating! Anyways its all working well now.

IMG-20200810-115744.jpg

IMG-20200810-115750.jpg

IMG-20200810-120113.jpg

IMG-20200810-120131.jpg

IMG-20200810-120138.jpg


IMG-20200810-124219.jpg


My networking wall is a cable mess, I should prolly get a rack:
IMG-20200810-142055.jpg
 
I should get it pretty soon, most probably by tomorrow.
it really would be great if no duty is charged
The seller did mentioned in the product page that he marks the product as gift/low value item to help(?) with customs charges, hope that is the case
 
Okay, then most likely there would be duty at 42%. Cause the status updates like customs hold and release are added only when the package was marked for duty assessment based on my observation so far.
 
Last edited:
I tried Suricata, tbh I don't think I need it at my home and it needs regular maintenence for fixing the rules.

Mulit WAN is perfectly working, I'm currently doing failover between two WANs. Using gateway groups for doing the same.

I also tried load balancing (two WANs with same priority in gateway group) and it does work on certain loads such as multi connection speedtests and torrents but I felt that it can cause problems in some sites which makes connections to different IPs.

Currently I'm doing whole home OVPN (rather from certain devices) and it's working amazingly well.

I also tried NTOPPNG and it was good for diagnosis but doing any port scanning with NTOP on will cause full utilization of CPU.

I also tried PFBLOCKERNG for whole home adblocking. The problem was that Unbound didn't support parralel querying for faster performance. So I ended up installing FREEBSD version of AdGuard home and using that instead.

I do use PFBLOCKERNG ip blocking for geoip restrictions and also to alias blocked websites ip to route over Singapore VPN.

Most things on PFSENSE are much easier to configure compared to routeros.
 
Last edited:
Back