Setting a static MAC address in order to interface Google Wifi with freeNAS jail

itskando

Contributor
Joined
Apr 30, 2018
Messages
172
I was told on the Google Wifi forums that since Google Wifi's router might have issues with jail MAC addresses,
I might need to set a static one:

I did a little research. I can't test any of this here, myself (I don't have a FreeNAS set up), but I found this thread: https://www.ixsystems.com/community/threads/mac-flipping-when-using-jails.26172/, which talks about jail MAC addresses not being consistent. Google WiFi is going to want that jail to really look like it has a consistent MAC address (and be a different MAC address than the physical machine hosting it). That thread is a little old, so the jail configuration link for a static MAC address would be to something like https://www.ixsystems.com/documentation/freenas/11.2/jails.html#advanced-jail-creation (Table 14.2.3, vnet0_mac). But, since I don't use this stuff, I'm really out of my depth on trying to advise how to do that. It seemed to work for that original poster back then, though.

There may be an alternative approach, too. If you can get that jail's network set up in such a way that it doesn't appear to be a separate host at all (i.e., it's behind a virtual NAT firewall on the FreeNAS machine), then you'd just need to open a port forward in the FreeNAS machine to that jail's hidden IP address for the ports you need, and then Google WiFi would forward those same ports directly to the FreeNAS machines IP address. I know this technique can work with docker containers and virtual machines – I just don't know for sure whether it would work with jails.
.
Does this sound correct, and if so:

Is this as simple as setting the jail parameter vnet0_mac to
whatever the current jail MAC address is?


Would anything else be necessary, such as:

• mac_prefix
vnet1_mac
vnet2_mac
vnet3_mac
 
Last edited:

itskando

Contributor
Joined
Apr 30, 2018
Messages
172
While android phone attempts to connect via phone data plan:

tcpdump:
Code:
root@Deetz:~ # tcpdump arp and host 192.168.86.3
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on igb0, link-type EN10MB (Ethernet), capture size 262144 bytes
08:57:03.300246 ARP, Request who-has 192.168.86.3 tell wemo.lan, length 46
08:57:03.300291 ARP, Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
08:57:03.398918 ARP, Request who-has 192.168.86.3 tell hpa68c20.lan, length 46
08:57:03.398956 ARP, Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
08:57:08.297845 ARP, Request who-has 192.168.86.3 tell 192.168.86.200, length 46
08:57:08.297856 ARP, Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
08:57:40.801771 ARP, Request who-has 192.168.86.3 (0c:c4:7a:90:df:c2 (oui Unknown)) tell testwifi.here, length 46
08:57:40.801798 ARP, Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
08:58:40.808589 ARP, Request who-has 192.168.86.3 (0c:c4:7a:90:df:c2 (oui Unknown)) tell testwifi.here, length 46
08:58:40.808599 ARP, Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
^C
10 packets captured
535 packets received by filter
0 packets dropped by kernel

root@Deetz:~ # tcpdump arp and host 192.168.86.8
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on igb0, link-type EN10MB (Ethernet), capture size 262144 bytes
09:01:40.809872 ARP, Request who-has 192.168.86.8 (02:ff:60:c1:31:6f (oui Unknown)) tell testwifi.here, length 46
09:01:40.809917 ARP, Reply 192.168.86.8 is-at 02:ff:60:c1:31:6f (oui Unknown), length 28
09:02:40.816954 ARP, Request who-has 192.168.86.8 (02:ff:60:c1:31:6f (oui Unknown)) tell testwifi.here, length 46
09:02:40.817046 ARP, Reply 192.168.86.8 is-at 02:ff:60:c1:31:6f (oui Unknown), length 28
^C
4 packets captured
455 packets received by filter
0 packets dropped by kernel

root@Deetz:~ # tcpdump -lvv arp
tcpdump: listening on igb0, link-type EN10MB (Ethernet), capture size 262144 bytes
09:04:33.242664 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.3 tell boston.lan, length 46
09:04:33.242676 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
09:04:38.252302 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.3 tell testwifi.here, length 46
09:04:38.252310 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
09:04:40.836742 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.8 (02:ff:60:c1:31:6f (oui Unknown)) tell testwifi.here, length 46
09:04:40.836749 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.3 (0c:c4:7a:90:df:c2 (oui Unknown)) tell testwifi.here, length 46
09:04:40.836770 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
09:04:40.836771 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.2 is-at 0c:c4:7a:90:db:f4 (oui Unknown), length 46
09:04:40.836810 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.8 is-at 02:ff:60:c1:31:6f (oui Unknown), length 28
09:04:49.332339 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has android-8dca57f397cae728.lan tell testwifi.here, length 46
09:04:50.325922 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has android-8dca57f397cae728.lan tell testwifi.here, length 46
09:04:51.317212 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has android-8dca57f397cae728.lan tell testwifi.here, length 46
09:05:40.817621 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has android-8dca57f397cae728.lan (f8:a9:d0:54:6f:e0 (oui Unknown)) tell testwifi.here, length 46
09:05:40.837676 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.8 (02:ff:60:c1:31:6f (oui Unknown)) tell testwifi.here, length 46
09:05:40.837699 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.3 (0c:c4:7a:90:df:c2 (oui Unknown)) tell testwifi.here, length 46
09:05:40.837706 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
09:05:40.837707 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.2 is-at 0c:c4:7a:90:db:f4 (oui Unknown), length 46
09:05:40.837746 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.8 is-at 02:ff:60:c1:31:6f (oui Unknown), length 28
09:06:40.820166 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has android-8dca57f397cae728.lan (f8:a9:d0:54:6f:e0 (oui Unknown)) tell testwifi.here, length 46
09:06:40.828254 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.8 (02:ff:60:c1:31:6f (oui Unknown)) tell testwifi.here, length 46
09:06:40.828314 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.8 is-at 02:ff:60:c1:31:6f (oui Unknown), length 28
09:06:40.829362 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.2 is-at 0c:c4:7a:90:db:f4 (oui Unknown), length 46
09:06:40.836700 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.86.3 (0c:c4:7a:90:df:c2 (oui Unknown)) tell testwifi.here, length 46
09:06:40.836713 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.86.3 is-at 0c:c4:7a:90:df:c2 (oui Unknown), length 28
^C
24 packets captured
532 packets received by filter
0 packets dropped by kernel
 

itskando

Contributor
Joined
Apr 30, 2018
Messages
172
No, but on 2019.03.26:
Deetz.local kernel log messages:
> arp: 192.168.86.3 moved from 02:ff:60:c1:31:6e to 0c:c4:7a:90:df:c2 on epair0b
The Google Wifi automatically noted the change without issue.

That's at least a good sign that
the router does not need an absolutely static IP address for all hardware,
but it could be a different story with respect to jails..
 
Top