1. はじめに
クラウドシステムの基盤構築を行う上で、ネットワークは重要な要素の一つです。学習する上で実機を使って行うほうが、理解が深まります。
ただ、必要な機材を準備すると費用と時間がかかりますが、SoftLayreを使って、安く短時間に実機で構築学習を行います。
(これがクラウドの良いところだです。)
今回は、基本としてGREの設定してみます。
2. GREについて
GRE(Generic Routing Encapsulation)の前に、VPNについてを説明します。
VPN(Virtual Private Network)は文字通り、公衆ネットワーク(Internet)を介してプライベートネットワーク間を接続します。
ネットワークは、あたかも自分専用の回線として接続されますので、公衆ネットワーク経由でもセキュリティを高めてくれます。
そのVPNの仕組みで重要な要素は、
(1)トンネリング-----経路
(2)暗号化------------データ です。
GREはトンネリングプロトコルのひとつで、他には
・Layer2トンネリングのL2F, PPTP, L2TP
・Layer3トンネリングのGRE, IPsec などがあります。
また、暗号化はIPsecのみですので、L2TP/IPsecのようにトンネリングと暗号化を組み合わせて利用します。
今回は、GREのトンネリングだけで暗号化は行いません。
3. 構成について
SoftLayerのシンガポールと東京の2ロケーションをGRE(VyOS)で接続して、各ロケーションにデプロイしたWindows2012サーバ間でデータの送受信を行います。
注意点として、VLANスパニングをオフにして、2ロケーションのプライベートネットワークが接続されていない状態で確認テストを行います。
また、VyOSの導入は下記情報などを参考にしてください。
QIITA「SoftLayer仮想サーバにVyOSをインストールしました」
http://qiita.com/Mitsu-Murakita/items/d793250566a8e9f3562b
4. 構築手順
5. 構築
VyOSの基本的な操作について
VyOSには「一般モード」(プロンプト$)と「設定モード」(プロンプト#)があります。
モード変更は、
・「一般モード」から「設定モード」へ変更は”configure”コマンド
・「設定モード」から「一般モード」へ変更は"exit"コマンド です。
「一般モード」では、設定状態や動作状態が確認できます。
「設定モード」では、動作のための値が設定できます。
「設定モード」でよく使うコマンドは、
"set"-------値の入力
"delete"---値の削除
"discard"--入力した値の破棄(commit前なら有効)
"commit"--入力した値の有効化
"save"-----保存(saveしないで再起動すると、値が消えてしまいます。)
"show"----構成情報の表示
5-1. VLANスパニングをOFF
SoftLayerポータルでの操作です。
「Network」⇒「VLANs」⇒「Span」タグ
以上で「VLANスパニングをOFF」完了です。
※テスト終わりましたら、ONに戻してください。
5-2. VyOS-TOK(VyOS)の設定
まず、Tokyo側から設定。
IPをまだ設定してないので、SoftLayerのKVM操作です。
VyOSの初期値は下記の通りです。
interfaces {
ethernet eth0 {
hw-id 06:ce84:86:0a:e6
}
ethernet eth1 {
hw-id 06:96:da:92:17:25
}
loopback lo {
}
}
system {
config-management {
commit-revisions 20
}
console {
device hvc0 {
speed 9600
}
device ttyS0 {
speed 9600
}
}
login {
user vyos {
authentication {
encrypted-password
plaintext-password ""
}
level admin
}
}
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
}
package {
repository community {
components main
distribution helium
url http://packages.vyos.net/vyos
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
}
この初期値に値を設定していきます。
IP(interface)の設定
ここでは、eth0がプライベート、eth1がパブリックです。
# set interfaces ethernet eth0 address 10.132.52.247/26 ⏎
# set interfaces ethernet eth1 address 161.202.91.38/28 ⏎
# commit ⏎
# save ⏎
下記3行は再起動後、自動的に追加されますが、ここでは明示的に設定します。
・duplex auto
・smp_affinity auto
・speed auto
# set interfaces ethernet eth0 duplex auto ⏎
# set interfaces ethernet eth1 duplex auto ⏎
# set interfaces ethernet eth0 smp_affinity auto ⏎
# set interfaces ethernet eth1 smp_affinity auto ⏎
# set interfaces ethernet eth0 speed auto ⏎
# set interfaces ethernet eth1 speed auto ⏎
# commit ⏎
# save ⏎
ssh(service)の設定
クライアントPCからssh接続できるようにします。
# set service ssh port 22 ⏎
# commit ⏎
# save ⏎
Gatewayアドレス(system)の設定
パブリックのゲートウェイアドレスを設定。
# set system gateway-address 161.202.91.33 ⏎
# commit ⏎
# save ⏎
DNS(system)の設定
SoftLayerのDNS、
・10.0.80.11
・10.0.80.12 を設定します。
# set system name-server 10.0.80.11 ⏎
# set system name-server 10.0.80.12 ⏎
# commit ⏎
# save ⏎
ドメイン名(system)の設定
ここではドメイン名を「softlayer.com」にしました。
# set system domain-name softlayer.com ⏎
# commit ⏎
# save ⏎
ホスト名(system)の設定
ここではホスト名を「VyOS-TOK」にしました。
# set system host-name VyOS-TOK ⏎
# commit ⏎
# save ⏎
タイムゾーン(system)の設定
ここではタイムゾーンを「Asia/Tokyo」にしました。
# set system time-zone Asia/Tokyo ⏎
# commit ⏎
# save ⏎
GREトンネル(interfaces)の設定
トンネルは「tun0」という名前にします。
Tokyo側のトンネルIPは、”10.20.20.2/24”です。
# set interfaces tunnel tun0 address 10.20.20.2/24 ⏎
# commit ⏎
# save ⏎
トンネルの記述を、"GRE tunnel to VyOS-SNG”にします。
# set interfaces tunnel tun0 description "GRE tunnel to VyOS-SNG” ⏎
# commit ⏎
# save ⏎
パケットに新しいヘッダを付け加え、カプセル化(Encapsulation)して通信するのにGREを使います。
# set interfaces tunnel tun0 encapsulation gre ⏎
# commit ⏎
# save ⏎
ローカルIP指定(Tokyo側パブリックIP)
# set interfaces tunnel tun0 local-ip 161.202.91.38 ⏎
# commit ⏎
# save ⏎
リモートIP指定(Singapore側パブリックIP)
# set interfaces tunnel tun0 remote-ip 161.202.24.119 ⏎
# commit ⏎
# save ⏎
Singaporeに対してのスタティックルート(protocols)の設定
# set protocols static route 10.116.145.0/26 next-hop 10.20.20.2 ⏎
# commit ⏎
# save ⏎
以上で、「VyOS-TOK(VyOS)の設定」完了です。
"show"コマンドで設定値を確認します。
interfaces {
ethernet eth0 {
address 10.132.52.247/26
duplex auto
hw-id 06:ce:84:86:0a:e6
smp_affinity auto
speed auto
}
ethernet eth1 {
address 161.202.91.38/28
duplex auto
hw-id 06:96:da:92:17:25
smp_affinity auto
speed auto
}
loopback lo {
}
tunnel tun0 {
address 10.20.20.2/24
description "GRE tunnel to VyOS-SNG"
encapsulation gre
local-ip 161.202.91.38
remote-ip 161.202.24.119
}
}
protocols {
static {
route 10.116.145.0/26 {
next-hop 10.20.20.2 {
}
}
}
}
service {
ssh {
port 22
}
}
system {
config-management {
commit-revisions 20
}
console {
device hvc0 {
speed 9600
}
device ttyS0 {
speed 9600
}
}
domain-name softlayer.com
gateway-address 161.202.91.33
host-name VyOS-TOK
login {
user vyos {
authentication {
encrypted-password
plaintext-password ""
}
level admin
}
}
name-server 10.0.80.11
name-server 10.0.80.12
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
}
package {
auto-sync 1
repository community {
components main
distribution helium
password ""
url http://packages.vyos.net/vyos
username ""
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}
5-3. VyOS-SNG(VyOS)の設定
「5-2. VyOS-TOK(VyOS)の設定」と同じ操作で設定してください。
interfaces {
ethernet eth0 {
address 10.116.145.13/26
duplex auto
hw-id 06:bd:96:13:b1:e0
smp_affinity auto
speed auto
}
ethernet eth1 {
address 161.202.24.119/28
duplex auto
hw-id 06:f0:5f:d6:7b:c4
smp_affinity auto
speed auto
}
loopback lo {
}
tunnel tun0 {
address 10.20.20.1/24
description "GRE tunnel to VyOS-TOK"
encapsulation gre
local-ip 161.202.24.119
remote-ip 161.202.91.38
}
}
protocols {
static {
route 10.132.52.192/26 {
next-hop 10.20.20.1 {
}
}
}
}
service {
ssh {
port 22
}
}
system {
config-management {
commit-revisions 20
}
console {
device hvc0 {
speed 9600
}
device ttyS0 {
speed 9600
}
}
domain-name softlayer.com
gateway-address 161.202.24.113
host-name VyOS-SNG
login {
user vyos {
authentication {
encrypted-password
plaintext-password ""
}
level admin
}
}
name-server 10.0.80.11
name-server 10.0.80.12
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
}
package {
auto-sync 1
repository community {
components main
distribution helium
password ""
url http://packages.vyos.net/vyos
username ""
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}
6. GREトンネル接続確認
6-1. VyOSトンネルが”up”状態であることを確認
VyOSの「一般モード」で行います。
show コマンドで確認します。
$ show interfaces tunnel ⏎
$ show interfaces tunnel detail⏎
Toykyo側で確認しましたが、Shigapore側でも確認してください。
6-2. PINGで確認
PINGはVyOSの「一般モード」で行います。
(1)Tokyo側のVyOS-TOKから、Singapore側のVyOS-SNGのプライベートアドレス(10.116.145.13)に対してPINGが通る事を確認する。
(2)Singaporeo側のVyOS-SNGから、Tokyo側のVyOS-TOKのプライベートアドレス(10.132.52.247)に対してPINGが通る事を確認する。
7. Windows2012R2サーバ、スタティックルートの設定
PowerShellでの操作です。
・W2012R2-TOK設定
>route add -p 10.116.145.0 mask 255.255.255.0 10.132.52.247 ⏎
・W2012R2-SNG設定
>route add -p 10.132.52.0 mask 255.255.255.0 10.116.145.13 ⏎
8 Windows2012Server間データ転送確認
「6. GREトンネル接続確認」を参考にして確認してください。
(1)Tokyo側のW2012R2-TOKから、Singapore側のW2012R2-SNGのプライベートアドレス(10.116.145.25)に対してPINGが通る事を確認する。
(2)Singaporeo側のW2012R2-SNGから、Tokyo側のW2012R2-TOKのプライベートアドレス(10.132.52.213)に対してPINGが通る事を確認する。
6. おわりに
IPアドレスには表示上マスクをかけるのが安全ですが、わかりにくくなると思い、あえてマスクをかけませんでした。
(インスタンスを削除する予定です。)
SoftLayerを活用すると、ネットワークを勉強する上で、少ない費用で実機勉強でき知識が深まります。
今後、L2TPやIPsecも投稿する予定です。