Category Archives: kpn

KPN Experiabox (VDSL) vervangen door Draytek Vigor 130 en Ubiquiti EdgeRouter Lite

In deze blog post beschrijf ik hoe je de Experiabox van KPN kan vervangen door een eigen modem met router. Na onderzoek heb ik de Draytek Vigor 130 (modem) en Ubiquiti EdgeRouter Lite (router) aangeschaft.

De configuratie is best ingewikkeld en met hulp van kriegsman.io en Gathering of Tweakers is het me gelukt om interactieve TV en internet volledig aan de praat te krijgen met de maximale snelheid die mogelijk is op de lijn (zelf nog hoger dan de theoretische down/up snelheid van mijn abonnement (100 down/10 up)).

Vaste telefonie gebruik ik niet van KPN. Ik heb hiervoor een VOIP account bij Cheap Connect (gesprekskosten zijn een stuk lager en je hebt meer mogelijkheden).

Configuratie Draytek Vigor 130

Ik heb de firmware 3.8.1.2 geïnstalleerd. Ik heb gekozen voor de versie in de Modem 8 map (voor VDSL Vectoring verbindingen).

In het admin scherm van de Draytek Vigor 130 hoef je alleen in het scherm Internet Access >> MPoA/Static or Dynamic IP de optie Enable Bridge Mode aan te vinken. Controleer of de MTU waarde op 1500 staat (zou standaard op 1500 moeten staan).

Configuratie Ubiquiti EdgeRouter Lite

Zoals eerder aangegeven heb ik de kriegsman.io tutorial gevolgd en een aantal zaken anders geconfigureerd. Hieronder volgt de volledige configuratie zoals deze in mijn router staat.

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
            }
        }
    }
    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 1 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop invalid state"
            log disable
            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 1 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    options {
        mss-clamp {
            mss 1452
        }
        mss-clamp6 {
            mss 1432
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        description "eth0 - WAN"
        duplex auto
        mtu 1516
        speed auto
        vif 4 {
            address dhcp
            description "eth0.4 - 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
            }
        }
        vif 6 {
            description "eth0.6 - internet"
            mtu 1508
            pppoe 0 {
                default-route auto
                dhcpv6-pd {
                    no-dns
                    pd 0 {
                        interface eth1 {
                            prefix-id 1
                            service slaac
                        }
                        prefix-length /48
                    }
                    rapid-commit disable
                }
                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 <MAC ADRES VAN JOUW EXPERIABOX>@internet
            }
        }
    }
    ethernet eth1 {
        address 192.168.2.1/24
        description "eth1 - internet"
        duplex auto
        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
                }
                radvd-options "RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 {};"
                reachable-time 0
                retrans-timer 0
                send-advert true
            }
        }
        speed auto
    }
    ethernet eth2 {
        address 192.168.2.50/24
        disable
        duplex auto
        firewall {
            out {
            }
        }
        speed auto
    }
    loopback lo {
    }
}
port-forward {
    auto-firewall enable
    hairpin-nat enable
    lan-interface eth1
    wan-interface pppoe0
}
protocols {
    igmp-proxy {
        interface eth0.4 {
            alt-subnet 10.16.12.0/16
            alt-subnet 213.75.0.0/16
            role upstream
            threshold 1
        }
        interface eth1 {
            role downstream
            threshold 1
        }
    }
    static {
        interface-route6 ::/0 {
            next-hop-interface pppoe0 {
            }
        }
        route 213.75.112.0/21 {
            next-hop 10.87.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 Thuisnetwerk {
            authoritative disable
            subnet 192.168.2.0/24 {
                default-router 192.168.2.1
                dns-server 192.168.2.1
                lease 86400
                start 192.168.2.100 {
                    stop 192.168.2.254
                }
            }
        }
        use-dnsmasq disable
    }
    dns {
        forwarding {
            cache-size 150
            listen-on eth1
            name-server 8.8.8.8
            name-server 8.8.4.4
            options listen-address=192.168.2.1
        }
    }
    gui {
        http-port 80
        https-port 8443
        older-ciphers enable
    }
    nat {
        rule 5000 {
            description IPTV
            destination {
                address 213.75.112.0/21
            }
            log disable
            outbound-interface eth0.4
            protocol all
            type masquerade
        }
        rule 5010 {
            description "KPN Internet"
            log enable
            outbound-interface pppoe0
            protocol all
            source {
                address 192.168.2.0/24
            }
            type masquerade
        }
    }
    ssh {
        port 22
        protocol-version v2
    }
}
system {
    host-name ubnt
    login {
        user admin {
            authentication {
                encrypted-password <EEN GEENCRYPT WACHTWOORD>
                plaintext-password ""
            }
            level admin
        }
    }
    name-server 2001:4860:4860::8888
    name-server 2001:4860:4860::8844
    name-server 8.8.8.8
    name-server 8.8.4.4
    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 disable
        ipsec enable
        ipv4 {
            forwarding enable
            pppoe enable
            vlan enable
        }
        ipv6 {
            forwarding enable
            pppoe enable
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    task-scheduler {
        task updateIPTVroute {
            executable {
                path /config/scripts/tvroute.sh
            }
            interval 5m
        }
    }
    time-zone Europe/Amsterdam
    traffic-analysis {
        dpi enable
        export enable
    }
}

Voor iTV moet de statische route geconfigureerd worden. Gebruik hiervoor het script wat op kriegsman.io staat om het ip adres om de x minuten te vernieuwen (staat bovenaan de post van kriegsman.io).