Viptelaでは、vSmartからvEdge間で構成されるオーバレイネットワーク全体を制御します。
オーバレイネットワークの制御には、Centralized Control Policyを使用します。
この記事では、Centralized Control Policyを使用したパケットフィルタリング機能を説明します。
概要
Viptelaのパケットフィルタリングの方式
一般的にViptelaで使用されるパケットフィルタリングの方式は以下の2種類になります。
- アンダーレイでのACLを使用したパケットフィルタリング
- オーバレイでのCentralized Control Policyを使用したパケットフィルタリング
アンダーレイでのパケットフィルタリングは、従来のCiscoのルータやスイッチと同様にACLを使用して、IPアドレスやポート番号等を条件に、パケットを識別し、許可/破棄等を実施します。
オーバレイでのパケットフィルタリングは、Centralized Control Policyを使用して、vManageから集中管理、設定変更等を実施します。
Centralized Control Policyを使用したパケットフィルタリングの大きなメリットは、パケットの識別条件にTwitterやSlack等のアプリケーションを使用できる点になります。
これにより、特定のアプリーケーションへの通信を容易にブロックすることが可能になります。
ACLとCentralized Control Policy以外にも、昔からCiscoのルータ等で実装されているZBFW(Zone Base FireWall)もサポートされています。
検証環境、内容
検証内容
vEdge2において、LANから受信したパケットをオーバレイに転送する際、Telnetのパケットを破棄する。
(インターネットに出れない閉じた環境で検証しているので、アプリケーションではなく、従来のIPアドレスやポート番号を条件に使用します。。。)
物理/論理構成
オーバレイネットワーク構成
初期設定
system
system-ip 10.1.10.11
site-id 10
organization-name "Criterio1 - 19101"
vbond 172.16.10.21
!
vpn 0
interface eth0
ip address 172.16.10.11/24
tunnel-interface
no shutdown
!
ip route 0.0.0.0/0 172.16.10.254
system
host-name vBond
system-ip 10.1.10.21
site-id 10
organization-name "Criterio1 - 19101"
vbond 172.16.10.21 local vbond-only
!
vpn 0
interface ge0/0
ip address 172.16.10.21/24
tunnel-interface
encapsulation ipsec
!
no shutdown
!
ip route 0.0.0.0/0 172.16.10.254
system
host-name vSmart
system-ip 10.1.10.31
site-id 10
organization-name "Criterio1 - 19101"
vbond 172.16.10.21
!
vpn 0
interface eth0
ip address 172.16.10.31/24
tunnel-interface
no shutdown
!
ip route 0.0.0.0/0 172.16.10.254
system
host-name vEdge1
system-ip 1.1.1.1
site-id 1
organization-name "Criterio1 - 19101"
vbond 172.16.10.21
!
vpn 0
interface ge0/0
ip address 172.16.1.1/24
tunnel-interface
encapsulation ipsec
color biz-internet restrict
!
no shutdown
!
ip route 0.0.0.0/0 172.16.1.254
!
vpn 10
interface ge0/1
ip address 10.1.1.1/24
no shutdown
system
host-name vEdge2
system-ip 2.2.2.2
site-id 2
organization-name "Criterio1 - 19101"
vbond 172.16.10.21
!
vpn 0
interface ge0/0
ip address 172.16.2.2/24
tunnel-interface
encapsulation ipsec
color biz-internet restrict
!
no shutdown
!
ip route 0.0.0.0/0 172.16.2.254
!
vpn 10
interface ge0/1
ip address 20.1.1.2/24
no shutdown
!
policy
flow-visibility
aaa new-model
!
aaa authentication login default none
aaa authentication enable default none
!
interface GigabitEthernet2
ip address 10.1.1.11 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.1.1
!
line vty 0 4
privilege level 15
transport input telnet
interface GigabitEthernet2
ip address 20.1.1.12 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 20.1.1.2
interface GigabitEthernet2
ip address 172.16.1.254 255.255.255.0
!
interface GigabitEthernet3
ip address 172.16.2.254 255.255.255.0
!
interface GigabitEthernet4
ip address 172.16.10.254 255.255.255.0
設定、動作確認
Centralized Control Policy適用前の疎通確認
R2からR1に対して、PingとTelnetを実施します。
現在はCentralized Control Policy適用前なので、vEdge2はICMPとTelnetの両方のパケットを破棄せず、転送していることが確認できます。
R2#ping 10.1.1.11 source 20.1.1.12
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.11, timeout is 2 seconds:
Packet sent with a source address of 20.1.1.12
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
R2#telnet 10.1.1.11 /source-interface GigabitEthernet2
Trying 10.1.1.11 ... Open
R1#
VPN Listの確認
Centralized Control Policyを作成する前に、事前に幾つか別のコンポーネントを作成しておく必要があります。
最初に、パケットフィルタリング対象のVPNを指定するためのコンポーネントであるVPN Listの内容を確認します。
まずは、Configuration > Policiesをクリックします。
そして、Custom Options > Centralized Policy > Listsをクリックします。
画面左のVPNをクリックします。
このVPN Listで、パケットフィルタリング実施対象のVPNのIDを指定します。
Site Listの確認
パケットフィルタリングを実施するSiteを指定するためのコンポーネントであるSite Listの内容を確認するために、画面左のSiteをクリックします。
このSite Listで、パケットフィルタリング実施対象のSiteのIDを指定します。
Traffic Data Policyの確認
次は、フィルタリングのルールを定義するコンポーネントであるTraffic Data Policyの内容を確認するためにCustom Options > Centralized Policy > Traffic Policyをクリックします。
Traffic Dataをクリックします。
Traffic Data Policyは、複数のルールから構成されており、ルールはConditionとActionから構成されています。
Traffic Data Policyはパケットフィルタリング以外には、ローカルブレイクアウトやアプリケーションベースのパス制御等でも使用されます。
今回は、Telnet用のパケットを破棄するルールを作成します。また、vEdge2において、Telnetパケットが破棄されたことを確認するために、Logオプションを有効にします。
Traffic Data PolicyのDefault Actionでは、ユーザが定義したルールにもマッチしないパケットを許可/破棄するかを指定します。
Centralized Control Policyの確認
上記で定義したVPN List、Site Lict、Traffic Data PolicyはCentralized Control Policyから参照されます。
Traffic Rules > Traffic DataからCentralized Control Policyに対してTraffic Data Policyをインポートします。
Policy Application > Traffic DataからインポートしたTraffic Data Policyの適用先のSiteとVPNを指定します。
DirectionがFrom Serviceの場合、Service SideであるLAN側から受信したパケットに対して、Traffic Data Policyを適用します。
DirectionがFrom Tunnelの場合、オーバレイトンネル側から受信したパケットに対して、Traffic Data Policyを適用します。
vSmartへのCentralized Control Policyの適用
vSmartに対してCentralized Control Policyを適用するには、vSmartがvManageモードで動作している必要があります。
vSmartをCLIモードからvManageモードに変更する方法は、こちらの記事にまとめております。
Centralized Control Policyの適用は非常に簡単で、適用したいCentralized Control Policyの… > Activateをクリックします。
最後にもう一度、Activateをクリックします。
Centralized Control Policy適用後のvSmartの状態確認
vSmartに対してCentralized Control Policyを適用すると、vManageからvSmartにCLI用のコマンドが自動的に投入されます。
vSmartに投入されたCentralized Control Policy用のコマンドは、show runコマンドで確認可能です。
vSmart# show run
.
<一部省略>
.
policy
data-policy _VPN_10_Traffic_Data_Policy
vpn-list VPN_10
sequence 1
match
source-ip 0.0.0.0/0
destination-port 23
protocol 6
!
action drop
log
!
!
default-action accept
!
!
lists
vpn-list VPN_10
vpn 10
!
site-list Site_2
site-id 2
!
!
!
apply-policy
site-list Site_2
data-policy _VPN_10_Traffic_Data_Policy from-service
Centralized Control Policy適用後のvEdgeの状態確認
vSmartはvManageからCentralized Control Policyの情報を受信後、Site Listで指定したSiteに所属するvEdgeに対してのみ、Centralized Control Policyの情報を転送します。
今回、vEdge2でパケットフィルタリングを実施するので、vSmartはvEdge2に対してのみCentralized Control Policyの情報を転送します。
vEdgeが受信したCentralized Control Policyの情報はshow policy from-vsmartコマンドで確認できます。
vEdge2# show policy from-vsmart
from-vsmart data-policy _VPN_10_Traffic_Data_Policy
direction from-service
vpn-list VPN_10
sequence 1
match
source-ip 0.0.0.0/0
destination-port 23
protocol 6
action drop
log
default-action accept
from-vsmart lists vpn-list VPN_10
vpn 10
試しに、vEdge1でshow policy from-vsmartコマンドを実行してみると、vEdge1はvSmartからCentralized Control Policyの情報を受信していないことが確認できます。
vEdge1# show policy from-vsmart
% No entries found.
Centralized Control Policy適用後の疎通確認
R2からR1に対して、PingとTelnetを実施します。
vEdge2でTelnetパケットが破棄されるため、Telnetのみ失敗していることが確認できます。
R2#ping 10.1.1.11 source 20.1.1.12
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.11, timeout is 2 seconds:
Packet sent with a source address of 20.1.1.12
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
R2#telnet 10.1.1.11 /source-interface GigabitEthernet2
Trying 10.1.1.11 ...
% Connection timed out; remote host not responding
ログの確認
Traffic Data Policyのアクションのlogオプションによって生成されたログを確認します。
vEdgeでログを生成するには、事前にflow-visibilityコマンドを設定しておく必要があります。
policy
flow-visibility
まずは、GUI上でログを確認するために、Monitor > Networkをクリックします。(Monitor > ACL Logからもログは確認できます。)
今回の検証でパケットフィルタリングを実施したvEdge2をクリックします。
ACL Logsをクリックすると、logオプションが有効なルールにマッチしたパケットの送信元アドレスと送信先アドレスが確認できます。
しかし、ポート番号やプロトコル番号、また、このパケットが許可/破棄されたかどうかはGUI上では確認できません。
より詳細なログを確認したい場合は、vEdgeにCLI経由でアクセスし、/var/log/messageファイルの中身を確認します。grep FLOWを使用することで、logオプションによって生成されたログのみ抽出できます。
vEdge2# vshell
vEdge2:~$ cat /var/log/messages | grep FLOW
local7.notice: Apr 4 19:54:24 vedge FTMD[1104]: %Viptela-vedge-FTMD-5-NTCE-1000026: FLOW LOG vpn-10 20.1.1.12/27649 10.1.1.11/23 tcp: tos: 192 invalid, flow-visibility, Result: denyPkt count 1: Byte count 60 Ingress-Intf ge0/1 Egress-intf cpu
ちなみに、このログの出力はcEdgeでは未サポートのようです。
コメント