• 870

[研究所] MikroTik RouterOS 學習 (持續更新)

gfx wrote:
可以試有條件SNPT...(恕刪)


RAW NOTRACK 沒拿來用,目前 既有的 ipv6 防火牆下

以前 用 Masquerade
先前 用 Netmap (須關閉 Masquerade ,不關小機率會卡)
現在 用 SNPT/DNPT (須關閉 Masquerade,Netmap 不關小機率會卡)


/ipv6 firewall mangle
add chain=postrouting action=accept src-address=fe80::/10 comment="NPTv6 Bypass: Protect outbound Link-Local traffic (DHCPv6/NDP) \\n# M04-1"
add chain=prerouting action=accept dst-address=fe80::/10 comment="NPTv6 Bypass: Protect inbound Link-Local traffic (DHCPv6/NDP) \\n# M04-2"
這一段是為了順利取得 ipv6,沒有這兩段 ipv6 時間到了真的就沒了

/ipv6 firewall mangle
add action=dnpt chain=prerouting comment="NPTv6 DNPT: Stateless translation fr\\
om Public Prefix (GUA) back to ULA (fd00)\\
\\n# M04-3 NPTv6 \\E5\\85\\A5\\E5\\90\\91\\EF\\BC\\9A\\E5\\B0\\87\\E5\\85\\AC\\E7\\B6\\B2 Pre\\
fix \\E6\\B5\\81\\E9\\87\\8F\\E9\\82\\84\\E5\\8E\\9F\\E5\\9B\\9E\\E5\\85\\A7\\E7\\B6\\B2 ULA \\
\\E5\\89\\8D\\E7\\B6\\B4 (fd00) NPTv6_RAW_IN" dst-prefix=fd00::/64 \
in-interface-list=WAN src-prefix=2001:b019:9c01:1399::/64
add action=snpt chain=postrouting comment="NPTv6 SNPT: Stateless translation f\\
rom ULA (fd00) to Public Prefix (GUA)\\
\\n# M04-4 NPTv6 \\E5\\87\\BA\\E5\\90\\91\\EF\\BC\\9A\\E5\\B0\\87\\E5\\85\\A7\\E7\\B6\\B2 ULA\\
\\_\\E5\\89\\8D\\E7\\B6\\B4 (fd00) \\E8\\BD\\89\\E6\\8F\\9B\\E7\\82\\BA\\E5\\85\\AC\\E7\\B6\\B2 \\
Prefix NPTv6_RAW_OUT" dst-prefix=2001:b019:9c01:1399::/64 \
out-interface-list=WAN src-prefix=fd00::/64





/ipv6 firewall filter
add action=accept chain=forward comment="12-02-01 NPTv6: LAN to WAN: Allow int\\
ernal initiated traffic\\
\\n# \\E6\\94\\BE\\E8\\A1\\8C\\E5\\85\\A7\\E7\\B6\\B2\\E4\\B8\\BB\\E5\\8B\\95\\E7\\99\\BC\\E8\\B5\\
\\B7\\E6\\B5\\81\\E9\\87\\8F" in-interface-list=LAN src-address=fd00::/64
add action=accept chain=forward comment="12-02-02 NPTv6: WAN to LAN: Allow TCP\\
\\_ACK only (Return traffic))\\
\\n# \\E5\\83\\85\\E6\\94\\BE\\E8\\A1\\8C TCP ACK \\E5\\9B\\9E\\E7\\A8\\8B\\E5\\B0\\81\\E5\\8C\\
\\85" dst-address=fd00::/64 in-interface-list=WAN protocol=tcp tcp-flags=\
ack
add action=accept chain=forward comment="12-02-03 NPTv6: WAN to LAN: Allow UDP\\
\\_return traffic)\\
\\n# \\E6\\94\\BE\\E8\\A1\\8C UDP \\E5\\9B\\9E\\E7\\A8\\8B\\E6\\B5\\81\\E9\\87\\8F" \
dst-address=fd00::/64 in-interface-list=WAN protocol=udp



add action=accept chain=forward comment="23 Permit WAN to LAN HTTPS\\
\\n# \\E5\\85\\81\\E8\\A8\\B1 WAN TCP 443\\EF\\BC\\88HTTPS\\EF\\BC\\89" disabled=yes \
dst-address=fd00::399c:f700:3309:7670/128 dst-port=443 in-interface-list=\
WAN protocol=tcp


add action=drop chain=forward comment="24 Drop new connections from WAN\\
\\n# \\E9\\98\\BB\\E6\\AD\\A2\\E5\\A4\\96\\E7\\B6\\B2\\E4\\B8\\BB\\E5\\8B\\95\\E6\\8E\\83\\E6\\8F\\
\\8F" connection-state=new in-interface-list=WAN

add action=drop chain=forward comment="25 defconf: drop everything else not co\\
ming from LAN\\
\\n# \\E4\\B8\\9F\\E6\\A3\\84\\E9\\99\\A4\\E4\\BA\\86 LAN \\E6\\B8\\85\\E5\\96\\AE\\E4\\B8\\AD I\\
P \\E7\\9A\\84\\E4\\B9\\8B\\E5\\A4\\96\\E7\\9A\\84\\E5\\B0\\81\\E5\\8C\\85 (\\E4\\BB\\8B\\E9\\9D\\
\\A2\\E6\\B8\\85\\E5\\96\\AE\\E4\\BD\\8D\\E6\\96\\BC /interface/list/member)" \
in-interface-list=!LAN

以前感覺這條有點多餘,反正放著不影響
........
..

使用上正常,相當順暢。

缺點 SNPT/DNPT 不管有沒有使用 raw no track 其 ipv6 大封包有點問題,會卡。
http://test-ipv6.com/
Masquerade , Netmap 沒有這問題。

補:
加上
/ipv6 address
add address=::1 advertise=no comment="defconf: Local LAN GUA IPv6 Address" \
from-pool=ipv6-pool interface=bridge-lan
似乎有比較好點,雖然依舊

http://test-ipv6.com/
測試 IPv6 大型封包 成功 (4.575s) 使用 ipv6
重刷網頁有時
測試 IPv6 大型封包 成功 (0.210s) 使用 ipv6
沒那段,重刷網頁 基本上就 4.5s - 4.8s 之間
上述 windows server 2025 , windows11 則 2.??? s 少了2秒

關掉瀏覽器再跑一次,變成了
測試 IPv6 大型封包 成功 (4.575s) 使用 ipv6

把 /ipv6 settings Allow Fast Path 關閉 跑 SNPT/DNPT 看看

雖然 跑 SNPT/DNPT IPv6 大型封包 的問題,實際使用上感受不到影響在哪,
SNPT/DNPT 環境下瀏覽網頁比較快,挺有趣的。
JQJQ

沒開FT, ND 在 Lan,MTU 是 1492 ,,上述如果有問題 Masquerade , Netmap 都會有問題,唯獨使用 SNPT/DNPT 會卡 ipv6 大封包,約 2 - 4秒。

2026-05-09 20:42
gfx
gfx

可以追蹤的話可否請您調查,出口地址'後綴第一碼'是否會一致?

2026-05-10 13:44
JQJQ wrote:
出口地址'後綴第一碼'是否會一致?


一致,很奇怪對吧! 不過實際使用沒啥感覺,但網頁回應有變快,應該說回應還是..
反正有變快(只有極少部分網頁真的會卡)。

前綴 hinet ipv6 給的,後綴 是 fd00:: 用戶端的 ipv6 ,只有前綴會異動,後綴 除非
電腦自行變動否則沒變過,要不然就是routeros 去動了fd00 導致重新計算。

抓到原因 wan >> lan 我僅開放了tcp ack 導致 延遲,當全開放後我額外增加一條
新連線 , syn 的阻擋,想說這樣比較安心。
在經過 http://test-ipv6.com/ 測試,沒有卡 2s 或 4s的問題但又有一個問題,
不穩,有時會卡有時不會卡... 相容性的問題? SNPT/DNPT 與 windows ,
畢竟 windows server 卡4秒 windows11 卡2秒, ios 忘了測,之前 開了
raw notrack 也是全開放,會卡

丟棄? 路徑?....
改用 Netmap

另外
我把 ether1 mtu 改 1512 , pppoe 改 max mtu / max mru 都是 1500


我這邊也只能達到 1496 ,之前是 1492,就少了 4 ......好可惜啊


補:
問了 AI 關於 SNPT/DNPT ... 把碰到的問題全丟上,大致上的答案是...
SNPT/DNPT 特性 / 缺陷 ?
非 MTU1500 環境別用,要用就只能調降 MTU 只是避開,
AI 說 routeros 版本的 SNPT/DNPT不成熟。

補:
SNPT/DNPT 排除fe80:: 最好也排除 ff00::
SNPT/DNPT 似乎限制好像沒啥用
測好幾次,加了一堆、刪了一堆... ipv6 卡大封包 的問題依舊,
雖然實際使用上沒啥影響。
我也有排除dhcp v6 port

SNPT/DNPT 目前把玩性質,常態使用以 Netmap 為主,也有可能改為
SNPT/DNPT 常態使用,畢竟只有測試網站才測出來,實際使用 瀏覽網頁
反應 真的有快那麼一丟丟。

mss 最好改自動不要採指定。
new-mss=clamp-to-pmtu

補:
怪事,現在 SNPT/DNPT 跑測試ipv6 沒有卡 ipv6 大封包,同樣的設定幾天前和現在結果大不同,
現在測試出來很正常。

SNPT/DNPT 目前的規劃如下

/ipv6 address
add address=fd00::1 comment="Link-Local (ULA)IPv6" interface=bridge-lan

/ipv6 firewall address-list
add address=ff00::/8 comment="SNPT-DNPT-NPTv6 Bypass" list="NPTv6 Bypass"
add address=fe80::/10 comment="SNPT-DNPT-NPTv6 Bypass" list="NPTv6 Bypass"


/ipv6 firewall mangle
add action=accept chain=postrouting comment="NPTv6 Bypass: Protect outbound Li\\
nk-Local traffic (DHCPv6/NDP)\\
\\n# NTP-02-01 \\E6\\8E\\92\\E9\\99\\A4\\E6\\9C\\AC\\E5\\9C\\B0\\E9\\8F\\88\\E8\\B7\\AF\\E4\\BD\\
\\8D\\E5\\9D\\80\\EF\\BC\\9A\\E7\\A2\\BA\\E4\\BF\\9D\\E8\\B7\\AF\\E7\\94\\B1\\E5\\99\\A8\\E7\\99\\
\\BC\\E5\\87\\BA\\E7\\9A\\84 DHCPv6 \\E8\\AB\\8B\\E6\\B1\\82\\E4\\B8\\8D\\E8\\A2\\AB NPTv6 \\
\\E8\\BD\\89\\E6\\8F\\9B" src-address-list="NPTv6 Bypass"
add action=accept chain=prerouting comment="NPTv6 Bypass: Protect inbound Link\\
-Local traffic (DHCPv6/NDP)\\
\\n# NTP-02-02 \\E6\\8E\\92\\E9\\99\\A4\\E6\\9C\\AC\\E5\\9C\\B0\\E9\\8F\\88\\E8\\B7\\AF\\E4\\BD\\
\\8D\\E5\\9D\\80\\EF\\BC\\9A\\E7\\A2\\BA\\E4\\BF\\9D ISP \\E5\\9B\\9E\\E6\\87\\89\\E7\\9A\\84\\E5\\
\\BA\\95\\E5\\B1\\A4\\E5\\8D\\94\\E8\\AD\\B0\\E5\\B0\\81\\E5\\8C\\85\\E4\\B8\\8D\\E8\\A2\\AB NPTv\\
6 \\E8\\BD\\89\\E6\\8F\\9B" dst-address-list="NPTv6 Bypass"
add action=dnpt chain=prerouting comment="NPTv6 DNPT: Stateless translation fr\\
om Public Prefix (GUA) back to ULA (fd00)\\
\\n# NTP-03-01 NPTv6 \\E5\\85\\A5\\E5\\90\\91\\EF\\BC\\9A\\E5\\B0\\87\\E5\\85\\AC\\E7\\B6\\B2\\
\\_Prefix \\E6\\B5\\81\\E9\\87\\8F\\E9\\82\\84\\E5\\8E\\9F\\E5\\9B\\9E\\E5\\85\\A7\\E7\\B6\\B2 U\\
LA \\E5\\89\\8D\\E7\\B6\\B4 (fd00) NPTv6_RAW_IN" dst-address=\
2001:b011:5c01:122a::/64 dst-prefix=fd00::/64 in-interface-list=WAN \
src-prefix=2001:b011:5c01:333a::/64
add action=snpt chain=postrouting comment="NPTv6 SNPT: Stateless translation f\\
rom ULA (fd00) to Public Prefix (GUA)\\
\\n# NTP-03-02 NPTv6 \\E5\\87\\BA\\E5\\90\\91\\EF\\BC\\9A\\E5\\B0\\87\\E5\\85\\A7\\E7\\B6\\B2\\
\\_ULA \\E5\\89\\8D\\E7\\B6\\B4 (fd00) \\E8\\BD\\89\\E6\\8F\\9B\\E7\\82\\BA\\E5\\85\\AC\\E7\\B6\\
\\B2 Prefix NPTv6_RAW_OUT" dst-prefix=2001:b011:5c01:333a::/64 \
out-interface-list=WAN src-address=fd00::/64 src-prefix=fd00::/64



/ipv6 firewall filter
add action=accept chain=forward comment="12-02-00-01 NPTv6: LAN to WAN: Allow \\
internal initiated traffic\\
\\n# \\E6\\94\\BE\\E8\\A1\\8C\\E5\\85\\A7\\E7\\B6\\B2\\E4\\B8\\BB\\E5\\8B\\95\\E7\\99\\BC\\E8\\B5\\
\\B7\\E6\\B5\\81\\E9\\87\\8F" out-interface-list=WAN src-address=fd00::/64
add action=accept chain=forward comment="12-02-00-02 Permit WAN to LAN HTTPS\\
\\n# \\E5\\85\\81\\E8\\A8\\B1 WAN TCP 443\\EF\\BC\\88HTTPS\\EF\\BC\\89" disabled=yes \
dst-address=fd00::35bc:f756:3333:333f/128 dst-port=443 in-interface-list=\
WAN protocol=tcp
add action=drop chain=forward comment="12-02-00-03 Drop new connections from W\\
AN\\
\\n# \\E9\\98\\BB\\E6\\AD\\A2\\E5\\A4\\96\\E7\\B6\\B2\\E4\\B8\\BB\\E5\\8B\\95\\E6\\8E\\83\\E6\\8F\\
\\8F" connection-state=new in-interface-list=WAN protocol=tcp tcp-flags=\
syn


以下 挑一條使用
add action=accept chain=forward comment="12-02-00-04 NPTv6: WAN to LAN (Return\\
\\_traffic))\\
\\n# \\E6\\94\\BE\\E8\\A1\\8C\\E5\\9B\\9E\\E7\\A8\\8B\\E5\\B0\\81\\E5\\8C\\85" dst-address=\
fd00::/64 in-interface-list=WAN



add action=accept chain=forward comment="12-02-02 NPTv6: WAN to LAN: Allow TCP\\
\\_ACK only (Return traffic))\\
\\n# \\E5\\83\\85\\E6\\94\\BE\\E8\\A1\\8C TCP ACK \\E5\\9B\\9E\\E7\\A8\\8B\\E5\\B0\\81\\E5\\8C\\
\\85" disabled=yes dst-address=fd00::/64 in-interface-list=WAN protocol=\
tcp tcp-flags=ack
有需要也可加上
add action=accept chain=forward comment="12-02-03 NPTv6: WAN to LAN: Allow UDP\\
\\_return traffic)\\
\\n# \\E6\\94\\BE\\E8\\A1\\8C UDP \\E5\\9B\\9E\\E7\\A8\\8B\\E6\\B5\\81\\E9\\87\\8F" \
dst-address=fd00::/64 in-interface-list=WAN protocol=udp


上述供參考
NTP-02-01 NTP-02-02 沒使用會導致無法自動取得 ipv6 ip

12-02-00-02 是外部連入 lan 對應的 port 類似 ipv4 nat 的設定,預設關閉,留著
備用。

其餘就跟一般防火牆設定差不多。

腳本更新
/ipv6 dhcp-client

:if ($"pd-valid" = 1) do={
:local newPrefix $"pd-prefix"

# 1. 更新 NAT 表 (有狀態 Netmap)
/ipv6 firewall nat {
set [find action=netmap chain=srcnat] to-address=$newPrefix
set [find action=netmap chain=dstnat] src-address=$newPrefix
}

# 2. 更新 Mangle 表 (無狀態 NPTv6)
/ipv6 firewall mangle {
# SNPT: 內網出去,修改目的地前綴對應 (用於校驗和中性轉換)
set [find action=snpt] dst-prefix=$newPrefix

# DNPT: 外網進來,修改來源前綴對應
set [find action=dnpt] src-prefix=$newPrefix dst-address=$newPrefix
}

# 3. 更新 RAW 表 (連線追蹤開關)
/ipv6 firewall raw {
# 更新 WAN 進來不進行追蹤的目標地址
set [find action=notrack in-interface-list="WAN"] dst-address=$newPrefix
}

# 4. 更新 ND 表 (連線追蹤開關)
/ipv6 nd prefix {
# set [find interface=bridge-lan] prefix=$newPrefix
set [find prefix~"^2001:"] prefix=$newPrefix
}
:log warning ("IPv6 Prefix Sync Completed: " . $newPrefix)
}

上述自行修改

補:
如果使用 SNPT/DNPT(NTPv6) 且使用 nat 攔截後並指定 AGH DNS 需補上
action=masquerade chain=srcnat dst-address=fd00::2 dst-port=53 (udp,tcp都得要做)
這樣攔截才會成功,否則回程就掛了。(須將 AGH MAC 排除避免迴圈)
使用NAT66 沒這問題。
使用 MAC 是因為 AGH 監控 ip 好幾個,否則就得建立ip清單做排除,直接排除MAC省事。
上面使用 ipv6 / nd

SNPT/DNPT 好用但後續問題也不少,我大概都踩了一遍,就慢慢補。
因為Telegram討論區有人問使用NPTv6需注意connection-state=invalid,
所以查了Gemini。

又查詢connection-state=invalid是否與封包標記notrack有關:

解釋NPTv6是一種無狀態連線,
標成notrack會略去invalid判斷,自然不會有invalid的問題;

但沒標notrack則會遵循一般判別流程,
NPTv6因修改前綴讓追蹤器無法正常追蹤,因此被追蹤器判別成invalid。

所以NPTv6
啟用notrack,需開放untracked繞過firewall filter;
未啟用notrack,則改開放invalid繞過firewall filter。



gfx wrote:
NPTv6可以試試我...(恕刪)


大神,假日有測試一下這塊.

NTPv6 好像沒辦法使用,但是這是延伸ULA & GUA 混合也有做一些優化.

現在NAS 對外可以不用透過NAT66 對外,可以透過filter rule 控制防火牆進出.

Mangle & Raw 這兩個我是沒有使用.

感謝大神分享
NeverGiveUp!! wrote:
前陣子到這幾天在研究cake...(恕刪)
該篇Mangle的DSCP已全部修正.
差別在封包往下對比(passthrough=no與passthrough=yes)透傳關閉與開啟的差別調整.
Queue-Tree則是父系PFIFO.子系CAKE,測試了很多次,緩衝膨脹測試非常完美!
--
至於下次給自己的功課作業就是設定IPv6,改天再來跟大家請益.謝謝!晚安~
成為對的人是要持續執行核心價值來成就自己附加價值的永恆.[V-Ing]By Myself
今天無聊把規則指令丟給AI去評估.最後AI給個人評價.

成為對的人是要持續執行核心價值來成就自己附加價值的永恆.[V-Ing]By Myself
另外緩衝膨脹測試.在Mangle的DSCP分類規則下做區分,這已是最漂亮的數據.接近完美.
結論就是,用堪用的寬頻搭配MikroTik(從主路由CCR到PoE集線器CRS最後Audience)一條龍.
最後搭配NextDNS補強MikroTik使其更近於Fortinet FortiGate的效能,已實現十年前我要的.
"全方位機關槍防線."
成為對的人是要持續執行核心價值來成就自己附加價值的永恆.[V-Ing]By Myself
有人 現在用 ai 管理routeros 了嗎,讓 ai 自動進入 rotueros 自己測試管理,下指令,自己修改條例

RouterOS API做法

RouterOS 的 MCP Server
elodie319 wrote:
有人 現在用 ai ...(恕刪)
前陣子在官方論壇看到有人討論過,但我個人傾向權限給本身管理者,AI扮演協助會比較恰當.
AI適合用在規則除錯,比較妥當,比方說有次個人把寫好的規則,套用在ROS,結果運作有問題,
於是把規則打包起來丟給AI,AI馬上找出問題,這問題有時候規則太繁雜,人會疏失到的細節,
透過AI把失誤的規則改掉後,把rsc檔裡的規則修正,丟回給ROS,功能就正常,AI僅適合當工具.
--
目前我認為不要把全部都交給AI去管理,有時人要的,AI未必能滿足.若要的更多,就更該慎用.
成為對的人是要持續執行核心價值來成就自己附加價值的永恆.[V-Ing]By Myself
NeverGiveUp!! wrote:
前陣子在官方論壇看到...(恕刪)


可以把設定全部 exp 到檔案,再丟給 ai
但他無法做到

ai自己管理routeros
1.他自己設定queue 並和 sqm speed test 網站
自己對跑,並設定好最適合的封包大小 , 自己微調 這AI就很有價值了
2. 自己跑 bbc 發現iplayer 無法在臺灣跑,他自己買vpn或是要求管理者建議vpn service 。 或是使用免費vpn
讓 iplayer 能運作

3. 自己最佳化公司內部 lan to wan 如何跑比較順
  • 870
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 870)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?