IPv6 support for "LAN Networks" and "Allowed Networks"

Could you run, from your workstation:
ip a
ip r

(Beware, your IPv6 is unique, you might want to hide it from your post).
You likely have SLAAC enabled, therefore your workstation likely have IPv6 address.

  1. It depends on a lot of things. Some ISPs encapsulates either IPv4 in IPv6, or the other way, in their network, which means one might be faster than the other on the internet. For instance, my ISP (Free, in France) does it.
    Also, they might have different peering or transit policies depending on IP address family, which also matters if you’re doing speedtests on the internet.
    It’s hard to say without seeing your test, but testing through the internet is not a good test, because your test depends on your ISP implementation, on the server doing the speedtest, and any other ISP in the way.
    Unfortunately that means that for most people, the performance on IPv4 and IPv6 can be vastly different, and advantage one or the other.

  2. At high packet size, nowadays most routers are capable of pushing 10Gbps “easily”, but most applications are not using maximum packet size all the time, or at all.
    A better metric is “PPS” (packet per second), for instance, doing 10Gbps at 64-bytes packet (lowest IPv4 possible packet size) is still very hard on commodity hardware without any hardware acceleration, or more “modern” network stacks (XDP/DPDK).

@Hakujou

Be forewarned … lol

LXC with bridge in use here (netplan and ovs active)

[chuck@lizum ~.2030]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp111s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
    link/ether 1c:69:7a:db:62:b7 brd ff:ff:ff:ff:ff:ff
3: enp110s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 1c:69:7a:db:62:b6 brd ff:ff:ff:ff:ff:ff
4: wlp0s20f3: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether f0:d4:15:25:5d:78 brd ff:ff:ff:ff:ff:ff
5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 7a:11:84:bf:ef:8f brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 1c:69:7a:db:62:b7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.13/24 metric 100 brd 192.168.0.255 scope global dynamic br0
       valid_lft 82371sec preferred_lft 82371sec
    inet6 XXXXXXXX scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86251sec preferred_lft 14251sec
    inet6 fe80::1e69:7aff:fedb:62b7/64 scope link 
       valid_lft forever preferred_lft forever
10: veth56fe10c8@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether ae:f7:a0:75:26:67 brd ff:ff:ff:ff:ff:ff link-netnsid 1
12: veth565ada71@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether f6:2d:7b:44:34:6a brd ff:ff:ff:ff:ff:ff link-netnsid 2
14: vethef44750f@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether 46:b9:28:38:cd:7e brd ff:ff:ff:ff:ff:ff link-netnsid 3
17: tap37999d52: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
    link/ether ce:21:1c:e5:23:10 brd ff:ff:ff:ff:ff:ff
31: veth969b7c7f@if30: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether c2:7e:57:c1:9b:b8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
[chuck@lizum ~.2031]$ ip r
default via 192.168.0.1 dev br0 proto dhcp src 192.168.0.13 metric 100 
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.13 metric 100 
192.168.0.1 dev br0 proto dhcp scope link src 192.168.0.13 metric 100 
[chuck@lizum ~.2032]$

br0 does only request dhcp4. There is no IPv6 on the adapter.

[chuck@lizum ~.2032]$ cat /etc/netplan/10GbE.yaml 
network:
  version: 2
  renderer: networkd
  ethernets:
    enp111s0: {}
  bridges:
    br0:
      interfaces: [enp111s0]
      openvswitch: {}
      dhcp4: true
[chuck@lizum ~.2033]$

You do get the stateless (?) autoconfig value.

[chuck@lizum ~.2033]$ ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.13  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 XXXXXXX  prefixlen 64  scopeid 0x20<link>
        inet6 XXXXXXX prefixlen 64  scopeid 0x0<global>
        ether 1c:69:7a:db:62:b7  txqueuelen 1000  (Ethernet)
        RX packets 34517328  bytes 1131290419755 (1.1 TB)
        RX errors 0  dropped 60912  overruns 0  frame 0
        TX packets 32242551  bytes 133435521265 (133.4 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[chuck@lizum ~.2034]$

I’d like to point out another aspect of this as it affects my deployment, which is custom domain name.

My Plex, for a variety of reasons including age, has it’s own domain that I manage the records of. the certificates, and the names published for discovery. To distinguish properly between remote and local bandwidth, I cannot publish an AAAA record for that name locally or globally. If I do that, most of the clients come in over IPv6 and local bandwidth starves out remote bandwidth. From my previous testing years ago, this was the only aspect of a fully self managed Plex deployment that didn’t function properly in IPv6.

I don’t need the full auto-certificate and website service to support IPv6, and am not asking for it. I only need to be able to put my ULA prefix in the local networks settings. I’d happily write the line or two of code myself, if that were possible.

If I’m understanding,

Essentially, you want to be able to put your FQDN in “Allowed Without Auth” ?

If so, how do you protect against the “random internet scanners” from coming in and doing what they want?

For Plex to be fully IPv6, the plex.direct domain must also support IPv6.
I know it’s all address-> hostname enumeration. Question is if Plex.tv can generate those.

I think plex.tv is largely ready.
When I look at my account:

Local Addresses [My:IPv6:address:full:strength], 192.168.0.13 
Device Address from the latest request My.IP.V4.Addr  United States

No, I want to put my IPv6 Unique Local Addresses prefix [fdbb:d75a:c199::/48] into Settings->Network->“LAN Networks”.

Also no, my custom FQDN is provided in Settings->Network->“Custom server access URLs”. This is where having an IPv6 AAAA DNS record trips up clients, as when they do the server reachability tests they often choose the IPv6 address for the domain over the IPv4 address. But as the Settings->Network->“LAN Networks” doesn’t allow any IPv6 client to count as local, every client counts as remote.

It would be nice if I could put an IPv6 prefix into Settings->Network->“List of IP addresses and networks that are allowed without auth”, but I can’t really worry about that until I can have Plex differentiate local and remote IPv6 users anyway.

Though it’s not relevant to this topic, it’s proxied.

Again, I’m not asking for plex.direct support. It’s not needed for my network setup, and not used by any of my local or remote clients. I only want to be able to put IPv6 address prefixes into the Settings->Network->“LAN Networks” box.

Thank you for explaining.

It’s been a “Networking Weekend from H***” here.
( adapter enumeration names changed with the Ubuntu Server update and had to, while I was already ripped apart, craft NetPlan + Openvswitch into the yaml so all networking is in one place ( multiple adapters + bridges and DMZ + bond (2x10G) )

It’s all , just now, back online and stable.

I will get this put together but I think plex.direct supporting IPv6 is going to be part of the package. We have a lot of customers who will be losing IPv4 soon.

This IS becoming a priority issue

Guys post this on social medias like plex reddit home networking homelab etc.
Get this to at least 200 votes so their team member on this issue can make some demands

Hello folks. I’m really not sure what I’m missing here but all the stuff being asked for works on my Plex server?

With some info redacted, here is my plex.direct IPv6 address lookup:

Here’s my Reddit post I wrote in July: Reddit - Dive into anything

Some of it works, some of it doesn’t, and some requires manual configuration (whereas IPv4 will do it without user intervention). The following would need to be resolved as a minimum to have IPv6 functionality equivalent to current IPv4 functionality:

  • You are still required to manually enter the custom IPv6 plex.direct URL, to have that distributed upstream for clients to find your Plex server via IPv6. That should be taken care of automatically by Plex as it does with IPv4. It would also need to push both GUAs and ULAs (noting you can have multiple IPv6 addresses).
  • You can’t specify an IPv6 subnet in the List of IP addresses and networks that are allowed without auth or LAN Networks settings.
  • The Preferred network interface setting only shows IPv4 addresses.

Thank you @jvkohler for the explanation. This is absolutely what we are talking about.
We are mainly talking about handling IPv6 addresses in “LAN Networks” and “Allowed Network” as described in the first post.
This issue generates unwanted transcoding/limitations. From my point of view this an issue we cannot mitigate on user/admin side, also well summarized by @kesawi.

Any news to share?