Skip to content

Instantly share code, notes, and snippets.

@Ruben-E
Last active January 25, 2024 23:12
Show Gist options
  • Save Ruben-E/abb9a4a872a7c4ffff058ae291ef2627 to your computer and use it in GitHub Desktop.
Save Ruben-E/abb9a4a872a7c4ffff058ae291ef2627 to your computer and use it in GitHub Desktop.
Configure EdgeRouter X for KPN fiber / glasvezel

Setup interface eth1 and configure the DHCP/DNS server

configure
 
set interfaces ethernet eth1 address 192.168.2.254/24
set interfaces ethernet eth1 description "eth1 - LAN"
set interfaces ethernet eth1 duplex auto
set interfaces ethernet eth1 speed auto
 
set service dhcp-server disabled false
set service dhcp-server hostfile-update disable
set service dhcp-server shared-network-name LAN authoritative enable
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 default-router 192.168.2.254
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 dns-server 1.1.1.1
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 dns-server 8.8.8.8
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 lease 86400
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 start 192.168.2.50
set service dhcp-server shared-network-name LAN subnet 192.168.2.0/24 start 192.168.2.50 stop 192.168.2.200
 
set service dns forwarding cache-size 150
set service dns forwarding listen-on eth1
set service dns forwarding name-server 8.8.8.8
set service dns forwarding name-server 8.8.4.4
set service dns forwarding options listen-address=192.168.2.254
 
commit
save
exit

Configure firewall

configure
 
set firewall all-ping enable
set firewall broadcast-ping disable
set firewall ipv6-receive-redirects disable
set firewall ipv6-src-route disable
set firewall ip-src-route disable
set firewall log-martians enable
set firewall receive-redirects disable
set firewall send-redirects enable
set firewall source-validation disable
set firewall syn-cookies enable
 
set firewall name WAN_IN default-action drop
set firewall name WAN_IN description "WAN to Internal"
set firewall name WAN_IN enable-default-log
set firewall name WAN_IN rule 10 action accept
set firewall name WAN_IN rule 10 description "Allow established/related"
set firewall name WAN_IN rule 10 log enable
set firewall name WAN_IN rule 10 protocol all
set firewall name WAN_IN rule 10 state established enable
set firewall name WAN_IN rule 10 state invalid disable
set firewall name WAN_IN rule 10 state new disable
set firewall name WAN_IN rule 10 state related enable
 
set firewall name WAN_IN rule 20 action drop
set firewall name WAN_IN rule 20 description "Drop invalid state"
set firewall name WAN_IN rule 20 log enable
set firewall name WAN_IN rule 20 protocol all
set firewall name WAN_IN rule 20 state established disable
set firewall name WAN_IN rule 20 state invalid enable
set firewall name WAN_IN rule 20 state new disable
set firewall name WAN_IN rule 20 state related disable
 
set firewall name WAN_LOCAL default-action drop
set firewall name WAN_LOCAL description "WAN to router"
set firewall name WAN_LOCAL enable-default-log
set firewall name WAN_LOCAL rule 10 action accept
set firewall name WAN_LOCAL rule 10 description "Allow established/related"
set firewall name WAN_LOCAL rule 10 log disable
set firewall name WAN_LOCAL rule 10 protocol all
set firewall name WAN_LOCAL rule 10 state established enable
set firewall name WAN_LOCAL rule 10 state invalid disable
set firewall name WAN_LOCAL rule 10 state new disable
set firewall name WAN_LOCAL rule 10 state related enable
 
set firewall name WAN_LOCAL rule 20 action drop
set firewall name WAN_LOCAL rule 20 description "Drop invalid state"
set firewall name WAN_LOCAL rule 20 log disable
set firewall name WAN_LOCAL rule 20 protocol all
set firewall name WAN_LOCAL rule 20 state established disable
set firewall name WAN_LOCAL rule 20 state invalid enable
set firewall name WAN_LOCAL rule 20 state new disable
set firewall name WAN_LOCAL rule 20 state related disable
 
commit
save
exit

Generate the configuration line for user-id, used to set the pppoe authentication

sudo su
pppoe_id=$(ifconfig | grep -m 1 eth0 | awk '{print $5}' | awk -F':' '{print "set interfaces ethernet eth0 vif 6 pppoe 0 user-id "$1"-"$2"-"$3"-"$4"-"$5"-"$6"@internet"}')
echo "$pppoe_id"
exit

configure
 
delete interfaces ethernet eth0 address
 
set interfaces ethernet eth0 description "eth0 - FTU"
set interfaces ethernet eth0 duplex auto
set interfaces ethernet eth0 speed auto
set interfaces ethernet eth0 mtu 1512
 
set interfaces ethernet eth0 vif 6 description "eth0.6 - Internet"
set interfaces ethernet eth0 vif 6 mtu 1508
 
(YOUR SET LINE FOR USER-ID, received from previous step)
set interfaces ethernet eth0 vif 6 pppoe 0 password kpn
set interfaces ethernet eth0 vif 6 pppoe 0 default-route auto
set interfaces ethernet eth0 vif 6 pppoe 0 name-server auto
set interfaces ethernet eth0 vif 6 pppoe 0 idle-timeout 180
set interfaces ethernet eth0 vif 6 pppoe 0 mtu 1500
 
set interfaces ethernet eth0 vif 6 pppoe 0 firewall in name WAN_IN
set interfaces ethernet eth0 vif 6 pppoe 0 firewall local name WAN_LOCAL
 
set system name-server 8.8.8.8
set system name-server 8.8.4.4
 
commit
save
exit
 

Configure hardware offloading for the IPv4 connection (I think you need to enable offloading manually)

configure
 
set system offload ipv4 forwarding enable
set system offload ipv4 pppoe enable
set system offload ipv4 vlan enable
 
commit
save
exit

Configure NAT to allow the LAN to access the internet

configure
 
set service nat rule 5010 description "KPN Internet"
set service nat rule 5010 log enable
set service nat rule 5010 outbound-interface pppoe0
set service nat rule 5010 protocol all
set service nat rule 5010 source address 192.168.2.0/24
set service nat rule 5010 type masquerade
 
commit
save
exit

Enable Traffic inspection (DPI)

configure
 
set system traffic-analysis dpi enable
set system traffic-analysis export enable
 
commit
save
exit

Setup routed IPTV

configure
 
set interfaces ethernet eth0 vif 4 address dhcp
set interfaces ethernet eth0 vif 4 description "eth0.4 - IPTV"
set interfaces ethernet eth0 vif 4 dhcp-options client-option "send vendor-class-identifier "IPTV_RG";"
set interfaces ethernet eth0 vif 4 dhcp-options client-option "request subnet-mask, routers, rfc3442-classless-static-routes;"
set interfaces ethernet eth0 vif 4 dhcp-options default-route no-update
set interfaces ethernet eth0 vif 4 dhcp-options default-route-distance 210
set interfaces ethernet eth0 vif 4 dhcp-options name-server update
 
commit
save
exit

Modify our DHCP configuration to include IPTV parameters

configure
 
set service dhcp-server global-parameters "option vendor-class-identifier code 60 = string;"
set service dhcp-server global-parameters "option broadcast-address code 28 = ip-address;"
 
commit
save
exit

NAT rules are required for the IPTV settop box to connect to the IPTV platform The following commands will return 2 configuration lines required.

sudo su
r_ip=$(show dhcp client leases | grep router | awk '{ print $3 }');
iptv_static=$(echo "set protocols static route 213.75.112.0/21 next-hop $r_ip")
echo -e "$iptv_static"
exit

NAT rules are required for the IPTV settop box to connect to the IPTV platform The following commands will return 2 configuration lines required.

configure
 
set service nat rule 5000 description IPTV
set service nat rule 5000 log disable
set service nat rule 5000 outbound-interface eth4.4
set service nat rule 5000 protocol all
set service nat rule 5000 destination address 213.75.112.0/21
set service nat rule 5000 type masquerade

(YOUR SET LINE FOR STATIC ROUTE, received from previous step)
 
commit
save
exit

Setup the IGMP Proxy

configure
 
set protocols igmp-proxy interface eth4.4 alt-subnet 0.0.0.0/0
set protocols igmp-proxy interface eth4.4 role upstream
set protocols igmp-proxy interface eth4.4 threshold 1
set protocols igmp-proxy interface eth1 alt-subnet 0.0.0.0/0
set protocols igmp-proxy interface eth1 role downstream
set protocols igmp-proxy interface eth1 threshold 1
 
commit
save
exit

Configure an IPv6 Firewall

configure
 
set firewall ipv6-name WANv6_IN default-action drop
set firewall ipv6-name WANv6_IN description "WAN inbound traffic forwarded to LAN"
set firewall ipv6-name WANv6_IN enable-default-log
 
set firewall ipv6-name WANv6_IN rule 10 action accept
set firewall ipv6-name WANv6_IN rule 10 description "Allow established/related sessions"
set firewall ipv6-name WANv6_IN rule 10 state established enable
set firewall ipv6-name WANv6_IN rule 10 state related enable
set firewall ipv6-name WANv6_IN rule 20 action drop
set firewall ipv6-name WANv6_IN rule 20 description "Drop invalid state"
set firewall ipv6-name WANv6_IN rule 20 state invalid enable
 
set firewall ipv6-name WANv6_LOCAL default-action drop
set firewall ipv6-name WANv6_LOCAL description "WAN inbound traffic to the router"
set firewall ipv6-name WANv6_LOCAL enable-default-log
 
set firewall ipv6-name WANv6_LOCAL rule 10 action accept
set firewall ipv6-name WANv6_LOCAL rule 10 description "Allow established/related sessions"
set firewall ipv6-name WANv6_LOCAL rule 10 state established enable 
set firewall ipv6-name WANv6_LOCAL rule 10 state related enable
 
set firewall ipv6-name WANv6_LOCAL rule 20 action drop
set firewall ipv6-name WANv6_LOCAL rule 20 description "Drop invalid state"
 
set firewall ipv6-name WANv6_LOCAL rule 20 state invalid enable
set firewall ipv6-name WANv6_LOCAL rule 30 action accept
set firewall ipv6-name WANv6_LOCAL rule 30 description "Allow IPv6 icmp"
set firewall ipv6-name WANv6_LOCAL rule 30 protocol ipv6-icmp
 
set firewall ipv6-name WANv6_LOCAL rule 40 action accept
set firewall ipv6-name WANv6_LOCAL rule 40 description "allow dhcpv6"
set firewall ipv6-name WANv6_LOCAL rule 40 destination port 546
set firewall ipv6-name WANv6_LOCAL rule 40 protocol udp
set firewall ipv6-name WANv6_LOCAL rule 40 source port 547
 
commit
save
exit

Setup IPv6 on the pppoe interface and create a static route over the pppoe interface

configure
 
set interfaces ethernet eth0 vif 6 pppoe 0 firewall in ipv6-name WANv6_IN
set interfaces ethernet eth0 vif 6 pppoe 0 firewall local ipv6-name WANv6_LOCAL
 
set interfaces ethernet eth0 vif 6 pppoe 0 ipv6 enable
set interfaces ethernet eth0 vif 6 pppoe 0 ipv6 address autoconf
set interfaces ethernet eth0 vif 6 pppoe 0 ipv6 dup-addr-detect-transmits 1
 
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd no-dns
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface eth1 prefix-id :1
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface eth1 service slaac
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 prefix-length /48
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd rapid-commit disable
 
set protocols static interface-route6 ::/0 next-hop-interface pppoe0
 
commit
save
exit

Setup router-advert and set ipv6 name server

configure
 
set interfaces ethernet eth1 ipv6 dup-addr-detect-transmits 1
set interfaces ethernet eth1 ipv6 router-advert cur-hop-limit 64
set interfaces ethernet eth1 ipv6 router-advert link-mtu 0
set interfaces ethernet eth1 ipv6 router-advert managed-flag false
set interfaces ethernet eth1 ipv6 router-advert max-interval 600
set interfaces ethernet eth1 ipv6 router-advert name-server 2001:4860:4860::8888
set interfaces ethernet eth1 ipv6 router-advert name-server 2001:4860:4860::8844
set interfaces ethernet eth1 ipv6 router-advert radvd-options "RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 {};"
 
set interfaces ethernet eth1 ipv6 router-advert other-config-flag false
set interfaces ethernet eth1 ipv6 router-advert reachable-time 0
set interfaces ethernet eth1 ipv6 router-advert retrans-timer 0
set interfaces ethernet eth1 ipv6 router-advert send-advert true
set interfaces ethernet eth1 ipv6 router-advert prefix ::/64 autonomous-flag true
set interfaces ethernet eth1 ipv6 router-advert prefix ::/64 on-link-flag true
set interfaces ethernet eth1 ipv6 router-advert prefix ::/64 valid-lifetime 2592000
 
set system name-server 2001:4860:4860::8888
set system name-server 2001:4860:4860::8844
 
commit
save
exit

Configure hardware offloading for the IPv6 connection

configure
 
set system offload ipv6 forwarding enable
set system offload ipv6 pppoe enable
 
commit
save
exit

It is possible that after the IPv6 configuration, the default route is changed or the IGMP proxy stopped. Simple fix to get up and running with your new configuration.

reboot
@diademiemi
Copy link

Ik ben net met wat stukken van het config van @RT-81 iets verder gekomen. Maar nu is er beeld, maar na enkele seconden gaat het geluid weg, bevriest het beeld en komt er een popup met error code stb-nmc-400. De TV is direct aangesloten aan de EdgeRouter X, zonder andere dingen daartussen. Wij krijgen 500MBPS up/down dus snelheid is geen problem. Heeft iemand anders dit ook gehad en kunnen oplossen?

@EdwinUDMP
Copy link

@RT-81
Ik heb dezelfde setup als jij. Ook de trotse eigenaar van een UDM Pro, maar niet beseft dat deze "Enterprise" router geen IGMP proxy ondersteund en ook niet te configureren is middels een .json bestand (wat de USG dus blijkbaar wèl kan). Ik ben echter ook nog in het bezit van een EdgeRouter X en zat me af te vragen of het mogelijk is om de EdgeRouter X dus alleen in te zetten voor het IPTV gedeelte en de rest van het WAN verkeer op de één of andere manier door te zetten naar mijn UDM Pro. En dan achter de UDM Pro m'n LAN netwerk te configureren. Hoewel ik wel in de ICT werkzaam ben, ben ik ben echter geen CCNA gecertificeerde IT'er en dus is mijn kennis van dit soort zaken niet goed genoeg. Ik vroeg me af of jij inmiddels verder bent gekomen met jouw setup. Is het gelukt met je EdgeRouter i.c.m. de UDM Pro?

@RT-81
Copy link

RT-81 commented Feb 23, 2021

@EdwinUDMP

Ik heb er weinig tijd voor gehad, ook deels omdat mijn vrouw thuis werkt.
Dus ben nog niet verder dan laatste bericht dat ik hier geplaatst heb, maar ik kan je wel vertellen dat het samen top werkt.
De ER4 is voor me tv/media en me UDMP regelt het rest van het internet. Moet alleen nog tv op eth2 werkend krijgen.
Ik krijg als ik in de buurt van mijn AP sta 500mb download op mijn 5gh.
Ik weet alleen niet of het config dat ik eerder geplaatst heb ook werkt met de ERX?

https://drive.google.com/file/d/1bD3A2yHp8HVlBnULoMo9-lfPnwrgriBh/view?usp=sharing

@EdwinUDMP
Copy link

@RT-81
Het kost inderdaad heel veel tijd om alles uit te zoeken. Ik heb nu uiteindelijk mijn EdgeRouter X geconfigureerd voor IPTV en internet. Op dit forum kun je diverse configuratiebestanden compleet downloaden en in de juiste map zetten op je EdgeRouter. (meerdere modellen) https://forum.kpn.com/thuisnetwerk-72/gebruik-een-eigen-router-i-p-v-de-experia-box-458609
Dit werkt bij mij prima, maar helaas staat mijn UDM Pro nu buitenspel. Ik zou graag willen dat mijn EdgeRouter X alleen het IPTV stukje doet en het internet volledig door m'n UDM Pro wordt afgehandeld. Mag ik vragen hoe jij je internet gedeelte hebt geconfigureerd? Ik neem aan dat je je UDM Pro via de WAN poort hebt aangesloten op één van de LAN poorten van je EdgeRouter 4? Heb je dan VLAN 6 compleet geforward op de één of andere manier?

Mvgr. Edwin

@Ruben-E
Copy link
Author

Ruben-E commented Feb 24, 2021

Grappig om te zien hoe er ineens veel activiteit kan zijn op m'n braindump van toen ik het opzette :).

@diademiemi @RT-81 Over TV issues: ik heb helaas geen TV abbo meer en kan dus ook niet checken of dit nog werkt. Het heeft wel gewerkt. Ik zal eens kijken of ik verschillen kan vinden in jullie configs die dit kunnen verklaren. Maar aangezien ik al 2 jaar geen tv meer afneem, wordt dat wellicht lastig.

Je zou ook eens de config met hier kunnen vergelijken. Ik neem aan dat daar tv zonder issues zou moeten werken...

@Ruben-E
Copy link
Author

Ruben-E commented Feb 24, 2021

@diademiemi Ik zie wel wat verschillen maar of dat de oplossing is. Wellicht kom je verder met de config op dit topic. Check de verschillen, pas ze toe en dan zou het een keer moeten gaan werken (hopelijk :) ).

Heb je er trouwens nog een switch tussen zitten en zo ja heeft deze wel IGMP snooping?

@Ruben-E
Copy link
Author

Ruben-E commented Feb 24, 2021

@Ryben-E

Voor alleen internet is de UDMP een aanrader, zou hem ondanks dat de tv niet werkt, niet weg doen.
Snelheid over de ER4 is rond de 400down/560up.
Het rare is als ik de speedtest start en naar een andere tab ga en dan na 20sec weer terug, heb ik een snelheid van rond 504/560.
Volgens mij heb ik hardware offloading aanstaan, ik moet alleen de tv nog werkend krijgen op eth2.

Dit is bedraad internet trouwens?

@diademiemi
Copy link

Sorry! Ik heb dit sinds opgelost. Ik zal mijn configuratie doorsturen. Een probleem waar ik tegen opkwam was deze twee regels:

client-option "send vendor-class-identifier "IPTV_RG";"
client-option "request subnet-mask, routers, rfc3442-classless-static-routes;"

Ik moest dit veranderen naar:

client-option "send vendor-class-identifier "IPTV_RG";"
client-option "request subnet-mask, routers, rfc3442-classless-static-routes;"

Toen pas kon ik een adres krijgen en routes instellen. Er waren ook problemen met de firewall vermoed ik.
Mijn config is als volgt:
eth0: WAN
eth1: 192.168.2.254/24 (Staat aan een switch aangesloten)
eth2-4: 192.168.1.254/24 (Bevat IPTV)

config.boot

firewall {
    all-ping enable
    broadcast-ping disable
    ipv6-name WANv6_IN {
        default-action drop
        description "WAN inbound traffic forwarded to LAN"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related sessions"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description "Allow IPv6 icmp"
            icmpv6 {
                type echo-request
            }
            protocol ipv6-icmp
        }
    }
    ipv6-name WANv6_LOCAL {
        default-action drop
        description "WAN inbound traffic to the router"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related sessions"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description "Allow IPv6 icmp"
            protocol ipv6-icmp
        }
        rule 40 {
            action accept
            description "allow dhcpv6"
            destination {
                port 546
            }
            protocol udp
            source {
                port 547
            }
        }
    }
    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 accept
            description "Allow established/related"
            log enable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            log enable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "WAN to router"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        description FTTH
        duplex auto
        mtu 1512
        speed auto
        vif 4 {
            address dhcp
            description "KPN IPTV"
            dhcp-options {
                client-option "send vendor-class-identifier "IPTV_RG";"
                client-option "request subnet-mask, routers, rfc3442-classless-static-routes;"
                default-route no-update
                default-route-distance 210
                name-server update
            }
            mtu 1500
        }
        vif 6 {
            description "eth0.6 - Internet"
            mtu 1508
            pppoe 0 {
                default-route auto
                dhcpv6-pd {
                    no-dns
                    pd 0 {
                        interface switch0 {
                            host-address ::1
                        }
                        interface switch0.1 {
                            host-address ::1
                            no-dns
                            prefix-id :1
                            service slaac
                        }
                        interface switch0.2 {
                            host-address ::1
                            prefix-id :2
                            service slaac
                        }
                        interface switch0.3 {
                            host-address ::1
                            no-dns
                            prefix-id :3
                            service slaac
                        }
                        interface switch0.4 {
                            host-address ::1
                            no-dns
                            prefix-id :4
                            service slaac
                        }
                        prefix-length /48
                    }
                    rapid-commit enable
                }
                firewall {
                    in {
                        ipv6-name WANv6_IN
                        name WAN_IN
                    }
                    local {
                        ipv6-name WANv6_LOCAL
                        name WAN_LOCAL
                    }
                }
                idle-timeout 180
                ipv6 {
                    address {
                        autoconf
                    }
                    dup-addr-detect-transmits 1
                    enable {
                    }
                }
                mtu 1500
                name-server auto
                password kpn
                user-id -----@internet
            }
        }
    }
    ethernet eth1 {
        address 192.168.2.254/24
        description LAN2
        duplex auto
        mtu 1500
        speed auto
    }
    ethernet eth2 {
        description "eth2 - LAN"
        duplex auto
        mtu 1500
        speed auto
    }
    ethernet eth3 {
        description "eth3 - LAN"
        duplex auto
        mtu 1500
        speed auto
    }
    ethernet eth4 {
        description "eth4 - LAN"
        duplex auto
        mtu 1500
        speed auto
    }
    loopback lo {
    }
    switch switch0 {
        address 192.168.1.254/24
        description LAN
        mtu 1500
        switch-port {
            interface eth2 {
            }
            interface eth3 {
            }
            interface eth4 {
            }
            vlan-aware disable
        }
        vif 1 {
            ipv6 {
                dup-addr-detect-transmits 1
                router-advert {
                    cur-hop-limit 64
                    link-mtu 0
                    managed-flag false
                    max-interval 600
                    name-server 2001:4860:4860::8888
                    name-server 2001:4860:4860::8844
                    other-config-flag false
                    prefix ::/64 {
                        autonomous-flag true
                        on-link-flag true
                        valid-lifetime 2592000
                    }
                    reachable-time 0
                    retrans-timer 0
                    send-advert true
                }
            }
        }
    }
}
port-forward {
## REDACTED
    wan-interface pppoe0
}
protocols {
    igmp-proxy {
        interface eth0.4 {
            alt-subnet 0.0.0.0/0
            role upstream
            threshold 1
        }
        interface switch0 {
            alt-subnet 0.0.0.0/0
            role downstream
            threshold 1
        }
    }
    static {
        interface-route6 ::/0 {
            next-hop-interface pppoe0 {
            }
        }
        route 213.75.112.0/21 {
            next-hop 10.138.88.1 {
            }
        }
    }
}
service {
    dhcp-server {
        disabled false
        global-parameters "option vendor-class-identifier code 60 = string;"
        global-parameters "option broadcast-address code 28 = ip-address;"
        hostfile-update disable
        shared-network-name LAN {
            authoritative enable
            subnet 192.168.1.0/24 {
                default-router 192.168.1.254
                dns-server 192.168.2.250
                lease 86400
                start 192.168.1.50 {
                    stop 192.168.1.200
                }
            }
        }
        shared-network-name LAN2 {
            authoritative disable
            subnet 192.168.2.0/24 {
                default-router 192.168.2.254
                dns-server 192.168.2.250
                lease 86400
                start 192.168.2.129 {
                    stop 192.168.2.222
                }
            }
        }
        static-arp disable
        use-dnsmasq enable
    }
    gui {
        http-port 80
        https-port 443
        older-ciphers enable
    }
    nat {
        rule 5000 {
            description IPTV
            destination {
                address 213.75.112.0/21
            }
            log disable
            outbound-interface eth0.4
            protocol all
            source {
                address 192.168.1.0/24
            }
            type masquerade
        }
        rule 5010 {
            description "KPN Internet"
            log enable
            outbound-interface pppoe0
            protocol all
            source {
                address 192.168.1.0/24
            }
            type masquerade
        }
        rule 5012 {
            description "KPN Internet"
            log enable
            outbound-interface pppoe0
            protocol all
            source {
                address 192.168.2.0/24
            }
            type masquerade
        }
    }
    ssh {
        port 1111
        protocol-version v2
    }
    unms {
        disable
    }
    upnp {
        listen-on switch0 {
            outbound-interface pppoe0
        }
    }
}
system {
    host-name ubnt
    login {
        user ubnt {
            authentication {
## REDACTED
                }
            }
            level admin
        }
    }
    name-server 193.138.218.74
    name-server 9.9.9.9
    name-server 88.198.92.222
    name-server 174.138.21.128
    name-server 149.112.112.112
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        hwnat enable
        ipsec enable
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone UTC
    traffic-analysis {
        dpi enable
        export enable
    }
}

\```

</p>
</details>

@RT-81
Copy link

RT-81 commented Feb 25, 2021

@EdwinUDMP
Ik heb op de SFP poort (eth3) van de ER4 aangesloten op de WAN SFP+ poort van de UDMP.
Van Eth 1 t/m 3, LAN 1 t/m 3 gemaakt om het makkelijk te houden in het config bestand.
Het is zeker jammer dat de UDMP niet gelijk op de WAN zit, het werkt verder wel goed op het moment.
Helaas zit je nu wel met een dubbelen firewall.

@Ruben-E
Klopt het is bedraads.
Wifi snelheid hangt af van de afstand van de AP en hoeveel vloeren en muren er tussen zitten.
Op het moment nog maar één AP hangen op de eerste verdieping.
Op de eerste verdieping zit ik met een snelheid rond 500/300, begaande grond 400/200, zolder 160/140.
Kwa bereik vind ik de Unifi AP wel tegen vallen, had ze sterker verwacht, maar draaien wel stabiel en zijn zeer snel.

@diademiemi
Goed om te horen dat het gelukt is en ook bedankt voor je config.
Ik heb volgende week een paar dagen vrij en ga hem dan bekijken.
Hoop dat ik dan tv ook werkend krijg op eth2.

@EdwinUDMP
Copy link

@RT-81
Thx. Ik ga het dan zo ook maar proberen. Bij mij zal dat dan eth2 worden. Op eth1 zit IPTV bekabeld met een speciaal subnet voor het IPTV gedeelte. Ik zal de dhcp scope op eth2 dan maar beperken tot één IP-adres op m'n EdgeRouter X, zodat m'n UDMP dat ene IP adres krijgt. Op de UDMP dan een apart VLAN maken voor de rest van m'n LAN verkeer. Ik hoop wel dat Ubiquiti het configureren van meerdere VLAN's op de WAN poort binnenkort gaat ondersteunen op de UDMP. Evenals de uitgebreide DHCP options en IGMP proxy die mijn ERX van 60 tientjes wèl ondersteund....

@Raffytje
Copy link

Goedemorgen,

Ik heb een Edgerouter-X draaien op een KPN glasvezel verbinding. Met de firmware versie 2.0.8 werkt het KPN TV kastje en geeft hij gewoon beeld en geluid zoals het hoort.

Zodra ik deze Edgerouter-X voorzie van de firmware versie 2.0.9 hotfix 1 of hotfix 2, dan loopt het KPN TV kastje binnen 1 minuut na opstarten vast. Beeld blijft hangen en geluid valt weg. Ik heb ook na een uurtje de "IGMP Proxy server" via CLI van de Edgerouter X herstart. Ook dat gaf geen verandering.

De configs van de 2.0.8 en de 2.0.9 installaties met elkaar vergeleken en deze waren identiek. Ik weet dat in de 2.0.9 versie de IGMP Proxy geupdate is naar een nieuwere versie.

Heeft iemand een idee wat er anders ingesteld moet worden in de config als je de 2.0.9 firmware gebruikt?

@RT-81
Copy link

RT-81 commented Jun 24, 2021

Goedemiddag,

Dit heb ik ook al een paar keer gehad bij een firmware update van een Edgeroute.
Ik heb dit verholpen door na het installeren van de firmware en reboot van de router.
Nog een reboot te doen en zet ik ook het KPN kastje helemaal uit.
Pas als de router volledig is opgestart, schakel ik het KPN kastje weer in en werkt alles na een paar minuten weer naar behoren.

Veel sterkte!

@Raffytje
Copy link

Goedemiddag,

Dit heb ik ook al een paar keer gehad bij een firmware update van een Edgeroute.
Ik heb dit verholpen door na het installeren van de firmware en reboot van de router.
Nog een reboot te doen en zet ik ook het KPN kastje helemaal uit.
Pas als de router volledig is opgestart, schakel ik het KPN kastje weer in en werkt alles na een paar minuten weer naar behoren.

Veel sterkte!

Hi RT-81,

Nog een reboot + uitschakelen KPN kastje uitgeprobeerd. Het probleem bleef erna bestaan.

Ik had de vraag ook op het forum van KPN geplaatst. Daar kwam het advies om de KPN TV ontvangers in een apart VLAN te hangen.
https://forum.kpn.com/thuisnetwerk-72/gebruik-een-eigen-router-i-p-v-de-experia-box-458609?postid=1275408#post1275408

Dat ga ik binnenkort maar eens opzetten in mijn Edgerouter.

@Ruben-E
Copy link
Author

Ruben-E commented Jun 24, 2021

Een TV abonnement heb ik al een tijdje niet meer, en sinds kort ook geen Edgerouter meer (nouja alleen als backup dan). Ben overgestapt op OPNSense.

Anyway, probeer eens het kastje van KPN (NTU) een minuut of 10 of langer uit te zetten. Wellicht werkt het daarna wel.
Jouw reactie en die van @RT-81 herinnerde mij aan een probleem dat ik had bij het overstappen op OPNSense.

Ik had OPNSense ingericht, ongeveer zelfde instellingen als de Edgerouter, instellingen zouden dus goed moeten zijn. Eenmaal klaar om over te stappen op OPNSense dacht ik even snel de kabel van NTU om te prikken van ER naar OPN om zo min mogelijk downtime te hebben. Geen netwerk op OPN... Niet eens een IP... PPPoE had timeouts. Snapte er niets van, zeker die instellingen waren 1-op-1 gelijk.
Ik NTU een reboot gegeven, nog steeds timeouts en geen IP.

Uiteindelijke oplossing was een minuut of 10 (dacht ik, misschien iets langer), de NTU van het stroom halen. Blijkbaar was er nog iets van een sessie open naar de ER (ofzoiets, geen idee hoe dat precies zit).

Kortom, langer van het stroom kan helpen 😉

Edit: situatie is wel anders trouwens, zo te lezen heb je nog wel internet?

@Raffytje
Copy link

Een TV abonnement heb ik al een tijdje niet meer, en sinds kort ook geen Edgerouter meer (nouja alleen als backup dan). Ben overgestapt op OPNSense.

Anyway, probeer eens het kastje van KPN (NTU) een minuut of 10 of langer uit te zetten. Wellicht werkt het daarna wel.
Jouw reactie en die van @RT-81 herinnerde mij aan een probleem dat ik had bij het overstappen op OPNSense.

Ik had OPNSense ingericht, ongeveer zelfde instellingen als de Edgerouter, instellingen zouden dus goed moeten zijn. Eenmaal klaar om over te stappen op OPNSense dacht ik even snel de kabel van NTU om te prikken van ER naar OPN om zo min mogelijk downtime te hebben. Geen netwerk op OPN... Niet eens een IP... PPPoE had timeouts. Snapte er niets van, zeker die instellingen waren 1-op-1 gelijk.
Ik NTU een reboot gegeven, nog steeds timeouts en geen IP.

Uiteindelijke oplossing was een minuut of 10 (dacht ik, misschien iets langer), de NTU van het stroom halen. Blijkbaar was er nog iets van een sessie open naar de ER (ofzoiets, geen idee hoe dat precies zit).

Kortom, langer van het stroom kan helpen 😉

Edit: situatie is wel anders trouwens, zo te lezen heb je nog wel internet?

Ik heb wel gewoon internet inderdaad. Het is puur de IP TV oplossing die niet werkt met de nieuwe versie.
Op dit moment heb ik al diverse VLAN's in mijn config zitten. Een VLAN extra voor de IP TV decoders kan er nog wel bij. Ik moet het alleen even goed plannen zodat ik geen ruzie krijg met mijn vrouw en/of kinderen, aangezien de TV en het internet er dan mogelijk tijdelijk uitliggen ;-)

Copy link

ghost commented Sep 15, 2021

Interessant! Ik heb even gekeken naar de rules m.b.t. IPv6.

set firewall ipv6-name WANv6_LOCAL rule 20 state invalid enable
set firewall ipv6-name WANv6_LOCAL rule 30 action accept
set firewall ipv6-name WANv6_LOCAL rule 30 description "Allow IPv6 icmp"
set firewall ipv6-name WANv6_LOCAL rule 30 protocol ipv6-icmp

Deze maak je ook aan voor WANv6_IN zie ik hier. Dit is dan wel beperkt tot een Echo request naar LAN, terwijl echo incoming in principe niet heel belangrijk is. Daarnaast zijn packet-too-big en parameter-problem niet opgenomen en wel belangrijk. RFC: https://datatracker.ietf.org/doc/html/rfc4890

De types op basis van het voorbeeld in de RFC die opgenomen kunnen worden in WANv6_LOCAL en WANv6_IN:

echo-request
parameter-problem
time-exceeded
packet-too-big
destination-unreachable

De standaard ICMPv6 rule kan dan weg richting de router, omdat we het dan beperken tot de types hierboven.
delete firewall ipv6-name WANv6_LOCAL rule 30

@Porthos-development
Copy link

Mocht je nog tegen een issue aanlopen sinds 15-10-2021 zag ik dat er een aapassing was geweest waardoor mijn Edgerouter X veel meer geheugen verbruikt. Tevens gaf de GUI aan dat er een config reload was geweest waardoor de GUI een refresh nodig had. Dit was elke 5 min.

eth0 is mijn WAN interface richting mijn NTU.

Nu blijkt dat ik in mijn config de task scheduler(elke 5min) het volgende had staan:
cat /config/scripts/tvroute.sh

#!/bin/vbash

# configured static route target
CUR_IP=$(cat /config/config.boot | grep 213.75.112.0/21 -A1 | grep next-hop | awk '{ print $2}');

# static route target
NEW_IP=$(cat /var/run/dhclient_eth0.4_lease | grep router | awk -F= '{print $2}' | tr -d \');

if [ "$CUR_IP" = "$NEW_IP" ]; then
   echo Addresses the same
   exit 1;
fi

source /opt/vyatta/etc/functions/script-template

configure
delete protocols static route 213.75.112.0/21 next-hop $CUR_IP
set protocols static route 213.75.112.0/21 next-hop $NEW_IP
commit
save
exit

restart igmp-proxy

na uitzoeken blijkt dat er geen nieuwe route meer binnen komt. Dit heb ik opgelost door:

Door de huidige code
NEW_IP=$(cat /var/run/dhclient_eth0.4_lease | grep router | awk -F= '{print $2}' | tr -d \');

Te vervangen door onderstaande code
NEW_IP=$(cat /var/run/dhclient_eth0.4_lease | grep new_dhcp_server_identifier | awk -F= '{print $2}' | tr -d \');

@pinkmoon84
Copy link

pinkmoon84 commented Jan 5, 2022

@Allroundhosting bedoel je dat er aan de kant van KPN een wijziging heeft plaatsgevonden? Hier enkele maanden regelmatig dat het internet eruit klapt, soft reset nodig om de boel weer draaiende te krijgen (edge router lite + unifi switches).

@3JL
Copy link

3JL commented Jan 12, 2022

FYI - to enable resolving local hostnames, I had to add the router IP to the name servers listed under switch 0, see below.
I think there must be a more elegant way... But this did the trick for me for now. Best!

set interfaces switch switch0 vif 1 ipv6 dup-addr-detect-transmits 1
set interfaces switch switch0 vif 1 ipv6 router-advert cur-hop-limit 64
set interfaces switch switch0 vif 1 ipv6 router-advert link-mtu 0      
set interfaces switch switch0 vif 1 ipv6 router-advert managed-flag false
set interfaces switch switch0 vif 1 ipv6 router-advert max-interval 600  
set interfaces switch switch0 vif 1 ipv6 router-advert name-server <fill in router-ip>
set interfaces switch switch0 vif 1 ipv6 router-advert name-server 2001:4860:4860::8888
set interfaces switch switch0 vif 1 ipv6 router-advert name-server 2001:4860:4860::8844
set interfaces switch switch0 vif 1 ipv6 router-advert other-config-flag false         
set interfaces switch switch0 vif 1 ipv6 router-advert prefix ::/64 autonomous-flag true
set interfaces switch switch0 vif 1 ipv6 router-advert prefix ::/64 on-link-flag true   
set interfaces switch switch0 vif 1 ipv6 router-advert prefix ::/64 valid-lifetime 2592000
set interfaces switch switch0 vif 1 ipv6 router-advert reachable-time 0                   
set interfaces switch switch0 vif 1 ipv6 router-advert retrans-timer 0 
set interfaces switch switch0 vif 1 ipv6 router-advert send-advert true
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface switch0.1 host-address ::1
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface switch0.1 prefix-id :1    
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface switch0.1 no-dns      
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface switch0.1 service slaac
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface switch0.2 host-address ::1
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface switch0.2 prefix-id :2  
set interfaces ethernet eth0 vif 6 pppoe 0 dhcpv6-pd pd 0 interface switch0.2 service slaac

@nikagersonlohman
Copy link

De volgende regels kloppen niet meer:
pppoe_id=$(ifconfig | grep -m 1 eth0 | awk '{print $5}' | awk -F':' '{print "set interfaces ethernet eth0 vif 6 pppoe 0 user-id "$1"-"$2"-"$3"-"$4"-"$5"-"$6"@internet"}')
en
r_ip=$(show dhcp client leases | grep router | awk '{ print $3 }');

Voor de eerste heb ik het mac-adres met de hand eruit gehaald (volgende regel in de ifconfig output van eth0).

Voor de tweede heb ik de regel elders in deze thread gebruikt:
r_ip=$(cat /var/run/dhclient_eth0.4_lease | grep new_dhcp_server_identifier | awk -F= '{print $2}' | tr -d \');

@ricardosilva86
Copy link

hey bro, thx a lot for this... it will save me a lot of time. QQ: the TV still doesn't work with EdgeRouterX?

@Ruben-E
Copy link
Author

Ruben-E commented Mar 31, 2023

Np! I don't know tbh. I dont have television included anymore for a while and also not using the edgerouter anymore. Switched to a custom built router with OPNsense

@mirno
Copy link

mirno commented Jun 29, 2023

Thank you Ruben ! This helped a lot!

I thought the EdgeRouterX didn't support the hardware offloading:

config_user824@ubnt# set system offload ipv4 forwarding enable 
Error: platform does not support IPv4 forwarding offload

From this section:

configure
 
set system offload ipv4 forwarding enable
set system offload ipv4 pppoe enable
set system offload ipv4 vlan enable
 
commit
save
exit

I simply configured following:

configure

set system offload hwnat enable
set system offload ipsec enable

commit ; save

From: https://help.ui.com/hc/en-us/articles/115006567467-EdgeRouter-Hardware-Offloading


Still new with ubiquiti hardware so I need to figure out a lot first. Access point was automatically integrated whenever using the app without manual config. I thought I needed to change some settings in the Edge router X.

I was thinking of making some ansible-playbooks with different configuration files for certain settings. The thing is this ETH0 configuration will not work when changing provider for example.

Last point:
Anyone else having difficulties when using the app / network application ? I cannot find my devices using these applications. I suspected the FW settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment