Hello everyone.
This is my first post to the forum. I’ve been a silent reader for some time but now I felt to give something back.
I’m in the middle of a change of my ISP and I’ve had a hard time the last few weeks getting the provided Fritz!Box replaced by RouterOS (A spare one at the moment, but intention was a proof of concept.)
I could not have done this without this forum. A big thank you!
Up to now, I’ve vodafone via cable as my ISP (Germany (NRW)). I have the modem in bridge mode where it’s not capable of IPv6, so I got a public IPv4 and was happy.
My new provider is Deutsche Giganetz (NOT Deutsche Glasfaser), fibre connection who only does DS-Lite. DS is possible, but at extra costs of 3,90€/month.
Deutsche Giganetz seems to be a reseller of PURtel in germany.
The reason why I’m writing to this post is that it’s the newest one I could find and many others were very helpful but I always found stuff like “needs tweaking” or else. Additionally, somewhere else I read that KPN fibre is supposed to be quite similar to Deutsche Giganetz.
Long story short, It’s working for me (99%).
The most trouble I had was getting traffic through the IPIP6 tunnel other than ping or traceroute. It was possible to ping but websites in browser showed timeouts, even if freemail.de turned to web.de in address bar. IPv6 capable websites worked without problems.
Here is my full config
# 2024-08-01 18:13:36 by RouterOS 7.16beta7
# software id = CTR1-WKHM
#
# model = RB960PGS
# serial number = HEQ0999N8T6
/interface bridge
add admin-mac=78:9A:18:08:52:63 auto-mac=no comment=defconf name=bridge
/interface ipipv6
add clamp-tcp-mss=no !keepalive local-address=:: name=dslite remote-address=\
aftr.fra.purtel.com
/interface vlan
add interface=ether1 name=vlan7-ether1 vlan-id=7
/interface pppoe-client
add add-default-route=yes allow=chap disabled=no interface=vlan7-ether1 name=\
pppoe-out1 password=XXXXX use-peer-dns=yes user=\
XXXXX@dgn.digital
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
/ip dhcp-server
add address-pool=default-dhcp interface=bridge name=defconf
/disk settings
set auto-media-interface=bridge auto-media-sharing=yes auto-smb-sharing=yes
/interface bridge port
add bridge=bridge comment=defconf interface=ether2 trusted=yes
add bridge=bridge comment=defconf interface=ether3 trusted=yes
add bridge=bridge comment=defconf interface=ether4 trusted=yes
add bridge=bridge comment=defconf interface=ether5 trusted=yes
add bridge=bridge comment=defconf interface=sfp1
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ipv6 settings
set accept-router-advertisements=yes
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf disabled=yes interface=ether1 list=WAN
add disabled=yes interface=pppoe-out1 list=WAN
add interface=dslite list=WAN
/ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=\
192.168.88.0
add address=192.0.0.2/29 interface=dslite network=192.0.0.0
/ip dhcp-client
add comment=defconf disabled=yes interface=ether1
/ip dhcp-server network
add address=192.168.88.0/24 comment=defconf dns-server=192.168.88.1 gateway=\
192.168.88.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan type=A
/ip firewall filter
add action=accept chain=input comment=\
"defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept ICMP" protocol=tcp
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \
protocol=udp
add action=accept chain=input comment="defconf: accept SIP" dst-port=5060 \
protocol=udp
add action=accept chain=input comment=\
"defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
connection-state=established,related hw-offload=yes
add action=accept chain=forward comment=\
"defconf: accept established,related, untracked" connection-state=\
established,related,untracked log-prefix="ipv4: "
add action=drop chain=forward comment="defconf: drop invalid" \
connection-state=invalid log-prefix="ipv4 drop: "
add action=drop chain=forward comment=\
"defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
connection-state=new in-interface-list=WAN
/ip firewall mangle
add action=change-mss chain=forward comment="Rule to crop MSS for DGN" \
new-mss=1424 out-interface=dslite passthrough=no protocol=tcp tcp-flags=\
syn tcp-mss=1460-65535
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" disabled=yes \
ipsec-policy=out,none log=yes log-prefix="IP4 masq: " out-interface-list=\
WAN
/ip firewall service-port
set sip disabled=yes
/ip hotspot profile
set [ find default=yes ] html-directory=hotspot
/ip ipsec policy
set 0 disabled=yes
/ip ipsec profile
set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5
/ip route
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=192.0.0.1 \
routing-table=main scope=30 suppress-hw-offload=no target-scope=10
/ipv6 address
add disabled=yes from-pool=pool-pd interface=bridge
add address=::1 from-pool=pool-pd interface=bridge
/ipv6 dhcp-client
add interface=pppoe-out1 pool-name=pool-pd pool-prefix-length=56 request=\
prefix
/ipv6 dhcp-server
add address-pool=pool-pd disabled=yes interface=bridge name=server1
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment=\
"defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\
icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" \
dst-port=33434-33534 protocol=udp
add action=accept chain=input comment=\
"defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\
udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \
protocol=udp
add action=accept chain=input comment="defconf: accept SIP" dst-port=5060 \
protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\
ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\
ipsec-esp
add action=accept chain=input comment=\
"defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=\
"defconf: drop everything else not coming from LAN" in-interface-list=\
!LAN
add action=accept chain=forward comment=\
"defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
connection-state=invalid
add action=drop chain=forward comment=\
"defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=\
"defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \
hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\
icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=\
500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\
ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\
ipsec-esp
add action=accept chain=forward comment=\
"defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=\
"defconf: drop everything else not coming from LAN" in-interface-list=\
!LAN
/ipv6 firewall nat
add action=masquerade chain=srcnat log=yes log-prefix="ipv6: " \
out-interface-list=WAN
/ipv6 nd
add disabled=yes interface=bridge
/system note
set show-at-login=no
/system package update
set channel=development
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
I hope I did the code tags right.
The default config has been pretty much left alone, except for the interfaces.
I’d also appreciate if someone could give me a hint what to tweak and how. Right now I’m happy that it works, even with a registered SIP-client in LAN.
the 1% that is not working right now is, that this config does not survive a reboot. dslite interface comes up too early before pppoe-out1 and IPv6 dhcp-client is fully up. I have to disable and than enable the dslite.
If someone has a hint how to achieve that automatically, I’d be happy.
So hopefully I did the code tags right and this post will help someone.
Thank you!