ESXiの仮想ネットワークにVLANを指定することが出来たので、
ESXiでゲストOS毎にVLANで分けたい
次はRouterboardの方を設定しようかと。
やりたいことは、
・VLANはWANに出られる。
・VLAN10、20間での通信拒否(シスコでいう ip route ?)。
・bridge-localと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というのは上から順番に評価されていって、
そのパケットが該当する条件式だった場合そのルールによって処理されます。
そのパケットはそれより後方のルールは処理されません
これでした。。。。
よく考えれば(考えなくても。。。)そうですよね。。。。