RouterboardでVLANやってみた

ESXiの仮想ネットワークにVLANを指定することが出来たので、
ESXiでゲストOS毎にVLANで分けたい
次はRouterboardの方を設定しようかと。

やりたいことは、
・VLANはWANに出られる。
・VLAN10、20間での通信拒否(シスコでいう ip route ?)。
・bridge-localとVLANは通信可能。

VLAN

さてやってみようー
フォロワーの皆さん有り難う御座いました!


まずVLAN。

[admin@MikroTik] /interface vlan> print detail
Flags: X - disabled, R - running, S - slave
 0 R  name="vlan10" mtu=1500 l2mtu=1594 mac-address=4C:5E:0C:21:99:99
      arp=enabled vlan-id=10 interface=ether2 use-service-tag=no

 1 R  name="vlan20" mtu=1500 l2mtu=1594 mac-address=4C:5E:0C:21:99:A0
      arp=enabled vlan-id=20 interface=ether9 use-service-tag=no

ether2=VLAN10
ether9=VLAN20
としました。

VLAN毎にIPアドレスを設定。

[admin@MikroTik] /interface vlan> /ip address print detail
Flags: X - disabled, I - invalid, D - dynamic
 0 X ;;; default configuration
     address=192.168.88.1/24 network=192.168.88.0 interface=sfp1
     actual-interface=sfp1

 1   address=192.168.1.1/24 network=192.168.1.0 interface=bridge-local
     actual-interface=bridge-local

 2 D address=*.*.*.*/32 network=*.*.*.*
     interface=pppoe actual-interface=pppoe

 3   address=192.168.10.1/24 network=192.168.10.0 interface=vlan10
     actual-interface=vlan10

 4   address=192.168.20.1/24 network=192.168.20.0 interface=vlan20
     actual-interface=vlan20

VLAN10=192.168.10.1/24
VLAN20=192.168.20.1/24
とそれぞれIPアドレスを設定しました。

bridge-localとVLANで使うDHCPプールの設定

[admin@MikroTik] /ip pool> print 
 # NAME                                         RANGES                         
 0 dhcp                                         192.168.1.150-192.168.1.200    
 1 VLAN10-pool                                  192.168.10.2-192.168.10.5  

VLAN10で使うプールを作ります

プールをどこで使うかを設定

[admin@MikroTik] /ip dhcp-server> print 
Flags: X - disabled, I - invalid 
 #   NAME     INTERFACE     RELAY           ADDRESS-POOL     LEASE-TIME ADD-ARP
 0   default  bridge-local                  dhcp             3d        
 1   VLAN10   vlan10                        VLAN10-pool      3d

VLANで使うポートは分離しています

[admin@MikroTik] /interface vlan> /interface bridge port print
Flags: X - disabled, I - inactive, D - dynamic
 #    INTERFACE                    BRIDGE                   PRIORITY  PATH-COST    HORIZON
 0    ether3                       bridge-local                 0x80         10       none
 1 I  ether4                       bridge-local                 0x80         10       none
 2    ether5                       bridge-local                 0x80         10       none
 3    ether6                       bridge-local                 0x80         10       none
 4 I  sfp1                         bridge-local                 0x80         10       none
 5    wlan1                        bridge-local                 0x80         10       none
 6 I  ether7                       bridge-local                 0x80         10       none
 7 I  ether8                       bridge-local                 0x80         10       none
 8 I  ether10                      bridge-local                 0x80         10       none

ether2、ether9がいません。

Routeは勝手に追加されるみたい

[admin@MikroTik] /interface vlan> /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 ADS  0.0.0.0/0                          210.153.255.184           1
 1 ADC  192.168.1.0/24     192.168.1.1     bridge-local              0
 2 ADC  192.168.10.0/24   192.168.10.1   vlan10                   0
 3 ADC  192.168.20.0/24   192.168.20.1   vlan20                   0
 4 ADC  *.*.*.*/32 *.*.*.*  pppoe       0

Routeの詳細

[admin@MikroTik] /interface vlan> /ip route print detail
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
 0 ADS  dst-address=0.0.0.0/0 gateway= *.*.*.*
        gateway-status=*.*.*.* reachable via  pppoe distance=1
        scope=30 target-scope=10

 1 ADC  dst-address=192.168.1.0/24 pref-src=192.168.1.1 gateway=bridge-local
        gateway-status=bridge-local reachable distance=0 scope=10

 2 ADC  dst-address=192.168.10.0/24 pref-src=192.168.10.1 gateway=vlan10
        gateway-status=vlan10 reachable distance=0 scope=10

 3 ADC  dst-address=192.168.20.0/24 pref-src=192.168.20.1 gateway=vlan20
        gateway-status=vlan20 reachable distance=0 scope=10

 4 ADC  dst-address=*.*.*.*/32 pref-src=*.*.*.* gateway=pppoe
        gateway-status=pppoe reachable distance=0 scope=10

NATの設定をしないと、VLANネットワークは外に出られない

[admin@MikroTik] /ip route rule> /ip firewall nat print detail 
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; default configuration
     chain=srcnat action=masquerade src-address=192.168.1.0/24 
     out-interface=pppoe

 1   chain=srcnat action=masquerade src-address=192.168.10.0/24 
     out-interface=pppoe

 2   chain=srcnat action=masquerade src-address=192.168.20.0/24 
     out-interface=pppoe

このままではVLAN間で通信できてしまうので、
RouteでDropしてやる。
これでbridge-localとVLAN間、VLAN−WANの通信が可能。

[admin@MikroTik] /ip route rule> print detail 
Flags: X - disabled, I - inactive 
 0   src-address=192.168.10.0/24 dst-address=192.168.20.0/24 action=drop 
 1   src-address=192.168.20.0/24 dst-address=192.168.10.0/24 action=drop 

お互いのパケットをDropしています。

さてこれでも要件は見たせたのですが、

チミチミ、普通はFirewallで設定するのだよ。

との御指摘を頂いたので、FWで同じことが出来るかやってみた。

すごく簡単でした。
VLAN間の通信をDropするだけだと

[admin@MikroTik] /ip firewall filter> print 
chain=forward action=drop in-interface=all-vlan out-interface=all-vlan 

これをForward acceptの前に入れるだけで、
VLAN同士は不通、bridge-localからはどちらにも通信可能。
ACL作ってやる方法もありますが、今回は。。。w

もしくは

chain=forward action=drop in-interface=vlan10 out-interface=vlan20 
chain=forward action=drop in-interface=vlan20 out-interface=vlan10 

これで一つずつ設定することも出来る。

FWで出来ないなぁと思っていたのですが、

iptablesというのは上から順番に評価されていって、
そのパケットが該当する条件式だった場合そのルールによって処理されます。
そのパケットはそれより後方のルールは処理されません 

これでした。。。。
よく考えれば(考えなくても。。。)そうですよね。。。。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Enter code * Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください