在昨天 cloudflare warp connector 初體驗(下) 中我們體驗到了把 warp connector 裝在 Ubuntu3 並且成功用 cloudflare 設定的大內網 ip (100.96.0.0/12) 進行連線。
今天我們要把這個概念稍微延伸一下,我們讓 Ubuntu3 當作 gateway server 讓所有跟 100.96.0.0/12 的網路流量都會跑到 Ubuntu3 。
不廢話,先上拓譜圖
為了避免作弊,我們先把 Settings > warp client 中先前 cloudflared tunnel 相關的 profile 先取消。
然後在 cloudflare 設定頁面上
在之前設定的 warp connector 通道裡面設定我們的內網(10.250.250.0/24)
在 settings > warp client 裡找到先前設定 warp connector 的 profile,在 split tunnels 下 Include IPs and domains 設定 內網的 IPs (10.250.250.0/24)
基本上跟 cloudflared 之前設定時還挺像的。接著到路由器上面設定(在我這裡的話就是到 opnsense 上設定)
因為我們要指定某個機器的 IP 當作 gateway server,所以我們不能讓其 IP 一直變動,所以要到路由器上面做設定。
以我的為例,到 opnsense 中 Services > ISC DHCPv4 > [LAN] 裡面或是在 lease 即可以設定,具體結果如下圖
有個小細節,我強烈建議和 DHCP 設定的 IPs 分開(如設定會自動分配 10.250.250.100 ~ 10.250.250.200 那 gateway 的 IP 就不要設定在該區間內),不然可能會重複 IP ,到時頭絕對痛
到最後一步了
使用以下指令去指定 100.96.0.0/12 走我們設定好的 gateway,以我的 Ubuntu3 為例,在 Ubuntu1 上我就可以用 sudo ip route add 100.96.0.0/12 via 10.250.250.10 去設定
但是重啟後就會洗掉,所以可以在 /etc/networks/interfaces 或是 /etc/netplan/ 下設定類似的指令
我們設定完之後,不出意外,就可以連線了
ref:
Connect private network to WARP clients
再次特別感謝 chess 學長啟發我用 tcpdump 去 debug
真的,用對工具可以省上一堆時間wwwwwww