Hi,
I moved from a Ubiquity Edge router to VYOS on KVM. Everything is working fine, ipv6 is much more stable as on ERX. Hairpin NAT is also ok. I’m very happy
The last issue I have, is to make working IP-TV with IGMP, I didn’t have any luck for now.
This is my current configuration on 1.4-rolling-202307090317
firewall {
all-ping enable
broadcast-ping disable
config-trap disable
group {
network-group IPTV-Multicast {
network 224.0.0.0/4
network 239.0.0.0/8
network 195.186.0.0/16
}
network-group SCTV-MC-Source {
network 213.3.72.0/24
}
}
interface eth1.10 {
in {
ipv6-name WAN6_IN
name WAN_IN
}
local {
ipv6-name WAN6_LOCAL
name WAN_LOCAL
}
out {
ipv6-name WAN6_OUT
name WAN_OUT
}
}
ipv6-name WAN6_IN {
default-action drop
description “WAN6 to internal”
rule 10 {
action accept
description “Allow established/related”
state {
established enable
related enable
}
}
rule 20 {
action drop
description “Drop invalid state”
state {
invalid enable
}
}
rule 30 {
action accept
description “allow ICMPv6”
protocol ipv6-icmp
}
rule 2000 {
action accept
description “for caddy”
destination {
address xxxx:xxxx:xxxx:xxxx:xxxx:xx:xxxx:xxxx
port 443
}
protocol tcp
}
}
ipv6-name WAN6_LOCAL {
default-action drop
description “WAN6 to router”
rule 10 {
action accept
description “Allow established/related”
state {
established enable
related enable
}
}
rule 20 {
action drop
description “Drop invalid state”
state {
invalid enable
}
}
rule 30 {
action accept
description “allow ICMPv6”
protocol ipv6-icmp
}
rule 40 {
action accept
description “allow DHCPv6 client/server”
destination {
port 546
}
protocol udp
source {
port 547
}
}
rule 50 {
action drop
description “Block port 53”
destination {
port 53
}
protocol tcp_udp
}
}
ipv6-name WAN6_OUT {
default-action accept
description “IPv6 WAN out”
rule 10 {
action accept
description “Allow established/related”
state {
established enable
related enable
}
}
rule 20 {
action reject
description “Allow established/related”
state {
invalid enable
}
}
}
ipv6-receive-redirects disable
ipv6-src-route disable
ip-src-route disable
log-martians enable
name WAN_IN {
default-action drop
description WAN-to-internal
enable-default-log
rule 10 {
action drop
log enable
source {
geoip {
country-code ru
}
}
}
rule 20 {
action accept
description Allow-established/related
state {
established enable
related enable
}
}
rule 21 {
action accept
description wireguard
destination {
address 192.168.178.22
port 51820
}
log enable
protocol udp
}
rule 23 {
action accept
destination {
address 192.168.178.20
port 80,443
}
protocol tcp
state {
new enable
}
}
rule 30 {
action drop
description Drop-invalid-state
log enable
state {
invalid enable
}
}
rule 31 {
action accept
destination {
address 192.168.178.19
port 25,110,143,587,993,4190
}
protocol tcp
state {
new enable
}
}
rule 40 {
action accept
description Allow-IPTV-Multicast-UDP
destination {
group {
network-group IPTV-Multicast
}
port 10000
}
log enable
protocol udp
source {
group {
network-group SCTV-MC-Source
}
port 10000
}
}
rule 50 {
action accept
description Allow-IGMP
log disable
protocol igmp
}
}
name WAN_LOCAL {
default-action drop
description “WAN to local”
rule 10 {
action accept
description Allow-established/related
state {
established enable
related enable
}
}
rule 20 {
action drop
description Drop-invalid-state
state {
invalid enable
}
}
rule 21 {
action accept
description “Swisscom IPTV”
destination {
group {
network-group IPTV-Multicast
}
port 10000
}
log disable
protocol udp
source {
group {
network-group SCTV-MC-Source
}
port 10000
}
}
rule 22 {
action accept
description Allow-IGMP
log disable
protocol igmp
}
rule 23 {
action drop
description openvpn
destination {
port 1194
}
log enable
protocol udp
}
rule 24 {
action accept
description “ESP Protocol”
log disable
protocol esp
}
rule 30 {
action accept
destination {
address 192.168.178.20
port 80,443
}
log enable
protocol tcp
state {
new enable
}
}
rule 31 {
action accept
destination {
address 192.168.178.19
port 25,110,143,587,993,4190
}
protocol tcp
state {
new enable
}
}
}
name WAN_OUT {
default-action accept
description “Internal to WAN”
rule 10 {
action accept
description “Allow established/related”
log disable
state {
established enable
related enable
}
}
rule 20 {
action reject
description “Reject invalid state”
state {
invalid enable
}
}
}
receive-redirects disable
send-redirects enable
source-validation disable
syn-cookies enable
twa-hazards-protection disable
}
interfaces {
ethernet eth0 {
address 192.168.178.1/24
address 192.168.178.251/24
description Local
duplex auto
hw-id xx:xx:xx:xx:xx:xx
ipv6 {
dup-addr-detect-transmits 1
}
offload {
gro
lro
sg
tso
}
speed auto
}
ethernet eth1 {
duplex auto
hw-id xx:xx:xx:xx:xx:xx
offload {
gro
lro
sg
tso
}
speed auto
vif 10 {
address dhcp
address dhcpv6
description Internet
dhcp-options {
default-route-distance 201
host-name ubnt-sw
vendor-class-id 100008,0001
}
dhcpv6-options {
duid xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
pd 0 {
interface eth0 {
address 1
sla-id 0
}
length 56
}
}
ipv6 {
address {
autoconf
}
dup-addr-detect-transmits 1
}
}
}
loopback lo {
}
}
nat {
destination {
rule 10 {
description dans-ssh
destination {
port xxx
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.20
port xxxx
}
}
rule 11 {
description “caddy http”
destination {
port 80
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.20
port 80
}
}
rule 12 {
description “caddy https”
destination {
port 443
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.20
port 443
}
}
rule 13 {
description submission
destination {
port 587
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.19
port 587
}
}
rule 14 {
description IMAP/S
destination {
port 993
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.19
port 993
}
}
rule 15 {
description POP3/S
destination {
port 995
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.19
port 995
}
}
rule 16 {
description “for mail”
destination {
port 4190
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.19
port 4190
}
}
rule 17 {
description SMTP
destination {
port 25
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.19
port 25
}
}
rule 18 {
description POP3
destination {
port 110
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.19
port 110
}
}
rule 19 {
description IMAP
destination {
port 143
}
inbound-interface eth1.10
protocol tcp
translation {
address 192.168.178.19
port 143
}
}
rule 20 {
description WIREGUARD
destination {
port 51820
}
inbound-interface eth1.10
protocol udp
translation {
address 192.168.178.22
port 51820
}
}
rule 100 {
description “NAT reflection inside”
destination {
address my dynamic external IP
port 80,443
}
inbound-interface eth0
protocol tcp
translation {
address 192.168.178.20
}
}
}
source {
rule 110 {
description “NAT Reflection: INSIDE”
destination {
address 192.168.178.0/24
}
log
outbound-interface eth0
protocol tcp
source {
address 192.168.178.0/24
}
translation {
address masquerade
}
}
rule 5010 {
description “masquerade for WAN”
outbound-interface eth1.10
protocol all
source {
address 192.168.178.0/24
}
translation {
address masquerade
}
}
}
}
protocols {
igmp-proxy {
interface eth0 {
alt-subnet 0.0.0.0/0
role downstream
threshold 1
}
interface eth1.10 {
alt-subnet 0.0.0.0/0
role upstream
threshold 1
}
}
static {
route6 ::/0 {
interface eth1.10 {
}
}
}
}
service {
dhcp-server {
listen-address 192.168.178.1
shared-network-name LAN {
authoritative
name-server 192.168.178.20
name-server 192.168.178.1
subnet 192.168.178.0/24 {
default-router 192.168.178.1
domain-name home
lease 86400
range 0 {
start 192.168.178.40
stop 192.168.178.249
}
}
}
}
dns {
forwarding {
allow-from 192.168.178.0/24
listen-address 192.168.178.1
name-server 8.8.8.8 {
}
}
}
ntp {
allow-client {
address 0.0.0.0/0
address ::/0
}
server 0.ch.pool.ntp.org {
}
server 0.ubnt.pool.ntp.org {
}
server 2.ubnt.pool.ntp.org {
}
server 3.ubnt.pool.ntp.org {
}
}
router-advert {
interface eth0 {
default-preference high
hop-limit 64
interval {
max 600
}
link-mtu 1500
name-server xxxx:xxxx:xxxx:xxxx:xxxx:xx:xxxx:xxxx
other-config-flag
prefix 0::/64 {
valid-lifetime 2592000
}
reachable-time 0
retrans-timer 0
}
}
ssh {
listen-address 192.168.178.1
listen-address 192.168.178.251
port 22
}
}
system {
conntrack {
modules {
ftp
h323
nfs
pptp
sip
sqlnet
tftp
}
}
domain-name home
host-name vyos-sw
login {
user me {
authentication {
encrypted-password !
plaintext-password ""
}
}
}
name-server 1.1.1.1
option {
performance throughput
}
}
syslog {
global {
facility all {
level notice
}
facility local7 {
level debug
}
}
host 192.168.178.3 {
facility all {
level info
}
}
}
time-zone Europe/Zurich
}
// Warning: Do not remove the following line.
// vyos-config-version: “bgp@4:broadcast-relay@1:cluster@1:config-management@1:conntrack@3:conntrack-sync@2:container@1:dhcp-relay@2:dhcp-server@6:dhcpv6-server@1:dns-dynamic@1:dns-forwarding@4:firewall@10:flow-accounting@1:https@4:ids@1:interfaces@29:ipoe-server@1:ipsec@12:isis@3:l2tp@4:lldp@1:mdns@1:monitoring@1:nat@5:nat66@1:ntp@2:openconnect@2:ospf@2:policy@5:pppoe-server@6:pptp@2:qos@2:quagga@11:rip@1:rpki@1:salt@1:snmp@3:ssh@2:sstp@4:system@26:vrf@3:vrrp@3:vyos-accel-ppp@2:wanloadbalance@3:webproxy@2”
// Release version: 1.4-rolling-202307090317