Edited at

Yosemite で F5 FirePass を動かす

More than 3 years have passed since last update.

Yosemite で F5 Networks の FirePass (SSL-VPN) が動作しない問題。

https://discussions.apple.com/thread/6679959

F5 でもサポートされる様子がないため、いろいろ試して自力解決しました。

通常通り FirePass で接続後、

sudo route add -net 0/1 -interface ppp0

のようにルート情報を手動追加で OK でした。


0/1 である必要は特になく、単に Mavericks の時に FirePass が追加していたのが 0/1 だったからです。



既存の network と併用したい場合

sudo route -n add -net A.B.C -interface ppp0

のように、特定の subnet 向けの通信をルーティングすれば OK です。


ppp0 の default ルートが追加される場合もあるので、netstat -rn -f inet で確認して、存在していたら sudo route -n delete -net default -ifscope ppp0 をした方がいいかも。


ただし自分の場合は DNS の情報が変更されていて、IP アドレスベースでは接続できるものの名前解決ができず、ホスト名ベースで web や ssh 等が使えませんでした。

dig/nslookup では名前解決できるんですが、何故か ping だと Unknown Host となるので、scutil で DNS の設定を書き換えます。

ここでは 8.8.8.8 (Google の Public DNS) を指定しています。

sudo scutil <<EOF

get State:/Network/Service/F5NetworksServicePPP/DNS
d.add ServerAddresses * 8.8.8.8
set State:/Network/Service/F5NetworksServicePPP/DNS
quit
EOF

これで VPN 接続しながら、外部ネットワークにも VPN を介さず自由に通信できるようになりました。


/etc/resolv.conf は見ていないようで、Mac の名前解決の仕組みがいまいち理解できていない。。


ちなみに FirePass ではない場合でも、

scutil <<<'list ".*DNS"'

とすれば、DNS 系の Key 一覧が取得できるので、

scutil

> get [key_name]
> d.show

のように設定を確認できます。


VPN 接続時に自動で設定したい場合

毎回入力するのが面倒であれば、/etc/ppp/ip-up を作成し、

#!/bin/sh

if [ "$1" = "ppp0" ]; then
/sbin/route add -net 0/1 -interface ppp0
fi

とかしておくと少しだけ幸せになれるかも。


要 chmod 755、複数のVPNを併用している場合はもう少し調整が必要。