Viptela オーバレイでのパケットフィルタリング

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

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

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

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

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

vEdge1# show policy from-vsmart
% No entries found.
            

 

Centralized Control Policy適用後の疎通確認

R2からR1に対して、PingとTelnetを実施します。

 

vEdge2でTelnetパケットが破棄されるため、Telnetのみ失敗していることが確認できます。

R2 Ping

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

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コマンドを設定しておく必要があります。

vEdge2

policy
 flow-visibility
     

 

まずは、GUI上でログを確認するために、Monitor > Networkをクリックします。(Monitor > ACL Logからもログは確認できます。)

 

今回の検証でパケットフィルタリングを実施したvEdge2をクリックします。

 

ACL Logsをクリックすると、logオプションが有効なルールにマッチしたパケットの送信元アドレスと送信先アドレスが確認できます。
しかし、ポート番号やプロトコル番号、また、このパケットが許可/破棄されたかどうかはGUI上では確認できません。

 

より詳細なログを確認したい場合は、vEdgeにCLI経由でアクセスし、/var/log/messageファイルの中身を確認します。grep FLOWを使用することで、logオプションによって生成されたログのみ抽出できます。

vEdge2

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では未サポートのようです。

コメント

タイトルとURLをコピーしました