# Generat per a:
# RouterOSv5.x
:log info "Unsolclic for 36743-BCN-MDMRBGuifi going to be executed."
#
# Configuration for RouterOSv5.x
# Trasto: 36743-BCN-MDMRBGuifi
#
# Methods to upload/execute this script:
# 1.-As a script. Upload this output as a script either with:
#     a.Winbox (with Linux, wine required)
#     b.Terminal (telnet, ssh...)
#    Then execute the script with:
#      > /system script run script_name
# 2.-Fitxer importat:
#     Desa aquesta "sortida" a un fitxer, després puja'l al router
#     fent servir FTP amb un nom de l'estil "script_name.rsc".
#     (note, l'extensió ".rsc" es un requisit)
#     Executa el fitxer importat amb la comanda:
#      > /import script_name
# 3.-Telnet copia i enganxar:
#     Open a terminal session, and cut&paste this output
#     directly on the terminal input.
#
# Notes:
# -routing-test package is required if you use RouterOSv2.9 , be sure you have it enabled at system packages
# -wlans should be enabled manually, be sure to set the correct antenna (a or b)
#   according in how did you connect the cable to the miniPCI. Keep the
#   power at the minimum possible and check the channel.
# -The script doesn't reset the router, you might have to do it manually
# -You must have write access to the router
# -MAC access (winbox, MAC telnet...) method is recommended
#   (the script reconfigures some IP addresses, so communication can be lost)
# -No changes are done in user passwords on the device
# -A Read Only guest account with no password will be created to allow guest access
#   to the router with no danger of damage but able to see the config.
# -Be sure that all packages are activated.
# -Don't run the script from telnet and being connected through an IP connection at
#   the wLan/Lan interface: This interface will be destroyed during the script.
#
/ system identity set name=BCN-MDMRBGuifi
#
# DNS (client & server cache) zone: 2436
/ip dns set servers=10.228.203.104,10.139.94.98 allow-remote-requests=yes
:delay 1
#
# NTP (client & server cache) zone: 2436
/system ntp client set enabled=yes mode=unicast primary-ntp=10.228.203.104 secondary-ntp=10.228.192.212
:delay 1
#
# Bandwidth-server
/ tool bandwidth-server set enabled=yes authenticate=no allocate-udp-ports-from=2000
#
# SNMP
/snmp community set public addresses=10.0.0.0/8
/snmp set contact="guifi@guifi.net" enabled=yes location="MareDeuMontserrat" trap-community=public
#
# Guest user
/user
:foreach i in [find group=read] do={/user remove $i;}
add name="guest" group=read address=10.0.0.0/8 comment="" disabled=no
#
# Graphing
/tool graphing interface add
# Remove current wLan/Lan bridge if exists
:foreach i in [/interface bridge find name=wLan/Lan] \
do={:foreach i in [/interface bridge port find bridge=wLan/Lan] \
do={/interface bridge port remove $i; \
:foreach i in [/ip address find interface=wLan/Lan] \
do={/ip address remove $i;};};
/interface bridge remove $i;}
# Construct main bridge on wlan1 & ether1
/ interface bridge
add name="wLan/Lan"
/ interface bridge port
add interface=ether1 bridge=wLan/Lan
add interface=wlan1 bridge=wLan/Lan
:delay 1
#
# Radio#: 0 MDMRB750AP0
/interface wireless set wlan1 name="wlan1" \
radio-name="MDMRB750AP0" mode=ap-bridge ssid="guifi.net-MDMRB750AP0" \
band="2ghz-b" channel-width=20mhz \
frequency-mode=regulatory-domain country=spain antenna-gain=14 \
dfs-mode=radar-detect \
antenna-mode=ant-a wds-mode=static wds-default-bridge=none wds-default-cost=100 \
wds-cost-range=50-150 wds-ignore-ssid=yes hide-ssid=no
:delay 1
# Type: wLan/Lan
/ip address
:foreach i in [find address="10.228.199.129/27"] do={remove $i}
/ ip address add address=10.228.199.129/27 network=10.228.199.128 broadcast=10.228.199.159 interface=wLan/Lan disabled=no
/ routing bgp network
:foreach i in [/routing bgp network find network=10.228.199.128/27] do={/routing bgp network remove $i;}
add network=10.228.199.128/27 synchronize=no disabled=no
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wLan/Lan] do={/routing ospf interface remove $i;}
add interface=wLan/Lan
/ routing ospf network
:foreach i in [/routing ospf network find network=10.228.199.128/27] do={/routing ospf network remove $i;}
add network=10.228.199.128/27 area=backbone disabled=no
:delay 1
#
# DHCP
:foreach i in [/ip pool find name=dhcp-wLan/Lan] do={/ip pool remove $i;}
/ip pool add name=dhcp-wLan/Lan ranges=10.228.199.135-10.228.199.158
:foreach i in [/ip dhcp-server find name=dhcp-wLan/Lan] do={/ip dhcp-server remove $i;}
/ip dhcp-server add name=dhcp-wLan/Lan interface=wLan/Lan address-pool=dhcp-wLan/Lan disabled=no
:foreach i in [/ip dhcp-server network find address="10.228.199.128/27"] do={/ip dhcp-server network remove $i;}
/ip dhcp-server network add address=10.228.199.128/27 gateway=10.228.199.129 domain=guifi.net comment=dhcp-wLan/Lan
/ip dhcp-server lease
:foreach i in [find comment=""] do={remove $i;}
:delay 1
add address=10.228.199.130 mac-address=00:00:00:00:00:00 client-id=BCNMDMRocket server=dhcp-wLan/Lan
add address=10.228.199.131 mac-address=00:00:00:00:00:00 client-id=BCNMDMRocketSud server=dhcp-wLan/Lan
add address=10.228.199.132 mac-address=00:00:00:00:00:00 client-id=BCNMDMGViaNB5 server=dhcp-wLan/Lan
#
:delay 1
# Type: wds/p2p
# Remove all existing wds interfaces
:foreach i in [/interface wireless wds find master-interface=wlan1] \
do={:foreach n in [/interface wireless wds get $i name] \
do={:foreach inum in [/ip address find interface=$n] \
do={/ip address remove $inum;};}; \
/interface wireless wds remove $i;}
/ interface wireless wds
add name="wds_BCNMr34" master-interface=wlan1 wds-address=00:45:G5:D3:67:21 disabled=no
/ ip address add address=172.25.59.194/30 network=172.25.59.192 broadcast=172.25.59.195 interface=wds_BCNMr34 disabled=no comment="wds_BCNMr34"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNMr34] do={/routing ospf interface remove $i;}
add interface=wds_BCNMr34
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.59.192/30] do={/routing ospf network remove $i;}
add network=172.25.59.192/30 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNMr34] do={/routing bgp peer remove $i;}
add name="BCNMr34" instance=default remote-address=172.25.59.193 remote-as=71612 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
/ interface wireless wds
add name="wds_BCNVnrs59" master-interface=wlan1 wds-address=00:0C:42:63:67:12 disabled=no
/ ip address add address=172.25.59.226/30 network=172.25.59.224 broadcast=172.25.59.227 interface=wds_BCNVnrs59 disabled=no comment="wds_BCNVnrs59"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNVnrs59] do={/routing ospf interface remove $i;}
add interface=wds_BCNVnrs59
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.59.224/30] do={/routing ospf network remove $i;}
add network=172.25.59.224/30 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNVnrs59] do={/routing bgp peer remove $i;}
add name="BCNVnrs59" instance=default remote-address=172.25.59.225 remote-as=72071 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
#
:delay 1
#
# Radio#: 1 BCNMDMRocket
/interface wireless set wlan2 name="wlan2" \
radio-name="BCNMDMRocket" mode=ap-bridge ssid="guifi.net-BCNMDMRocket" \
band="5ghz-a" channel-width=20mhz \
frequency-mode=regulatory-domain country=spain antenna-gain=16 \
frequency=5695 \
dfs-mode=none \
antenna-mode=ant-a wds-mode=static wds-default-bridge=none wds-default-cost=100 \
wds-cost-range=50-150 wds-ignore-ssid=yes hide-ssid=no
:delay 1
# Type: wdsBCNMDMRocket
# Remove all existing wds interfaces
:foreach i in [/interface wireless wds find master-interface=wlan2] \
do={:foreach n in [/interface wireless wds get $i name] \
do={:foreach inum in [/ip address find interface=$n] \
do={/ip address remove $inum;};}; \
/interface wireless wds remove $i;}
/ interface wireless wds
add name="wds_BCNrgntr" master-interface=wlan2 wds-address=D4:CA:6D:64:67:02 disabled=no
/ ip address add address=172.25.42.218/30 network=172.25.42.216 broadcast=172.25.42.219 interface=wds_BCNrgntr disabled=no comment="wds_BCNrgntr"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNrgntr] do={/routing ospf interface remove $i;}
add interface=wds_BCNrgntr
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.42.216/30] do={/routing ospf network remove $i;}
add network=172.25.42.216/30 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNrgntr] do={/routing bgp peer remove $i;}
add name="BCNrgntr" instance=default remote-address=172.25.42.217 remote-as=95863 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
/ interface wireless wds
add name="wds_BCNCamilOliveras26WDS4" master-interface=wlan2 wds-address=00:0C:42:C1:FA:79 disabled=no
/ ip address add address=172.25.44.81/29 network=172.25.44.80 broadcast=172.25.44.87 interface=wds_BCNCamilOliveras26WDS4 disabled=no comment="wds_BCNCamilOliveras26WDS4"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNCamilOliveras26WDS4] do={/routing ospf interface remove $i;}
add interface=wds_BCNCamilOliveras26WDS4
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.44.80/29] do={/routing ospf network remove $i;}
add network=172.25.44.80/29 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNCamilOliveras26WDS4] do={/routing bgp peer remove $i;}
add name="BCNCamilOliveras26WDS4" instance=default remote-address=172.25.44.83 remote-as=19418 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
/ interface wireless wds
add name="wds_BCNRdcnys" master-interface=wlan2 wds-address=00:0C:42:C1:FA:67 disabled=no
/ ip address add address=172.25.47.97/28 network=172.25.47.96 broadcast=172.25.47.111 interface=wds_BCNRdcnys disabled=no comment="wds_BCNRdcnys"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNRdcnys] do={/routing ospf interface remove $i;}
add interface=wds_BCNRdcnys
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.47.96/28] do={/routing ospf network remove $i;}
add network=172.25.47.96/28 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNRdcnys] do={/routing bgp peer remove $i;}
add name="BCNRdcnys" instance=default remote-address=172.25.47.100 remote-as=36183 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
/ interface wireless wds
add name="wds_PallarsRB750" master-interface=wlan2 wds-address=00:27:19:BD:16:21 disabled=no
/ ip address add address=172.25.53.1/29 network=172.25.53.0 broadcast=172.25.53.7 interface=wds_PallarsRB750 disabled=no comment="wds_PallarsRB750"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_PallarsRB750] do={/routing ospf interface remove $i;}
add interface=wds_PallarsRB750
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.53.0/29] do={/routing ospf network remove $i;}
add network=172.25.53.0/29 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=PallarsRB750] do={/routing bgp peer remove $i;}
add name="PallarsRB750" instance=default remote-address=172.25.53.3 remote-as=21370 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
/ interface wireless wds
add name="wds_BCNmareEternaRB750" master-interface=wlan2 wds-address=00:45:87:65:FA:69 disabled=no
/ ip address add address=172.25.69.196/29 network=172.25.69.192 broadcast=172.25.69.199 interface=wds_BCNmareEternaRB750 disabled=no comment="wds_BCNmareEternaRB750"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNmareEternaRB750] do={/routing ospf interface remove $i;}
add interface=wds_BCNmareEternaRB750
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.69.192/29] do={/routing ospf network remove $i;}
add network=172.25.69.192/29 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNmareEternaRB750] do={/routing bgp peer remove $i;}
add name="BCNmareEternaRB750" instance=default remote-address=172.25.69.193 remote-as=102188 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
#
:delay 1
#
# Radio#: 2 GranVia-MDMont
/interface wireless set wlan3 name="wlan3" \
radio-name="GranVia-MDMont" mode=ap-bridge ssid="guifi.net-GranVia-MDMont" \
band="5ghz-a" channel-width=20mhz \
frequency-mode=regulatory-domain country=spain antenna-gain=23 \
frequency=5260 \
dfs-mode=none \
antenna-mode=ant-a wds-mode=static wds-default-bridge=none wds-default-cost=100 \
wds-cost-range=50-150 wds-ignore-ssid=yes hide-ssid=no
:delay 1
# Type: wdsGranVia-MDMont
# Remove all existing wds interfaces
:foreach i in [/interface wireless wds find master-interface=wlan3] \
do={:foreach n in [/interface wireless wds get $i name] \
do={:foreach inum in [/ip address find interface=$n] \
do={/ip address remove $inum;};}; \
/interface wireless wds remove $i;}
/ interface wireless wds
add name="wds_BCNgranVia940NBmdm" master-interface=wlan3 wds-address=00:27:22:3E:B3:91 disabled=no
/ ip address add address=172.25.46.177/30 network=172.25.46.176 broadcast=172.25.46.179 interface=wds_BCNgranVia940NBmdm disabled=no comment="wds_BCNgranVia940NBmdm"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNgranVia940NBmdm] do={/routing ospf interface remove $i;}
add interface=wds_BCNgranVia940NBmdm
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.46.176/30] do={/routing ospf network remove $i;}
add network=172.25.46.176/30 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNgranVia940NBmdm] do={/routing bgp peer remove $i;}
add name="BCNgranVia940NBmdm" instance=default remote-address=172.25.46.178 remote-as=34719 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
#
:delay 1
#
# Radio#: 3 BCNMDMBRGUIFI-PzaCatal
/interface wireless set wlan4 name="wlan4" \
radio-name="BCNMDMBRGUIFI-PzaCatal" mode=ap-bridge ssid="guifi.net-BCNMDMBRGUIFI-PzaCatal" \
band="5ghz-a" channel-width=20mhz \
frequency-mode=regulatory-domain country=spain antenna-gain=25 \
dfs-mode=radar-detect \
antenna-mode=ant-a wds-mode=static wds-default-bridge=none wds-default-cost=100 \
wds-cost-range=50-150 wds-ignore-ssid=yes hide-ssid=no
:delay 1
# Type: wds/p2p2
# Remove all existing wds interfaces
:foreach i in [/interface wireless wds find master-interface=wlan4] \
do={:foreach n in [/interface wireless wds get $i name] \
do={:foreach inum in [/ip address find interface=$n] \
do={/ip address remove $inum;};}; \
/interface wireless wds remove $i;}
/ interface wireless wds
add name="wds_BCNPzCtlny1" master-interface=wlan4 wds-address=00:00:00:00:00:00 disabled=no
/ ip address add address=172.25.59.5/30 network=172.25.59.4 broadcast=172.25.59.7 interface=wds_BCNPzCtlny1 disabled=no comment="wds_BCNPzCtlny1"
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=wds_BCNPzCtlny1] do={/routing ospf interface remove $i;}
add interface=wds_BCNPzCtlny1
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.59.4/30] do={/routing ospf network remove $i;}
add network=172.25.59.4/30 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNPzCtlny1] do={/routing bgp peer remove $i;}
add name="BCNPzCtlny1" instance=default remote-address=172.25.59.6 remote-as=68856 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
#
:delay 1
#
# Routed device
#
# Altres connexions de cable
/ routing ospf interface
:foreach i in [/routing ospf interface find interface=ether2] do={/routing ospf interface remove $i;}
add interface=ether2
/ routing ospf network
:foreach i in [/routing ospf network find network=172.25.47.200/30] do={/routing ospf network remove $i;}
add network=172.25.47.200/30 area=backbone disabled=yes
/ routing bgp peer
:foreach i in [find name=BCNRBBW] do={/routing bgp peer remove $i;}
add name="BCNRBBW" instance=default remote-address=172.25.47.201 remote-as=67234 \
multihop=no route-reflect=no ttl=default in-filter=ebgp-in out-filter=ebgp-out disabled=no
:foreach i in [/ip address find address="172.25.47.202/30"] do={/ip address remove $i;}
:delay 1
/ ip address add address=172.25.47.202/30 network=172.25.47.200 broadcast=172.25.47.203 interface=ether2 disabled=no comment="BCNRBBW"
#
# Internal addresses NAT
:foreach i in [/ip firewall nat find src-address="172.16.0.0/12"] do={/ip firewall nat remove $i;}
:foreach i in [/ip firewall nat find src-address="192.168.0.0/16"] do={/ip firewall nat remove $i;}
/ip firewall nat
add chain=srcnat src-address="192.168.0.0/16" dst-address=!192.168.0.0/16 action=src-nat to-addresses=10.228.199.129 comment="" disabled=no
#
# Enrutament BGP
# BGP & OSPF Filters
:foreach i in [/routing filter find chain=ospf-in] do={/routing filter remove $i;}
:foreach i in [/routing filter find chain=ospf-out] do={/routing filter remove $i;}
:foreach i in [/routing filter find chain=ebgp-in] do={/routing filter remove $i;}
:foreach i in [/routing filter find chain=ebgp-out] do={/routing filter remove $i;}
/ routing filter
add chain=ebgp-in comment="0. Set ebgp-in preferred source." set-pref-src="10.228.199.129" disabled=no
add action=discard chain=ebgp-in comment="1. Discard insert non 10.x routes from BGP peer" disabled=no invert-match=no prefix=!10.0.0.0/8 prefix-length=8-32
add action=discard chain=ebgp-out comment="2. Discard send non 10.x routes to BGP peer" disabled=no invert-match=no prefix=!10.0.0.0/8 prefix-length=8-32
add action=accept chain=ospf-in comment="3. Accept insert 10.x routes from OSPF neighbor" disabled=no invert-match=no prefix=10.0.0.0/8 prefix-length=8-32 set-pref-src="10.228.199.129"
add action=accept chain=ospf-in comment="4. Accept insert 172.x routes from OSPF neighbor" disabled=no invert-match=no prefix=172.16.0.0/12 prefix-length=8-32
add action=discard chain=ospf-in comment="5. Discard insert non 10.x and 172.x from OSPF neighbor" disabled=no invert-match=no
add action=accept chain=ospf-out comment="6. Allow send 10.x routes to OSPF neighbor" disabled=no invert-match=no prefix=10.0.0.0/8 prefix-length=8-32
add action=accept chain=ospf-out comment="7. Allow send 172.x routes to OSPF neighbor" disabled=no invert-match=no prefix=172.16.0.0/12 prefix-length=8-32
add action=discard chain=ospf-out comment="8. Discard send non 10.x and 172.x to OSPF neighbor" disabled=no invert-match=no
#
# Instància BGP
/ routing bgp instance
set default name="default" as=36743 router-id=10.228.199.129 \
redistribute-connected=no redistribute-static=no redistribute-rip=no \
redistribute-ospf=yes redistribute-other-bgp=yes out-filter=ebgp-out \
client-to-client-reflection=yes comment="" disabled=no
#
# Enrutament OSPF
/routing ospf instance set default name=default router-id=10.228.199.129 comment="" disabled=no distribute-default=never \
redistribute-bgp=as-type-1 redistribute-connected=no redistribute-other-ospf=no redistribute-rip=no redistribute-static=no in-filter=ospf-in out-filter=ospf-out
#
:log info "Unsolclic for 36743-BCN-MDMRBGuifi executed."
/