跳轉到內容

基於策略的彈性模擬器與OMNeT++/構建Distack

來自Wikibooks,開放世界中的開放書籍

Distack在64位系統上可以成功編譯(或者說是這樣),但在嘗試訪問庫時會報錯(與libdistack.so相關)。這就是為什麼我一開始建議使用32位作業系統的緣故。

安裝依賴項

[編輯 | 編輯原始碼]

構建Distack之前,您需要安裝一些依賴項

libxerces-c-dev libboost-all-dev autotools-dev automake autoconf libpthread-workqueue-dev libpthread-stubs0-dev libltdl-dev libpcap-dev gnuplot

下載和解壓

[編輯 | 編輯原始碼]

這裡(ID #7)下載Distack原始碼tar包。將其解壓到omnetpp資料夾。

修補ReaSE

[編輯 | 編輯原始碼]

現在將distack-1.2.3-dev/etc/patches/rease/distack_rease.patch複製到主目錄中的omnetpp資料夾(“ReaSE”資料夾的父目錄),並在終端中導航到該目錄,然後執行以下操作來應用補丁

patch -p0 < ./distack_rease.patch

您應該會看到如下輸出

patching file ReaSE/src/applications/util/DistackRAOData.msg
patching file ReaSE/src/applications/util/DistackRemoteTCPPayload.msg
patching file ReaSE/src/networklayer/ipv4/IP_hack.cc
patching file ReaSE/src/networklayer/ipv4/IP_hack.h
patching file ReaSE/src/networklayer/ipv4/IP_hack.ned
patching file ReaSE/src/nodes/inet/DDoSZombie.ned
patching file ReaSE/src/nodes/inet/DistackOmnetIDS.ned
patching file ReaSE/src/nodes/inet/DistackOmnetModule.ned
patching file ReaSE/src/nodes/inet/NetworkLayer_hack.ned
patching file ReaSE/src/nodes/inet/TraceRouter.ned
patching file ReaSE/src/nodes/inet/WormHost.ned
patching file ReaSE/src/transport/contract/DistackTCPSocketMap.cc
patching file ReaSE/src/transport/contract/DistackTCPSocketMap.h

如果碰巧檔案建立在臨時目錄中,例如ReaSE_patched,請確保將這些檔案複製到ReaSE/src目錄中。

重建ReaSE

[編輯 | 編輯原始碼]

現在進入OMNeT++ IDE,在專案資源管理器中右鍵單擊ReaSE,點選“清理專案”,然後按Ctrl +B專案 > 構建全部進行構建。

構建Distack

[編輯 | 編輯原始碼]

在終端中,導航到distack資料夾並執行

./bootstrap

在以下命令中,將<your_username>替換為您的使用者名稱

./configure CPPFLAGS='-I/home/<your_user_name>/omnetpp-4.1/include -I/home/<your_username>/inet/src/networklayer/ipv4 -I/home/<your_username>/inet/src/base -I/home/<your_username>/inet/src/networklayer/contract -I/home/<your_username>/inet/src/networklayer/common -I/home/<your_username>/inet/src/linklayer/contract -I/home/<your_username>/inet/src/transport/tcp -I/home/<your_username>/inet/src/transport/udp -I/home/<your_username>/inet/src/transport/contract -I/home/<your_username>/inet/src/networklayer/arp -I/home/<your_username>/ReaSE/src/transport/contract -I/home/<your_username>/ReaSE/src/base -I/home/<your_username>/ReaSE/src/applications/util' --enable-simulation=yes

然後執行

make

Distack庫將位於以下目錄:/distack/src/.libs/ 現在您需要修補INET和ReaSE。

ReaSE和XML-RPC · 修補INET和ReaSE

華夏公益教科書