Win2008R2にWDの低速2tをx6でRAID5してる鯖で、シャドウコピーをONにしといたら、定期的にクライアントがWriteERRとか出してて、よく見たら特定の時間で、きっちりシャドウ実行時でしたというお話。
にゃんじゃそりゃふざけんにゃ
んにゃWriteがタイムアウトするようにゃもんのデフォが12:00とかどういう使われ方を想定してんだよ。
まぁ今回はディスクも遅いしドライブ容量もデカいけど、それでもちょっとにゃぁ
VC6が出てたので。
vm版をDLしてきて、webにある動画の通り、vyatta/vyattaで
configure
set interfaces ethernet eth0 address 192.168.123.123/24
set service ssh
set service https
commit
してあとはhttp叩けばGUIでさくさく設定できるが、CLIをそのまま展開しましたにゃGUIがにゃんというか鬼やにゃ。そんにゃGUIにゃら無くてもいいみたいにゃ。
で、肝心のポリシールーティングがsourceベースでまだ出来にゃいとか書いてあってマジかよって話にゃのでもうちょっとつっこんでみた。・・・が、これが思ったよりバグが多い。
vm対応版のisoから起動してvyatta/vyatta
install-system
rebootして
configure
set interfaces ethernet eth0 address 192.168.123.123/24
set service ssh
set service https
commit
save
sudo apt-get update
sudo apt-get dist-upgrade
ここからはhttp://192.168.123.123でいいが、
set interfaces ethernet eth1 pppoe 10
set interfaces ethernet eth1 pppoe 10 user-id mame
set interfaces ethernet eth1 pppoe 10 password siba
set interfaces ethernet eth1 pppoe 10 mtu 1438
run connect interface pppoe10
run show interfaces
commit
save
とかで一応pppoeまではいけて、natで
set service nat rule 10 source address 192.168.123.0/24
set service nat rule 10 outbound-interface pppoe10
set service nat rule 10 type masquerade
commit
show service nat
save
すれば通るはず、だったのだがこれが・・・
どうもPPPoEのMTU設定が効いてにゃい。というか、内部で丸められてにゃいので、クライアントからMTU1500で投げると通らにゃい。つまり全てのクライアントをMTU1438にすれば解決、という状態。
調べるとバグっぽくて、
/sbin/iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -s ${_SRC_NETWORK} -d ${_DST_NETWORK} -j TCPMSS --set-mss ${_MSS_SIZE}
/sbin/iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -s ${_SRC_NETWORK} -d ${_DST_NETWORK} -j TCPMSS --clamp-mss-to-pmtu
を/etc/rc.localにでも書いとけバーカとか書いてある。ざけんにゃ。何年も前のうちの自作iptables.shに書いてある物が何故書いてにゃい。
面倒にゃので/etc/rc.localに
/sbin/iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
を書いて本件は終了。うざい。これをベースに製品売ってるとか到底信じられにゃい。ていうか普通のlinuxでiptablesとか叩くのとどう違うのこれ。
・・・
その他細々した所は、
set system host-name inu
set system domain-name neko
set system login user vyatta authentication plaintext-password momonga
set system name-server 202.248.0.72
set system gateway-address 192.168.123.254
dns forwarderは
set service dns forwarding system
set service dns forwarding listen-on eth0
Firewallは
set firewall name Allow_Established
set firewall name Allow_Established rule 10
set firewall name Allow_Established rule 10 action accept
set firewall name Allow_Established rule 10 state established enable
set interfaces ethernet eth1 pppoe 10 firewall in name Allow_Established
set interfaces ethernet eth1 pppoe 10 firewall local name Allow_Established
dhcpは
set service dhcp-server shared-network-name Neko subnet 192.168.123.0/24 start 192.168.123.100 stop 192.168.123.199
set service dhcp-server shared-network-name Neko subnet 192.168.123.0/24 default-router 192.168.1.254
set service dhcp-server shared-network-name Neko subnet 192.168.123.0/24 dns-server 123.123.123.123
debugは
sudo bash
tcpdump
nat
#set service nat rule 20 type destination
#set service nat rule 20 inbound-interface pppoe10
#set service nat rule 20 protocol tcp
#set service nat rule 20 destination port 80
#set service nat rule 20 inside-address address 192.168.123.80
あとまあ、access-listとpolicy route-mapを使って、set ip-next-hopするとぎりぎり特定パケットをポリシールーティング出来そうにゃ気配だがそろそろ心が折れた。
これは大昔に作って今にゃお動いてるLinuxルータとやってることが同じだ。いや同じにゃのは良いんだが、それを簡易に設定出来るかというと全くそうではにゃく、さらに仕様とバグに挑む必要があるのにゃら、既存のiptablesとかベタ打ちスクリプト群でもういいよ、ってことで1日潰れた。うーんにゃんだろにゃこのソフト選定におけるセンスの無さみたいにゃ物は。