分类目录归档:RouterOS

RouterOS自动删除动态生成的VPN Server端口

RouterOS即使手工添加了VPN server的用户binding interface,也有可能出现连接被切断导致的原来的端口还没掉线,新的VPN连接已经进来了的情况,这时候系统里面就会多出一个动态的VPN server端口,一些针对端口的设定就有可能失效。这个脚本配合定时器自动删除动态生成的VPN server binding端口。

/system script
add dont-require-permissions=no name=remove-dynamic-vpn-interfaces owner=admin policy=read,write source="/interface ovpn-server remove [ find\
    \_where dynamic=yes ]\r\
    \n/interface pptp-server remove [ find where dynamic=yes ]\r\
    \n/interface l2tp-server remove [ find where dynamic=yes ]\r\
    \n/interface sstp-server remove [ find where dynamic=yes ]"
/system scheduler
add interval=10s name=schedule1 on-event=remove-dynamic-vpn-interfaces policy=read,write start-date=jan/01/1970 start-time=00:00:00

 

 

RouterOS在多个上游情况下正确设置返回包的默认路由

应用场景:

一:RouterOS接了多个上游,都是静态IP并且有NAT(masquerade)配置。默认情况下,如果在非默认路由的上游IP上开了端口转发到内网,内网设备返回包的时候会直接从默认路由出去,从而要么被路由器的reverse path filter丢掉,要么在出口处被masquerade从而导致对面收到的包源IP错误而丢包。下面简述一个方法,让返回包从正确的出口返回。

二:用VRF接了管理网,想从VRF访问本机的WinBox或者SSH。数据包是能从VRF网络正确到达本机的;但是从本机返回包时,默认只会查main路由表。你当然可以简单地把VRF网的路由或静态或动态leak进main,但是这样就失去了隔离管理网的功能。因此,我们可以用类似的方法来实现通过VRF访问本机。 继续阅读

RouterOS定时自动更新到最新版本

注意:

  • RouterOS的更新过程并不靠谱,请自行斟酌;我只建议在long-term通道上使用自动更新
  • 请预先设定好更新通道,脚本不会修改这一设置
/system script
add dont-require-permissions=no name=os-upgrade owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "/system package update\r\
    \ncheck-for-updates once\r\
    \n:delay 1s;\r\
    \n:if ( [get status] = \"New version is available\") do={ install }"
/system scheduler
add interval=1d name=auto-upgrade on-event="/system script run update" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=jan/1/2019 start-time=04:00:00

 

用RouterOS作为远程DHCP服务器

Cisco的DHCP服务器太难用了,查询起来不直观,要设置个固定的release累死人。Linux上那一堆DHCP daemon也没好到哪里去。想了想作为DHCP服务器的话,最直观方便的也就RouterOS了。简要记述一下把RouterOS作为远程DHCP服务器(不接入客户端所在二层)的配置方法。

配置

三层交换机(Cisco IOS):首先我们关闭ip helper对除DHCP以外其它协议的转发;然后在接口上设置helper address为RouterOS的IP地址即可。

no ip forward-protocol udp
interface Vlan100
 ip address 192.168.1.1 255.255.255.0
 ip helper-address 192.168.0.2

RouterOS:对每个DHCP server配置,接口设置为转发包的来源接口,relay设置为三层交换机面向DHCP客户端的内网端口的IP。

/ip pool
add name=dhcp ranges=192.168.1.10-192.168.1.254
/ip dhcp-server
add address-pool=dhcp conflict-detection=no disabled=no interface=bridge name=user-vlan relay=192.168.1.1
/ip dhcp-server network
add address=192.168.1.0/24 gateway=192.168.1.1 netmask=24

调试

Cisco IOS上可以用debug ip dhcp server packetdebug ip dhcp server events看到每个请求的转发过程。

RouterOS DHCP lease里面出现大量busy是因为conflict detection没有关闭,这种配置下conflict detection时间很长,可能会导致部分客户端超时以后疯狂重试,进而吃光DHCP地址池。因此参考配置里面关掉了conflict detection。


参考: