vyattaでaddress-groupとnetwork-group,port-groupを同一の名前でcommitするとエラーになって設定がおかしくなる件
vyatta 勉強中でちょっと困っている。manual読んでないのでもしかしたら仕様かもしれないけど。
vyatta@vyatta$ configure vyatta@vyatta# set firewall group address-group hoge address 192.168.0.1 ### address-group huge を作って一旦commit vyatta@vyatta# commit yatta@vyatta# save Saving configuration to '/config/config.boot'... Done vyatta@vyatta# set firewall group network-group hoge network 192.168.0.0/24 ### network-group で同じhoge という名前でcommitしようとするとエラーになる vyatta@vyatta# commit [ firewall group network-group hoge ] Error: type mismatch [address] [network] Commit failed vyatta@vyatta# exit discard
address-group hugeを作ったあとnetwork-group hoge を作ろうとしてcommitで失敗する。エラーになったこと自体はexit discardで設定破棄して仕切り直しできるので問題ない。
vyatta@vyatta$ configure #### さっき作ったhoge と関係ない設定はcommit, saveできるが、、、 vyatta@vyatta# set firewall group address-group fuga address 192.168.1.1 vyatta@vyatta# commit vyatta@vyatta# save ### group hoge を使ったruleを書くと、、、 vyatta@vyatta# set firewall name untrust-to-local rule 100 action accept vyatta@vyatta# set firewall name untrust-to-local rule 100 protocol tcp vyatta@vyatta# set firewall name untrust-to-local rule 100 source group address-group hoge vyatta@vyatta# commit [ firewall name untrust-to-local ] Bad argument `Undefined' Try `iptables -h' or 'iptables --help' for more information. iptables error: No such file or directory - -m comment --comment "untrust-to-local-200" -p tcp Undefined group [hoge] -j RETURN at /opt/vyatta/sbin/vyatta-firewall.pl line 457. Commit failed ### 失敗する、そして削除もできない vyatta@vyatta# delete firewall group address-group hoge vyatta@vyatta# commit [ firewall group address-group hoge ] Error: group [hoge] doesn't exists Commit failed vyatta@vyatta# exit discard
commit時の失敗でvyattaのcliのエラーじゃなくて、iptables のsyntax errorが表示されていることから、address-groupとnetwork-groupで同じ名前にしたことで、内部でもっている設定がおかしくなっているっぽ?
/config/config.boot 自体は問題ない。
vyatta@vyatta# show firewall group address-group hoge { address 192.168.0.1 } vyatta@vyatta# more /config/config.boot firewall { group { address-group hoge { address 192.168.0.1 } }
load /config/config.boot してもダメ。とりあえずrebootをすればまたgroup hogeを削除、あるいはruleへの適用ができるようになることはわかっている。
(addres-group、network-groupを作るときには適当なsuffix/prefixを名前につけるようにすれば回避できるだろうけど)
document読まなければ。