VyOSでIP masqueradeの最小構成
VyOSで最小限のルータを設定する時のメモです。
前提
設定
GLOBAL側とINTERNAL側のインタフェースを設定します。
set interfaces ethernet eth0 description GLOBAL set interfaces ethernet eth0 address x.x.x.x/x set interfaces ethernet eth0 description INTERNAL set interfaces ethernet eth0 address 192.168.0.1/24
デフォルトゲートウエイを設定します。
set protocols static route 0.0.0.0/0 next-hop x.x.x.x
INTERNAL側からGLOBAL側へのIP Masqueradeを設定します。
set nat source rule 100 outbound-interface eth0 set nat source rule 100 source address 192.168.0.0/24 set nat source rule 100 translation address masquerade
INTERNAL側のDHCPサーバを設定します。
set service dhcp-server disabled false set service dhcp-server shared-network-name INTERNAL subnet 192.168.0.0/24 set service dhcp-server shared-network-name INTERNAL subnet 192.168.0.0/24 default-router 192.168.0.1 set service dhcp-server shared-network-name INTERNAL subnet 192.168.0.0/24 start 192.168.0.100 stop 192.168.0.200 set service dhcp-server shared-network-name INTERNAL subnet 192.168.0.0/24 dns-server x.x.x.x
GLOBAL側からINTERNAL側へのPort Forwardingを設定します。
set nat destination rule 1 destination address x.x.x.x set nat destination rule 1 destination port 3389 set nat destination rule 1 inbound-interface eth0 set nat destination rule 1 protocol tcp set nat destination rule 1 translation address 192.168.0.100
参考資料
Gradle SSH Plugin 2.3.0をリリースした
Gradle SSH Plugin 2.3.0、Groovy SSH 2.3.0をリリースしました。
2.3.0の変更点
リモートコマンドを実行する時にコマンドラインを簡単にエスケープする構文を追加しました。これまでは自分でエスケープする(シングルクォートで囲む、もしくはバックスラッシュを付ける)必要がありましたが、2.3.0からは execute
メソッドにリストが渡された場合は自動的にエスケープされて実行されます。
例えば、以下のようにLLのスクリプトをワンライナーで実行したい場合は便利でしょう。
execute(['perl', '-e', /print 'current: ', time, "\n"/])
また、2.3.0から複数の known_hosts
ファイルを指定できるようになりました。地味な改善ですが、実行時に別の known_hosts
をマージしたい場合などに役に立つと思います。
おまけ
5月中旬に入ってからダウンロード数が伸びています。2.0.0をリリースしてからだいぶ伸びているので、メジャーバージョンアップは効果があるということでしょうか。
ちなみに、Gradleで一度キャッシュされたら再びダウンロードされることはないので、新規ユーザがプラグインを使い始めたか、既存ユーザがバージョンを上げた場合にカウントされます。
Gradle SSH Plugin 2.2.0をリリースした
Gradle SSH Plugin/Groovy SSH 2.2.0をリリースしました。
2.2.0の変更点
authentications
でユーザ認証方式を指定できるようになりました。通常の使い方(パスワード認証、公開鍵認証)ではユーザ認証方式を指定する必要はありませんが、Kerberos認証などの特殊な認証方式を利用する場合は自分で指定します。
Stanford University LibrariesのJohnathan Martin氏から提案をいただいた機能追加なのですが、残念ながらKerberos認証は動作しなかったようです。JSchでKerberos認証をざっと調べてみましたが、ほとんど事例がないみたいです。
あと、 ssh.version
でバージョン情報を取得できるようにしました。バージョン情報にはJSchやGroovyなどのバージョンも含まれます。Issueのやり取りでバージョンを教えてくれということが多いので、簡単に調べられるように改善しました。
おまけ
Gradle - How do I get my plugin into the portal? で説明されている新方式でプラグインをpublishしたいのですが、Bintrayを使う旧方式ですでに公開済みの場合はコンフリクトしてしまうようです。Plugins PortalのマイページからReclaimできないので1週間ほど前に問合せしてみましたが回答なし。ちゃんと届いてないのかな。