讓一隻大貓咪在打字機上隨機地按鍵,當按鍵時間達到無窮時,幾乎必然能夠打出任何給定的文字,比如你看到的這個網誌。

IPv6 下的端口轉發

IPv6 中可以給所有的裝置都分配唯一的全球單撥地址,但並不等於「上級」router 的防火牆就不起作用了。
例如,給 fd00::dead:beef:abcd:1234 開放 443 端口,依然需要在 router 上的防火牆中接受傳入連線並轉發。

消費級裝置中常見的 OpenWRT 其實對 IPv6 防火牆有不錯的支援,可以透過省略前綴、指定後綴來放行連線。這個例子,在端口轉發中指定目標裝置爲 ::dead:beef:abcd:1234/::ffff:ffff:ffff:ffff

但是 RouterOS 中就不是這個狀況了。RouterOS 的 IPv6 防火牆——

  • 規則中不能省略前綴;
  • 可以使用 ULA,但是無法匹配到使用 GUA 的連線;
  • 可以使用 GUA,但是 GUA 會變動;

看起來似乎是死局?其實,使用 ULA 是可以工作的,只是需要再搭配一條對應的 DST NAT 規則。還是同樣的例子,首先添加一條 IPv6 Firewall:

chain: forward
Dst. addr: fd00::dead:beef:abcd:1234
Protocol:6 tcp
Dst. Port: 443
in interface list: WAN
Action: accept

再添加一條 NAT 規則:

chain:  dstnat
Protocol: 6 tcp
Dst. Port: 443
in interface list: WAN
Action: dst nat
To Address: fd00::dead:beef:abcd:1234
To Ports: 443

就可以工作了。

添加新评论