読者です 読者をやめる 読者になる 読者になる

うまいぼうぶろぐ

linuxとhttpdとperlのメモ

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読まなければ。