簡介
DN42是一個大型的VPN網絡,通過GRE,OpenVPN,Tinc,IPsec等隧道將不同地區的用戶連接在一起,同時使用BGP協定宣告自己的網段,實現用戶之間的互聯互通。
DN42有一套完整的AS號的申請、IP地址塊的申請以及.dn42功能變數名稱的申請系統,IP地址塊的分配不會於公網上的產生衝突,因為使用的是172.20.0.0/14以及fd00::/8這些私網地址。
.dn42
172.20.0.0/14
fd00::/8
那麼,在DN42中我們能玩些什麼呢?
路由式通訊協定
正如上面所說,DN42使用BGP協定來讓各個用戶宣告自己的網段,從而實現用戶之間的互聯互通,囙此BGP協定是十分重要的一個環節。當前DN42大概有300多個AS線上,有大概580條路由,應該足够我們進行研究的了。
在我實際的操作中,使用到了iBGP、eBGP以及路由反射器,相信在以後進一步深入的話還會學習到很多好玩的東西,例如Anycast。
可能你會想說,eNSP和Cisco Packet Tracer也同樣可以做到類似的類比,事實上的確如此,但是,有什麼比在實際的網絡上進行操作更加有趣的呢?而且,你不必成為APNIC的會員就可以拿到AS號,也不用交納年費來買一個IP地址塊,同時,也不用怕弄壞了實際的網絡然後被上級責備。
連接到Hacker Spaces
如今沒有多少人有公網IP,就連寬帶也逐漸開始分配100.64.0.0/16的IP地址,如果我們家裡有一臺樹莓派什麼的想要在外面訪問,將自己的路由器加入到DN42也是一個不錯的選擇。我們可以隨時隨地連接上DN42網絡,然後可以訪問到自己的樹莓派,也可以用樹莓派給其他人提供各種各樣的服務。
100.64.0.0/16
說人話就是,DN42在一定程度上解决了NAT設備的訪問問題,如果有擔心安全問題的話,也可以設定一些存取控制進行訪問的過濾。
加入DN42網絡
請參攷官方的入門檔案:https://dn42.net/howto/Getting-started
體驗
大概一個星期之前我就拿著我的幾臺吃灰VPS入了坑,在http://io.nixnodes.net/中注册了一個AS號:4242421888,然後ALLOCATED了幾個IP段給這幾臺不同地區的VPS使用。
4242421888
一切就緒之後,我在https://dn42.us/peers中聯系到了Chris Moons,通過和他做peer,我成功地將自己的VPS連接到了DN42網絡中。
不得不說,DN42和真實的互聯網真的很相似。
BGP
我現時使用的是Bird作為BGP宣告工具,之前是使用Quagga的,但是他對IPv6協定上不是很支持,在我的操作中遇到了不少問題,雖然他的使用方法很像是在操作Cisco設備,但是後來我還是把他撤掉換成了Bird。
Bird
Quagga
Bird
Bird的語法雖然不像Quagga那樣有Cisco設備操作經驗就可以上手,但是他的配寘及其簡單明瞭。
Bird
Quagga
如果想要瞭解的話可以去DN42的Wiki瞭解:https://dn42.net/howto/Bird
下麵是我在Bird中運行show protocols all chrismoos的結果
show protocols all chrismoos
Preference: 100
Input filter: (unnamed)
Output filter: (unnamed)
Import limit: 10000
Action: block
Routes: 468 imported, 0 filtered, 560 exported, 16 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 4657978 0 46297 1252694 3358987
Import withdraws: 14184 0 --- 43809 7162
Export updates: 9025262 284456 0 --- 8740806
Export withdraws: 9173 --- --- --- 275578
BGP state: Established
Neighbor address: 172.20.162.86
Neighbor AS: 4242421588
Neighbor ID: 172.20.16.133
Neighbor caps: refresh AS4
Session: external AS4
Source address: 172.22.68.1
Route limit: 468/10000
Hold timer: 179/240
Keepalive timer: 46/80
DNS
DN42不僅僅實現了功能變數名稱的注册,也實現了根功能變數名稱服務器以及下麵的分級功能變數名稱服務器
下麵是反向査詢我的一個ip地址,可以看出他和我們的實際網絡上的DNS査詢是十分相似的
[email protected]:~# dig @172.23.0.53 -x 172.22.68.8 +trace
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> @172.23.0.53 -x 172.22.68.8 +trace
; (1 server found)
;; global options: +cmd
. 67 IN NS t.root-servers.dn42.
. 67 IN NS a.root-servers.dn42.
. 67 IN NS x.root-servers.dn42.
. 67 IN NS m.root-servers.dn42.
;; Received 225 bytes from 172.23.0.53#53(172.23.0.53) in 1628 ms
22.172.in-addr.arpa. 7200 IN NS x.in-addr-servers.dn42.
22.172.in-addr.arpa. 7200 IN NS m.in-addr-servers.dn42.
22.172.in-addr.arpa. 7200 IN NS c.in-addr-servers.dn42.
;; Received 121 bytes from 172.23.67.67#53(m.root-servers.dn42) in 1319 ms
68.22.172.in-addr.arpa. 7200 IN NS d.dn42-servers.dn42.
68.22.172.in-addr.arpa. 7200 IN NS x.dn42-servers.dn42.
;; Received 162 bytes from 172.23.67.53#53(m.in-addr-servers.dn42) in 1059 ms
8.68.22.172.in-addr.arpa. 7200 IN CNAME 8.0/27.68.22.172.in-addr.arpa.
0/27.68.22.172.in-addr.arpa. 7200 IN NS ns2.imlonghao.dn42.
0/27.68.22.172.in-addr.arpa. 7200 IN NS ns1.imlonghao.dn42.
;; Received 124 bytes from fdea:a15a:77b9:4444::3#53(x.dn42-servers.dn42) in 349 ms
Peers
最後,如果你想加入的話,可以聯系我,也可以去到[email protected]這個IRC頻道尋求幫助