Я установил двухузловой кубернетный кластер с двумя узлами, сконфигурированный с weavenet и Metallb . Я хочу, чтобы службы, размещенные в этом кластере, обнаруживали устройства UPnP в моей домашней сети и взаимодействовали с ними. Я считаю, что для этого нужно настроить пакеты обнаружения UPnP для повторной многоадресной передачи в мою домашнюю сеть. Как правильно настроить повторную многоадресную передачу между виртуальной сетью Weavenet и локальной сетью?
192.168.1.0/24
, с главным и подчиненным узлами. 10.32.0.1/12
. 192.168.2.192/26
. , я могу выполнить тестовый сценарий обнаружения , который обнаруживает мои устройства UPnP с помощью многоадресной рассылки ( 239.255.255.250:1900
) с любого компьютера в моей домашней сети. После развертывания в кластере (, например, ) устройства UPnP больше не обнаруживаются. Я могу видеть пакеты UPnP из других модулей в кластере, но не с моих компьютеров, напрямую подключенных к моей домашней сети.
Я считаю, что решение этой проблемы будет включать ретрансляцию пакетов UPnP из weavenet в мою домашнюю сеть и обратное проксирование ответов ... но я не знаю, как сделать что-то подобное с плетением сети. Как я могу настроить любой вид службы / развертывания / модуля / сети, который будет взаимодействовать с моими устройствами UPnP так же, как мой тестовый сценарий при использовании сети хоста?
Sự cố : Các chương trình phát sóng uPnP UDP đến từ địa chỉ nội bộ của nhóm đang bị nút loại bỏ trước khi nó đi vào mạng gia đình của bạn.
tức là. gói sẽ trông như thế nào
IP 10.32.0.x.45196> 239.255.255.250.1900: UDP, độ dài 215
Theo tài liệu tại https://kubernetes.io/docs/tutorials/services/source-ip /
type: LoadBalancer - sẽ tự động tạo nguồn NAT cho nút IP .
type: NodePort - sẽ tự động tạo nguồn NAT cho nút pod IP.
Sử dụng NodePort với hostNetwork sẽ liên kết NodePort của nhóm với Node IP, do đó UDP phát sẽ đến từ một địa chỉ hợp pháp.
Hạn chế đối với thiết lập này:
Giải pháp :
Xem terrarium-service-udp.yaml để biết phân bổ NodePort .
Xem khai báo terrarium-deploy.yaml để biết hostNetwork.
terrarium-service-udp.yaml:
kind: Service
metadata:
annotations:
metallb.universe.tf/allow-shared-ip: terrarium
creationTimestamp: null
labels:
io.kompose.service: terrarium
name: terrarium-udp
spec:
ports:
- name: '32767'
port: 32767
protocol: UDP
targetPort: 54321
- name: '31900'
port: 31900
protocol: UDP
targetPort: 1900
selector:
io.kompose.service: terrarium
type: NodePort
terrarium-deploy.yaml:
kind: Deployment
metadata:
annotations:
creationTimestamp: null
labels:
io.kompose.service: terrarium
name: terrarium
spec:
replicas: 1
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: terrarium
spec:
hostNetwork: true
containers:
- image: docker.lan/terrarium
name: terrarium
ports:
- containerPort: 80
- containerPort: 32767
protocol: UDP
- containerPort: 1900
protocol: UDP
resources: {}
restartPolicy: Always
Tôi có cấu hình hoạt động cho minidlna. Nếu bạn cần nó để so sánh,cho tôi biết và tôi sẽ tải lên GitHub.