通過上一節的介紹,大家應該感受到了Docker的方便性和強大的功能。對於一個要求進步的網工,應該也不會止步於此。曾試想如果能自動構建起docker-compose腳本,那麼是不是很爽。
今天我將分享使用Perl腳本來構建OSPF-EIGRP重分佈的網絡結構圖。
網絡結構圖
此網絡結構有如下組成:
- 2個ASBR路由器,分別運行著OSPF和EIGRP。環回接口不進行重分發。
- 2個OSPF路由器,運行在Area0區域,環回接口地址重分發到OSPF路由表中。
- 2個EIGRP路由器, 運行在AS1自治系統中,環回接口地址重分發到EIGRP路由表中。
代碼說明
- 由於ASBR路由器個數通常是固定的,所以我們採用靜態指定的方式。
- OSPF和EIGRP路由器的個數通過命令行的方式來指定或者在腳本中手工指定。
- 代碼中針對ASBR,OSPF,EIGRP路由器各有1個循環來配置其docker啟動選項和配置文件。
- 各路由器除了互聯接口外還配置了loopback和eth1接口,便於擴展。
- 各路由器支持的協議通過daemon文件來動態調整
- 各路由器的基本配置(接口IP,路由協議)通過frr.conf來指定
具體的代碼可以在我的GitHub上下載,下載地址如下:
<code>git clone https://github.com/paulmao1/Routing-on-Docker.git/<code>
創建拓撲並啟動
<code>perl ospf-igrp.pl -n 2 > docker-compose.yml
docker-compose up/<code>
查看協議運行狀態
<code>ASBR1# show ip eigrp neighbors
EIGRP neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.110.253 eth0 10 0 0 2 0 4
0 192.168.110.102 eth0 11 0 0 2 0 4
0 192.168.110.101 eth0 14 0 0 2 0 4
asbr-r01# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
172.16.11.1 1 Full/DROther 38.618s 192.168.100.101 eth2:192.168.100.253 1 0 0
172.16.12.1 1 Full/DROther 38.621s 192.168.100.102 eth2:192.168.100.253 1 0 0
172.16.32.1 1 Full/DR 38.618s 192.168.100.254 eth2:192.168.100.253 1 0 0
/<code>
閱讀更多 飛輪的海 的文章