EdgeRouterでPBRします。PBRはネットワーク設計により様々なパターンが考えられますが、よくあるのは「特定の送信元アドレスを持つ通信のデフォルトルートを変えたい」ではないでしょうか。EdgeRouterは基本的にVyOSがベースとなっていますが、設定手法は若干異なっています。
前提条件
- 特定のセグメント(192.168.0.0/24とします)のみPBRする
- PBRはデフォルトルートのみとし、プライベートアドレスはPBRの対象としない
PBRの設定
既に設定済みの内容をshowコマンドでみています。
PBR通信のネクストホップを設定する
table 1のデフォルトルートのネクストホップは192.168.200.1とします。
# show protocols static table
table 1 {
route 0.0.0.0/0 {
next-hop 192.168.200.1 {
}
}
}
プライベートアドレスのネットワークグループを作る
これは除外するプライベートアドレスのリストです。
# show firewall group network-group RFC1918
network 10.0.0.0/8
network 172.16.0.0/12
network 192.168.0.0/16
PBRのルールを作る
プライベートアドレスはmainのテーブル(通常のルーティングテーブル)を参照し(PBRから除外)、それ以外で且つ送信元が192.168.0.0/24である通信のみPBR対象とします。
除外しないと全ての通信がPBR対象となり、管理通信等に問題がでる可能性があります。それを前提としたネットワーク設計にしている場合などはその限りではありません。
# show firewall modify nw1-pbr
rule 1 {
action modify
destination {
group {
network-group RFC1918
}
}
modify {
table main
}
}
rule 2 {
action modify
modify {
table 1
}
source {
address 192.168.0.0/24
}
}
インターフェイスに割り当てて有効にする
PBRしたい側のインターフェイスのファイアウォール設定のinにmodifyで割り当てると有効になります。
# show interfaces ethernet eth0 firewall
in {
modify nw1-pbr
}
EdgeRouterでPBR(Policy Based Routing)