BIG-IP スタティックルートによるルーティング

スポンサーリンク

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設定済とします。

bigip01 : BIG-IP 16.1.0
net vlan VLAN0010 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 10
}
net vlan VLAN0020 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 20
}
net vlan VLAN0030 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 30
}
net vlan VLAN0040 {
    interfaces {
        1.1 {
            tagged
        }
    }
    tag 40
}
net route-domain RD_0012 {
    id 12
    vlans {
        VLAN0010
        VLAN0020
    }
}
net route-domain RD_0034 {
    id 34
    vlans {
        VLAN0040
        VLAN0030
    }
}
net self SelfIP_VLAN0010 {
    address 192.168.10.1%12/24
    traffic-group traffic-group-local-only
    vlan VLAN0010
}
net self SelfIP_VLAN0020 {
    address 192.168.20.1%12/24
    traffic-group traffic-group-local-only
    vlan VLAN0020
}
net self SelfIP_VLAN0030 {
    address 192.168.30.1%34/24
    traffic-group traffic-group-local-only
    vlan VLAN0030
}
net self SelfIP_VLAN0040 {
    address 192.168.40.1%34/24
    traffic-group traffic-group-local-only
    vlan VLAN0040
}
ltm virtual RD0012_VS_FORWARD_ALL {
    destination 0.0.0.0%12:any
    ip-forward
    mask any
    profiles {
        fastL4 { }
    }
    serverssl-use-sni disabled
    source 0.0.0.0%12/0
    translate-address disabled
    translate-port disabled
}
ltm virtual RD0034_VS_FORWARD_ALL {
    destination 0.0.0.0%34:any
    mask any
    profiles {
        fastL4 { }
    }
    serverssl-use-sni disabled
    source 0.0.0.0%34/0
    translate-address disabled
    translate-port disabled
}
Router50 : VyOS 1.4
set interfaces ethernet eth0 address '192.168.20.50/24'
set interfaces ethernet eth0 hw-id '00:50:56:90:32:c5'
set interfaces ethernet eth1 address '192.168.40.50/24'
set interfaces ethernet eth1 hw-id '00:50:56:90:11:0b'
set interfaces loopback lo
set protocols static route 192.168.10.0/24 next-hop 192.168.20.1
set protocols static route 192.168.30.0/24 next-hop 192.168.40.1
set service ssh disable-host-validation
set system config-management commit-revisions '100'
set system conntrack modules ftp
set system conntrack modules h323
set system conntrack modules nfs
set system conntrack modules pptp
set system conntrack modules sip
set system conntrack modules sqlnet
set system conntrack modules tftp
set system console device ttyS0 speed '115200'
set system host-name 'vy050'
set system login user vyos authentication encrypted-password '$6$BLBE.ChYBI4ynui8$u2B.sTlyz1d.5GEjLyQKQmNRPN3kDHb3ynAzolORLLGOYe3up4u3vNg93QWk1DkOBbRNgkJJyYYVkrMofOFgw1'
set system login user vyos authentication plaintext-password ''
set system ntp server time1.vyos.net
set system ntp server time2.vyos.net
set system ntp server time3.vyos.net
set system syslog global facility all level 'info'
set system syslog global facility protocols level 'debug'

動作確認 (1) Netを使ったstatic route

static routeの定義

「Network」「Routes」の順に画面遷移し、「Add」を押下します。

static route 設定 01

「Name」には何か分かりやすい名前を入力します。Route Domainを使用する場合、「Destination」や「Gateway Address」は「<IPアドレス>%<RD番号>」の書式で入力します。例えば、「192.168.30.0%12」などです。

構成図を見ながら、Server10とServer30が互いに疎通可能になるstatic routeを入力します。

static route 設定 02

コマンドラインで操作する場合は以下の通りです。

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」の順に画面遷移し、「ルートドメイン名」を押下します。

ZebOSの有効化 01

「Dynamic Routing Protocols」欄について、最低、何か1つのルーティングプロトコルを有効にします。

ZebOSの有効化 02

コマンドラインで操作する場合は以下の通りです。

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 ~]# 
タイトルとURLをコピーしました