• 869

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

To gfx 大神 & JQJQ 大大

昨天晚上有將NAT66 換成中華電信業者配發IPv6 ,確認是不是設定問題所致,換成中華電信dhcpv6 就可以正常瀏覽。

於是再換回去NAT66 ,原本無法登入中華電信網址忽然可以運行,原本以為是cookie 暫存所致,清理暫存依然可以使用,這有點神奇

前期我查問題時,認為MTU 在搞鬼,於是乎調整Mikrotik MTU 與Windows 網卡MTU 依然沒有效果。

但那悶著兩條浮動IP 設定都一樣不可能一條可以另外一條不行......先來觀察看看後續


只是Windows ipv6 網卡顯示無網路連線能力,這塊有解嗎?

採用NAT66架構在Windows 都以IPv6為優先,近期更新Mikrotik 版本後Windows 連線優先順序跟Mac 差不多了

我知道NAT66 優先權低於IPv4 但除了調整網卡優先權,是否還有其他解法?

透過中華電信公網配發IPv6 雖然解決優先權問題,但是在安全上不是這麼的優....
gfx
gfx

dhcp mac綁定ip的地方,裝置可以指定不同預設的dns伺服器。在這邊給它adguard dns限制裝置只能用ipv4上網

2026-05-03 22:38
billese10

這有點大膽[XD][XD]昨天在修改成NTPv6,算研發了一種是混合模式,ULA 跟 GUA 共存.目前使用一天速度變很快,優先權都走IPv6還會再觀察一陣子後再調整.

2026-05-04 17:31
billese10 wrote:
採用NAT66


我也用NAT66 , 該網址正常使用,有掛載AGH / 沒掛載也正常。

開了
/ipv6 firewall nat
add action=masquerade chain=srcnat comment=\
"Source NAT (SNAT)\
\n# N02-1 WAN \E5\87\BA\E7\B6\B2\E5\81\BD\E8\A3\9D" out-interface-list=\
WAN
就成了 NAT66

補先前的
AGH
黑名單
目前使用
https://
small.oisd.nl
https://
cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/adblock/tif.medium.txt
tif 完整版太大,跑著跑著有時候 3xxMB
https://
small.oisd.nl << 遊戲正常,使用其他黑名單遊戲購買商店上不了。

/ipv6 nd 黑名單則
https://
raw.githubusercontent.com/neodevpro/neodevhost/master/domain
https://
cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/domains/tif.txt
https://
raw.githubusercontent.com/StevenBlack/hosts/master/hosts
gfx
gfx

/ipv6 nd黑名單?? 是/ip dns adlist嗎?

2026-05-04 11:22
billese10

我是另外設定ULA /64偽裝出去,目前我還是沒想透為什麼同樣設定一個可以一個不行XD

2026-05-04 17:32
JQJQ wrote:
我也用NAT66 ,...(恕刪)
都用nat66了,action不要選masquerade,所有ip都會偽裝成router...
把這筆規則的masquerade換成netmap,然後填上hinet給的網段。



這樣每台裝置的公網後綴,就會和內網的相同。
也就是每台裝置都使用獨立的公網ip,如同直接發給裝置公網地址。

因為hinet給的GUA是浮動的,所以只要在dhcpv6-client填上腳本:

/ipv6 firewall nat set [find action=netmap chain=srcnat] to-address=$"pd-prefix"
之後只要dhcpv6-client只要動作,腳本會自己更新nat。
billese10

大神,你這設定算是 NTPv6嗎?

2026-05-04 17:29
gfx
gfx

不算,算nat66

2026-05-04 17:42
昨天在研究NTPv6,把NAT66 換成NTPv6 ,另外發展成ULA 跟 GUA 共存混合模式.

但有點符合我現在需求,希望IPv6 優先走,又可以DNS 全部都走 Adguard home (ULA網段出去)

調整一天速度上都有所提升,雖然這方法好像有點麻煩,但是看起來這方法可以先運行看看




但在Windows 網卡後面IPv6 尾數ULA 跟 GUA 會相同.
wishstar2004125464

,內網走 ULA (DNS 及其他自架服務)

2026-05-04 20:49
billese10

wishstar2004125464 跟我現在模式走一樣,目前運行一天速度蠻快速的

2026-05-04 23:10
billese10 wrote:
昨天在研究NTPv6...(恕刪)
使用NTPv6需要更新GUA地址,需要更新腳本:

/ipv6 firewall raw [find action=notrack dst-address in 2000::/3] set dst-address=$"pd-prefix"
/ipv6 firewall mangle [find action=snpt] set dst-prefix=$"pd-prefix"
/ipv6 firewall mangle [find action=dnpt] set src-prefix=$"pd-prefix"


您試試~~
billese10

好的,我這週假日嘗試試試看~人在異地不太方便更改太多[汗]

2026-05-04 23:10
>> /ipv6 nd黑名單?? 是/ip dns adlist嗎?
對阿
黑名單看著很不錯,有些用了遊戲異常甚至有些跳出窗口異常,最後
就那幾個沒問題,AGH 抓白名單太麻煩且掛上現有白名單沒屁用。

NAT66
兩種模式
通用 Masquerade
完全 192.x.x.x 化 gfx 所提的 Netmap (NTP ??

哪一種比較好?
Netmap 比較好,優點是 lan 固定ip,lan 不會隨著 ipv6 ip變動,導致ipv6上網出現問題。
補:
若使用fd00 去掛,依據ipv6標準,還是會變但不會有現階段的問題。

Masquerade 需要
/ipv6 address
add address=::1 comment="defconf: Local LAN GUA IPv6 Address" from-pool=\
ipv6-pool interface=bridge-lan (強調 Netmap 不需要)

Netmap 不需要上述但需要下序
/ipv6 firewall nat
add action=netmap chain=srcnat comment="Netmap (Dynamic SNAT)\\
\\n# N02-0 \\E5\\8B\\95\\E6\\85\\8B\\E4\\BD\\8D\\E5\\9D\\80\\E5\\81\\BD\\E8\\A3\\9D" \
to-address=2001:????:????:????::/64 (我有加 src-address=fd00::/64 )
當然得搭配 gfx 提供的
/ipv6 dhcp-client 腳本中的
/ipv6 firewall nat set [find action=netmap chain=srcnat] to-address=$"pd-prefix"
會比較方便

通常搭配
fd00::1/64
/ipv6 address
add address=fd00::1 comment="Link-Local (ULA)IPv6" interface=bridge-lan
方便管理
?? 應該是 fd00::1/64,匯出來怎麼變成 fd00::1
routeros 版本異動有時候 rsc 會稍微有改變

Masquerade 方便設定
Netmap 多幾道手續但可以讓 lan 無後顧之憂,畢竟浮動ipv6有時候真的很討厭,
忽然間 Lan 上純v6網站上不了,因為你的v6尚未更新,就是 偏好設定 還是 甚麼的
沒更新,雖然機率很低微但還是有機會碰到。

自己就碰過
偏好設定 好幾個 2001 導致上網時 ipv6 壓根沒了,因為保留舊的 ip,線路不通,
正常來說會出現 已過時,就算出現已過時但 緩衝/快取 依舊保留舊ip通道。

補:
要解決 ipv6 殘留 這問題並不是沒有
/ipv6 address 針對取得的動態 ipv6 前做出開關的動作,舊有資料在 lan 自然會
變成 已過時,對於重新撥號 導致log 出現 dhcp error couldn't acquire prefix
這也能解決,後來我都砍了腳本,沒意義,因為 Lan 系統 會殘留舊路徑,非100%
即時更新,做那麼多何必,哪天routeros 修正了 腳本反成為畫蛇添足。
ppp 那 on / down 呼喚腳本,大概內容
斷了開關 /ipv6 address , 1s 後 開關 /ipv6 dhcp client ,之後避免重複撥接導致
重複執行以及一些坑,連帶重啟須執行的腳本。


fd00 雖說不變但重啟 會改變後綴或在 /ipv6 address 做出fd00 這一欄開關也會
改變但說也奇怪,Lan會及時改變路徑。(還是會自動改變依ipv6標準)
若雞蛋挑骨頭...後綴改變還是會有機會碰到 卡一下甚至異常,不過我沒碰過。

Netmap 目前是出去,進來就反著做,那就打開了,NAT66沒啥意義但可用
防火牆做補救,之後就會像 ipv4 一樣得開放 對應ip 以及 port 才能讓Lan應用
軟體正常使用。

補:
使用 Netmap 得把 masquerade 關閉。
chenghuanplus

ipv6位址不會失效的問題在某個版本之前的routeros韌體會發生,因為wan ipv6 prefix變動沒通知LAN失效,但v7某個版本更新後已經解決這問題了

2026-05-05 0:28
gfx
gfx

您說的發送lifetime為0的RA通知即使是v7.18之後還不是很完善

2026-05-05 1:34
關於IPv6, ISP端的租期即將到期或發生變動,內網設備能第一時間透過RA封包感知,
進而加速切換到新位址。在v7.22.2 中,如果你是手動在 /ipv6 nd prefix 建立規則(而不是
靠 /ipv6 address 自動通告),勾選 dhcpv6-pd-preferred這樣做可以讓你省去寫複雜
腳本的麻煩,直接利用協議層級的「時間同步」來處理IPv6前綴變動問題。

※/ipv6 address不要勾選Advertise


※/ipv6 nd prefix新增GUA,dhcpv6-pd-preferred尤其重要必勾選

若/ip address勾選Advertise,系統會在/ipv6 nd prefix生成規則,
但生成規則卻未啟用dhcpv6-pd-preferred,無法協議層級的「時間同步」
處理IPv6前綴變動問題。所以才迂迴改用手動規則強制啟用dhcpv6-pd-preferred。

※改手動規則後/ipv6 nd prefix的GUA無法自行更新,所以需透過pppoe-client腳本:
/ipv6 nd prefix set [find interface=bridge] prefix=$"pd-prefix"


gfx
gfx

而是變動valid-lifetime與preferred-lifetime將時間都更改為0,發出地址存活的時間為0,然後等待個2秒...讓裝置舊GUA ip更新存活為時間為0,讓裝置的舊ip瞬間消亡

2026-05-05 18:32
gfx
gfx

腳本再還原valid-lifetime與preferred-lifetime時間,更新nd prefix的GUA,讓裝置拿到正常存活時間新GUA前綴,就這樣。

2026-05-05 18:34
billese10 wrote:
昨天在研究NPTv6...(恕刪)
NPTv6可以試試我優化過的:
# ULA "fd00:88::/64" interface="bridge1"
# GUA "2001:b011:a2a:32fe::/64" interface="pppoe-out1"
# 2000::/3 是ipv6公網range,勿變更

NPTv6設置,變更ULA與GUA後可直接貼入命令窗做匯入。匯入完請將新增的規則置頂:
/ipv6 firewall raw
add action=notrack chain=prerouting src-address=fd00:88::/64 dst-address=2000::/3 dst-address-type=!local in-interface=bridge1
add action=notrack chain=prerouting dst-address=2001:b011:a2a:32fe::/64 dst-address-type=!local in-interface=pppoe-out1

/ipv6 firewall mangle
add action=snpt chain=postrouting connection-state=untracked src-prefix=fd00:88::/64 dst-prefix=2001:b011:a2a:32fe::/64 out-interface=pppoe-out1
add action=dnpt chain=prerouting connection-state=untracked src-prefix=2001:b011:a2a:32fe::/64 dst-prefix=fd00:88::/64 in-interface=pppoe-out1

/ipv6 dhcp-client更新pppoe-out1 GUA腳本:
/ipv6 firewall raw set [find action=notrack in-interface="pppoe-out1"] dst-address=$"pd-prefix"
/ipv6 firewall mangle set [find action=snpt] dst-prefix=$"pd-prefix"
/ipv6 firewall mangle set [find action=dnpt] src-prefix=$"pd-prefix"

/ipv6 firewall filter防火牆規則,如果需要的話。一樣匯入完請將新增的規則置頂:
/ipv6 firewall filter
add action=accept chain=forward connection-state=untracked dst-address=2000::/3 out-interface=pppoe-out1
add action=accept chain=forward connection-state=untracked src-address=2000::/3 in-interface=pppoe-out1
JQJQ

action=notrack 門戶大開? action=snpt , action=dnpt 很有趣,算是另類的 NAT。

2026-05-06 15:07
gfx
gfx

notrack會讓連線在connection-list查不到,但filter還是管制的到的。避免untracked封包被誤鎖所以另外提供防火牆action=accept(允許)的部份。

2026-05-06 16:00
gfx wrote:
但filter還是管制的到的


玩了一下

得針對notrack 才管的到,基本上...開了notrack 所有防火牆都0封包,QoS 也沒了.....
大致上RAW算是沒了

關掉RAW notrack 2條例自動恢復原本的使用狀態 。

masquerade 性能稍差
Netmap 性能不錯

SNPT/DNPT 性能較優: 使用時得把 NAT 中的 masquerade , Netmap 關閉,
Filter .. invalid 這類也得關以及禁止WAN進來都得關,否則會被攔下,
當然可用 gfx 提供的兩個條例,只不過 順序 得放對。
在不使用 RAW notrack ,QoS 可用,基本上防火牆條例可用。
JQJQ wrote:
玩了一下得針對notrack...(恕刪)
可以試有條件SNPT/DNPT使用。
重點在raw裡的那兩筆notrack規則,mangle則完全不必變動。

如:dns查詢(udp port:53)
in-interface=bridge1:規則增加 protocol=udp dst-port=53
in-interface=pppoe-out1:規則增加protocol=udp src-port=53

這樣只會有dns封包會成untracked在mangle做snpt/dnpt處理,
其他封包則維持過去的nat66交換,dns以外的連線也都追蹤的到。

(nat不需要另設置省缺udp port:53,因為untracked的包不會經過nat)
  • 869
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 869)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?