BIG-IPでStatic Routeを設定する方法を説明します。
動作確認の構成
構成図
「BIG-IP パーティションによる分割」の動作確認が終了した時点の構成を用いて動作確認をします。この構成で、Server10とServer30が互いに疎通できる設定を考察します。
+-----------------+ .50 | (Vyatta) | .50 +----------+ Router50 +----------+ | eth0 | | eth1 | | +-----------------+ | | | | 192.168.20.0/24 192.168.40.0/24 | | (vlan 20) (vlan 40) | | | | .1 | .1 +--------+--------+ +--------+--------+ | bigip01 | | bigip01 | | RouteDomain 12 | | RouteDomain 34 | | | | | +--------+--------+ +--------+--------+ | .1 | .1 | | | 192.168.10.0/24 192.168.30.0/24 | | (vlan 10) (vlan 30) | | | | .10 | .30 +--------+--------+ +--------+--------+ | | | | | Server10 | | Server30 | | (RockyLinux84) | | (RockyLinux84) | +-----------------+ +-----------------+
初期設定
BIG-IPの初期設定は以下の通りとします。Router50にはStatic Routing設定済とします。
動作確認 (1) Netを使ったstatic route
static routeの定義
「Network」「Routes」の順に画面遷移し、「Add」を押下します。
「Name」には何か分かりやすい名前を入力します。Route Domainを使用する場合、「Destination」や「Gateway Address」は「<IPアドレス>%<RD番号>」の書式で入力します。例えば、「192.168.30.0%12」などです。
構成図を見ながら、Server10とServer30が互いに疎通可能になるstatic routeを入力します。
コマンドラインで操作する場合は以下の通りです。
create net route RD0012_ROUTE_30 network 192.168.30.0%12/24 gw 192.168.20.50%12 create net route RD0034_ROUTE_10 network 192.168.10.0%34/24 gw 192.168.40.50%34
static routeの確認
tmosでstatic routeを確認すると以下のようになります。
[bigip01:BIG-IP 16.1.0] root@(localhost)(cfg-sync Standalone)(Active)(/Common)(tmos)# list net route net route RD0012_ROUTE_30 { gw 192.168.20.50%12 network 192.168.30.0%12/24 } net route RD0034_ROUTE_10 { gw 192.168.40.50%34 network 192.168.10.0%34/24 } root@(localhost)(cfg-sync Standalone)(Active)(/Common)(tmos)#
BIG-IPはCentOSをベースに作成されたOSですので、一般的なLinuxコマンドで確認する事もできます。例えば、rdsh入力後に、ip routeコマンド等でも確認可能です。
定義されたstatic routeが「proto kernel」と記載されている事に着目ください。一方、後述のZebOSを使用した操作では「proto zebra」となり、どのような操作によって作成されたstatic routeかを確認する事ができます。
[bigip01:BIG-IP 16.1.0] [root@localhost:Active:Standalone] config # rdsh 12 [root@localhost:Active:Standalone] config # ip route 127.1.1.0/24 dev if3 proto kernel scope link src 127.1.1.254 192.168.10.0/24 dev if5 proto kernel scope link src 192.168.10.1 192.168.20.0/24 dev if7 proto kernel scope link src 192.168.20.1 192.168.30.0/24 via 192.168.20.50 dev if7 [root@localhost:Active:Standalone] config #
疎通確認
server10からserver30へ疎通可能である事を確認します。
[server10:RockyLinux8.4] [root@server010 ~]# traceroute -n 192.168.30.30 traceroute to 192.168.30.30 (192.168.30.30), 30 hops max, 60 byte packets 1 192.168.10.1 0.465 ms 0.349 ms 0.337 ms 2 192.168.20.50 0.932 ms 0.906 ms 1.344 ms 3 192.168.40.1 1.554 ms 1.543 ms 1.512 ms 4 192.168.30.30 1.901 ms * 2.402 ms [root@server010 ~]# [root@server010 ~]# [root@server010 ~]# ping -c 3 192.168.30.30 PING 192.168.30.30 (192.168.30.30) 56(84) bytes of data. 64 bytes from 192.168.30.30: icmp_seq=1 ttl=61 time=1.46 ms 64 bytes from 192.168.30.30: icmp_seq=2 ttl=61 time=1.23 ms 64 bytes from 192.168.30.30: icmp_seq=3 ttl=61 time=1.21 ms --- 192.168.30.30 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 1.206/1.296/1.458/0.121 ms [root@server010 ~]#
疎通確認後、次の動作確認に備え、static routeを削除します。
delete net route RD0012_ROUTE_30 delete net route RD0034_ROUTE_10
動作確認 (2) ZebOSを使ったstatic route
ZebOSの起動
BIG-IPは、ダイナミックルーティング目的でZebOSが導入されています。若干、邪道な使い方ではありますが、このZebOSをstatic route目的で使用する事もできます。
ZebOSを起動するためには、何らかのルーティングプロトコルを有効にする必要があります。「Network」「Route Domains」の順に画面遷移し、「ルートドメイン名」を押下します。
「Dynamic Routing Protocols」欄について、最低、何か1つのルーティングプロトコルを有効にします。
コマンドラインで操作する場合は以下の通りです。
modify net route-domain RD_0012 routing-protocol replace-all-with { OSPFv2 } modify net route-domain RD_0034 routing-protocol replace-all-with { OSPFv2 }
ZebOSが有効になっているかどうか不安な場合は、以下のようにzebosコマンドを使用すると起動有無を確認できます。
[bigip01:BIG-IP 16.1.0] [root@localhost:Active:Standalone] config # zebos -a check === route domain: 0 === === route domain: 12 === nsm is running [2296] imi is running [2295] ospfd is running [2300] === route domain: 34 === nsm is running [2385] imi is running [2384] ospfd is running [2386] [root@localhost:Active:Standalone] config #
static routeの定義
ZebOSを操作するには、imishと呼ばれるコマンドラインツールを使用します。書式は以下の通りです。
imish -r <RD番号>
操作例は以下の通りです。Cisco IOSとほぼ同等の操作感です。
[root@localhost:Active:Standalone] config # imish -r 12 localhost.localdomain[12]>enable localhost.localdomain[12]#configure terminal Enter configuration commands, one per line. End with CNTL/Z. localhost.localdomain[12](config)#ip route 192.168.30.0/24 192.168.20.50 localhost.localdomain[12](config)#end localhost.localdomain[12]#exit [root@localhost:Active:Standalone] config # [root@localhost:Active:Standalone] config # [root@localhost:Active:Standalone] config # imish -r 34 localhost.localdomain[34]>enable localhost.localdomain[34]#configure terminal Enter configuration commands, one per line. End with CNTL/Z. localhost.localdomain[34](config)#ip route 192.168.10.0/24 192.168.40.50 localhost.localdomain[34](config)#end localhost.localdomain[34]#exit [root@localhost:Active:Standalone] config #
static routeの確認
imishコマンドを使用すれば、Cisco IOSのようなstatic routeの確認が可能です。
[root@localhost:Active:Standalone] config # imish -r 12 localhost.localdomain[12]>show ip route Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default C 127.0.0.1/32 is directly connected, lo C 127.1.1.254/32 is directly connected, tmm C 192.168.10.0/24 is directly connected, VLAN0010 C 192.168.20.0/24 is directly connected, VLAN0020 S 192.168.30.0/24 [1/0] via 192.168.20.50, VLAN0020 Gateway of last resort is not set localhost.localdomain[12]>exit [root@localhost:Active:Standalone] config # [root@localhost:Active:Standalone] config # [root@localhost:Active:Standalone] config # imish -r 34 localhost.localdomain[34]>show ip route Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default C 127.0.0.1/32 is directly connected, lo C 127.1.1.254/32 is directly connected, tmm S 192.168.10.0/24 [1/0] via 192.168.40.50, VLAN0040 C 192.168.30.0/24 is directly connected, VLAN0030 C 192.168.40.0/24 is directly connected, VLAN0040 Gateway of last resort is not set localhost.localdomain[34]>
rdsh入力後に、ip routeコマンド等でも確認可能です。
前述のtmosを使った操作では「proto zebra」となっていましたが、今回のZebOSを使った操作では「proto zebra」と記載されています。
[bigip01:BIG-IP 16.1.0] [root@localhost:Active:Standalone] config # rdsh 12 [root@localhost:Active:Standalone] config # ip route 127.1.1.0/24 dev if3 proto kernel scope link src 127.1.1.254 192.168.10.0/24 dev if5 proto kernel scope link src 192.168.10.1 192.168.20.0/24 dev if7 proto kernel scope link src 192.168.20.1 192.168.30.0/24 via 192.168.20.50 dev if7 proto zebra [root@localhost:Active:Standalone] config #
疎通確認
server10からserver30へ疎通可能である事を確認します。
[server10:RockyLinux8.4] [root@server010 ~]# traceroute -n 192.168.30.30 traceroute to 192.168.30.30 (192.168.30.30), 30 hops max, 60 byte packets 1 192.168.10.1 0.443 ms 0.325 ms 0.356 ms 2 192.168.20.50 1.216 ms * 1.120 ms 3 * 192.168.40.1 1.394 ms 1.134 ms 4 192.168.30.30 2.357 ms * * [root@server010 ~]# [root@server010 ~]# [root@server010 ~]# ping -c 3 192.168.30.30 PING 192.168.30.30 (192.168.30.30) 56(84) bytes of data. 64 bytes from 192.168.30.30: icmp_seq=1 ttl=61 time=1.66 ms 64 bytes from 192.168.30.30: icmp_seq=2 ttl=61 time=1.63 ms 64 bytes from 192.168.30.30: icmp_seq=3 ttl=61 time=1.39 ms --- 192.168.30.30 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min/avg/max/mdev = 1.392/1.559/1.658/0.123 ms [root@server010 ~]#