こんにちは。Masatoです
今回は標記の通り、VyOS1.5でPolicy-Based Routing (PBR)を用いてVLANごとにWANを分ける方法をまとめておきたいと思います
前提条件
- Version: VyOS 1.5-rolling-202411070006
- WAN側インターフェースの設定は済んでいること
- 公式文献:https://docs.vyos.io/en/latest/configuration/policy/examples.html#multiple-uplinks
今回の環境
- WAN側
- WAN1:NURO光 10G
- eth2(RJ-45)にNUROのONU/ルーターを接続
- WAN2:フレッツ光 ネクスト v6プラス固定IP (enひかり)
- eth5(SFP+)に小型ONUを接続
- tun1にv6プラス固定IPのIPIP6トンネルを接続
- WAN1:NURO光 10G
- LAN側
- VLAN10
- WAN1と接続
- VLAN110
- WAN2と接続
- VLAN10
設定
VLANの作成
VLAN10(WAN1)
set interfaces ethernet eth3 vif 10 address '10.11.10.254/24' set interfaces ethernet eth3 vif 10 address '2001:db8:3333:4444:10:11:10:254/64' set interfaces ethernet eth3 vif 10 description 'VLAN10'
VLAN110(WAN2)
set interfaces ethernet eth3 vif 110 address '10.11.110.254/24' set interfaces ethernet eth3 vif 110 address '2001:db8:3333:5555:10:11:110:254/64' set interfaces ethernet eth3 vif 110 description 'VLAN110'
ルーティングテーブルの作成
VLAN10(WAN1)
set protocols static route 0.0.0.0/0 next-hop 10.11.1.1 distance '10' set protocols static route6 ::/0 next-hop fe80::10:11:1:1 distance '10' set protocols static table 10 route 0.0.0.0/0 next-hop 10.11.1.1 set protocols static table 10 route6 ::/0 next-hop fe80::10:11:1:1 interface 'eth2'
ルーティングテーブル 10においては、next-hopにて経路を指定している
VLAN110(WAN2)
set protocols static route 0.0.0.0/0 interface tun1 distance '20' set protocols static route6 ::/0 next-hop 2001:db8:3333:4444:5555:6666:7777:8888 interface 'eth5' set protocols static table 20 route 0.0.0.0/0 interface tun1 set protocols static table 20 route6 ::/0 next-hop 2001:db8:3333:4444:5555:6666:7777:8888 interface 'eth5'
ルーティングテーブル20においては、IPv4はIPIP6トンネルインターフェースを指定し、IPv6はnext-hopにて経路を指定している
VLAN間トラフィックのグループ作成
IPv4
set firewall group network-group VLANS-GR description 'VLANs Networks' set firewall group network-group VLANS-GR network '10.11.10.0/24' set firewall group network-group VLANS-GR network '10.11.110.0/24'
VLAN10とVLAN110のIPv4セグメントをVLANS-GRというグループに入れます
IPv6
set firewall group ipv6-network-group VLANSv6-GR description 'VLANs-v6 networks' set firewall group ipv6-network-group VLANSv6-GR network '2001:db8:3333:4444::/64' set firewall group ipv6-network-group VLANSv6-GR network '2001:db8:3333:5555::/64'
VLAN10とVLAN110のIPv6セグメントをVLANSv6-GRというグループに入れます
VLAN間トラフィックのグループ適用
IPv4
set policy route PBR rule 10 description 'VLAN shortcut' set policy route PBR rule 10 destination group network-group 'VLANS-GR' set policy route PBR rule 10 set table 'main'
IPv6
set policy route6 PBR rule 10 description 'VLAN-v6 shortcut' set policy route6 PBR rule 10 destination group network-group 'VLANSv6-GR' set policy route6 PBR rule 10 set table 'main'
PBRルールの作成
IPv4
set policy route PBR rule 111 description 'Route VLAN10 to table 10' set policy route PBR rule 111 set table '10' set policy route PBR rule 111 source address '10.11.10.0/24' set policy route PBR rule 121 description 'Route VLAN110 traffic to table 20' set policy route PBR rule 121 set table '20' set policy route PBR rule 121 source address '10.11.110.0/24'
IPv6
set policy route6 PBR rule 111 set table '10' set policy route6 PBR rule 111 source address '2001:db8:3333:4444::/64' set policy route6 PBR rule 121 set table '20' set policy route6 PBR rule 121 source address '2001:db8:3333:5555::/64'
インターフェースをPBR対象に追加
IPv4
set policy route PBR interface 'eth3.10' set policy route PBR interface 'eth3.110'
IPv6
set policy route6 PBR interface 'eth3.10' set policy route6 PBR interface 'eth3.110'
以上でVLANごとにWANをわける事が可能になります。
終わりに
VyOSを使ってVLANごとにWANをわけることができました。
参考になれば幸いです。
(不明点とか誤記があればコメントください)