Я хочу знать о конфигурации Alpine Linux и IGMP для TvHeadend, особенно когда я использую несколько ник.
У меня есть 4 NIC
- 1G + 1G = bond0: использовать длявнешняя служба и подключение к Интернету
- 1G = enp1s0: использовать для потоковой передачи TvHeadend IGMP
- 10G = enp4s0: использовать для локальной сети
Моя проблема
- когда я использую bond0 для GW по умолчанию, enp1s0 не может прослушивать потоковую передачу IGMP.
- , когда я использую enp1s0 для GW по умолчанию, bond0 не может прослушивать внешние внутренние.(Исходящий работает нормально).
Я не знаю своей проблемы.Когда я использую unRAID сервер, он работает хорошо, только вариант маршрута, но Alpine Linux не работает.Я думаю, что в Alpine Linux есть специальное правило для нескольких имен, но я не могу найти никакой конфигурации.
Но когда я проверяю с iftop -i enp1s0
, есть соединение с протоколом rtp.
Я пробовал
- Установить таблицу маршрутизации: не работает
ip route add 224.0.0.0/4 dev enp1s0
- Установить iptables: не работает
iptables -I FORWARD -s [multicast] -d 224.0.0.0/4 -j ACCEPT
iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT
- Установить конфигурацию интерфейса мультиплексора TvHeadend: не работает
Вот мои интерфейсы для конфигурации ник
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet static
bond-slaves enp2s0f0 enp2s0f1
bond-mode 802.3ad
bond-miimon 100
bond-downdelay 200
bond-updelay 200
bond-lacp-rate 1
bond-xmit-hash-policy layer2+3
address 192.168.1.21
netmask 255.255.255.0
gateway 192.168.1.1
post-up ip link set dev bond0 mtu 9000
metric 10
auto enp1s0
iface enp1s0 inet static
address 192.168.219.21
netmask 255.255.255.0
gateway 192.168.219.1
metric 20
auto enp4s0
iface enp4s0 inet static
address 192.168.2.21
netmask 255.255.255.0
post-up ip link set dev enp4s0 mtu 9000
Вот моя таблица маршрутизации (неустановить многоадресную конфигурацию)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 10 0 0 bond0
default 192.168.219.1 0.0.0.0 UG 20 0 0 enp1s0
172.17.0.0 * 255.255.0.0 U 0 0 0 docker0
192.168.1.0 * 255.255.255.0 U 0 0 0 bond0
192.168.2.0 * 255.255.255.0 U 0 0 0 enp4s0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
192.168.219.0 * 255.255.255.0 U 0 0 0 enp1s0
Вот мое правило iptables (это значение по умолчанию для Alpine Linux)
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Вот мое правило iptables в nat (Это значение по умолчанию для Alpinelinux)
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 anywhere
RETURN all -- 192.168.122.0/24 base-address.mcast.net/24
RETURN all -- 192.168.122.0/24 255.255.255.255
MASQUERADE tcp -- 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
MASQUERADE udp -- 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Вот мое правило iptables в mangle (это значение по умолчанию для alpine linux)
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
CHECKSUM udp -- anywhere anywhere udp dpt:bootpc CHECKSUM fill