Setup a Teamspeak Server with Docker and Traefik 2

Hello, when it set up a Teamspeak 3 Server on my Docker VPS today, I ran into an issue, which I wanted to share.

Teamspeak needs 2 TCP Ports open. One for the Voice and one for the File Transfers. When i first tried just setting up one Router with two entrypoints, all traffic was sent to the voice port. As a result i split the router into two, but for some reason, the issue persisted.
So to fix the problem, I needed to create a loadbalancer which changes the traffic arriving on the File-Transfer port to send it to the File-Transport Port again. With this setup everything works perfectly.
If anyone has a reason why the traffic was not send there in the first place, please let me know.

My current configuration is the following:

docker-compose.yml

  teamspeak:
    image: teamspeak
    container_name: teamspeak
    depends_on:
      - mariadb
    restart: always
      
    environment:
      TS3SERVER_DB_PLUGIN: ts3db_mariadb
      TS3SERVER_DB_SQLCREATEPATH: create_mariadb
      TS3SERVER_DB_HOST: ${DB_HOST}
      TS3SERVER_DB_USER: ${TS_MARIADB_USERNAME}
      TS3SERVER_DB_PASSWORD: ${TS_MARIADB_PASSWORD}
      TS3SERVER_DB_NAME: ${TS_MARIADB_DATABASE}
      TS3SERVER_DB_WAITUNTILREADY: 30
      TS3SERVER_LICENSE: accept
    labels:
      - "traefik.enable=true"
      #Teamspeak-TCP-Upgrade
      - "traefik.tcp.routers.ts-tcp.rule=HostSNI(`*`)"
      - "traefik.tcp.routers.ts-tcp.entrypoints=ts-tcp1"
      - "traefik.tcp.routers.ts-tcp2.rule=HostSNI(`*`)"
      - "traefik.tcp.routers.ts-tcp2.entrypoints=ts-tcp2"
      - "traefik.tcp.routers.ts-tcp2.service=ts-lb"
      - "traefik.tcp.services.ts-lb.loadbalancer.server.port=30033"

      #Teamspeak-UDP-Upgrade
      - "traefik.udp.routers.ts-udp.entrypoints=ts-udp"

traefik.yml

entryPoints:
  ts-udp:
    address: ":9987/udp"
  ts-tcp1:
    address: ":10011"
  ts-tcp2:
    address: ":30033"