ラベル CentOS 6 の投稿を表示しています。 すべての投稿を表示
ラベル CentOS 6 の投稿を表示しています。 すべての投稿を表示

2015年11月14日土曜日

VyOSとLinuxでGREトンネルを掘る

訳あって外部VPSと自宅内ネットワークの間でトンネルを掘ることになった。

構成はこんな感じ。太字のところが今回のブログの対象。

外部: VPS( <-- GRE Tunnel --> VyOS <-- Private Network --> Server :内部

スペック等:

  • VPS:
    Cloudn : vQプラン CentOS release 6.7 (Linux rice 2.6.32-431.el6.x86_64)
  • VyOS: Version: VyOS 1.1.5

Configuration / 手順

せっかちな人向けにConfig/手順を晒す。

VPS:

  1. ip_greモジュールを有効に:
  2. # modprobe ip_gre
    

  3. ネットワークConfigを作成:
  4. /etc/sysconfig/network-scripts/ifcfg-tun0 : #Interfaceの設定
    DEVICE=tun0
    BOOTPROTO=none
    ONBOOT=yes
    TYPE=GRE
    PEER_OUTER_IPADDR=203.0.113.16    #相手側のGlobalIP
    PEER_INNER_IPADDR=192.168.0.250   #相手側のPrivateIP
    MY_INNER_IPADDR=192.168.0.251     #自分側のPrivateIP
    MTU=1400
    

    /etc/sysconfig/network-scripts/route-tun0: #ルーティングの設定 (必要な環境のみ)
    192.168.0.0/16 via 192.168.0.251
    

  5. Interface をUP
  6. # ifup tun0

VyOS:

  1. 下記Configを投入:
  2. interface {
        tunnel tun0 {
            address 192.168.0.250/24
            encapsulation gre
            local-ip 203.0.113.16
            mtu 1400
            remote-ip 198.51.100.8
        }
    }
    
    

  3. 設定を有効に(Commit):
  4. # commit

解説:

特にコツなどはなく、上記設定がそのもの。実際私が調べてから接続まで試行錯誤もそれほどなく、すんなりと接続ができています。

注意点はルーティングとMTU。

上記構成ではルーティグは特に不要ですが、Private Network側に複数セグメントある場合は、VPS側、VyOS側、両方に書かないと適切に通信ができません。

MTUも"ping -s <size> destination" 等で適切に計測して設定を行います。
これもVPS側、Server側と両方から計測をしないとMTUブラックホール問題にぶち当たります。

接続試験時にはMTUを上回るパケットサイズでの通信をおこなう必要がありそうです。

尚、セキュリティに関しては一切考慮していません。
一般的に使う場合はIPSec等で経路の保護が必要です。

参考:
How to configure a GRE Tunnel in CentOSGRE over IPSec Tunnel Between Cisco and VyOS

2014年8月17日日曜日

Inifinibandを触ってみる - Install編

随分前にヤフオクで落としたInfinibandについて触る時間ができたので触ってみました。

今回使用する機材はこちら

・IA Server : i3-540 Mem:2GB 73GB SASHDD
・HCA : Cisco Infiniband HCA ( Topspin DDR-HCAe LX x8 )
・OS : CentOS 6.5 x64 - Coreパッケージのみ

どうでもいいけれど、先日、はじめてCentOSを”セントス”と発音している人を見かけた。”セントス”が正式発音なんだけど、絶対にわからないから回りにあわせて”セントオーエス”と発音している今日この頃。
※せんとクンに発音が似ているのはどうでもいい話。そういえばどこに行ったのだろう。

早速インストールからはじめる。

いろいろなサイトでお勉強したが、どうやらCentOS 6.x以上はすでにドライバが組み込まれている様子。
参考: http://www.srchack.org/article.php?story=20111129002752234

ためしにクリーンインストールを行って、いきなりモジュールを有効にしてみる。

# modprobe ib_ipoib
# ifconfig -a
~省略~
ib0       Link encap:InfiniBand  HWaddr 80:00:04:04:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
          BROADCAST MULTICAST  MTU:2044  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:256
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
~省略~

ifconfigのなかにib0インターフェイスが突然現れたので、本当にそのままできるのだろう。
しかし、このままでは状態監視などができないので、必要そうなパッケージをインストールすることにする。
# yum install ibutils infiniband-diags
# sudo ibstatus
Infiniband device 'mthca0' port 1 status:
        default gid:     fe80:0000:0000:0000:0005:ad00:000b:c805
        base lid:        0x0
        sm lid:          0x0
        state:           1: DOWN
        phys state:      2: Polling
        rate:            10 Gb/sec (4X)
        link_layer:      InfiniBand
ふむふむ、認識されているようだ。
しかし、このHCAはDDR対応なので、20Gbpsでリンクアップできるはずなのだが...
もしやと思い、Infinibandの対抗側に電源を入れてリンクアップさせる。
# sudo ibstatus
Infiniband device 'mthca0' port 1 status:
        default gid:     fe80:0000:0000:0000:0005:ad00:000b:c805
        base lid:        0x0
        sm lid:          0x0
        state:           2: INIT
        phys state:      5: LinkUp
        rate:            20 Gb/sec (4X DDR)
        link_layer:      InfiniBand
うむ、20Gbpsでリンクアップしています。
別のコマンドを打ってみる。
# ibaddr
ibwarn: [1594] umad_init: can't read ABI version from /sys/class/infiniband_mad/abi_version (No such file or directory): is ib_umad module loaded?
ibwarn: [1594] mad_rpc_open_port: can't init UMAD library
ibaddr: iberror: failed: Failed to open '(null)' port '0'
ふむ、ib_umadも必要そうだ。
modprobeしてみる。
# modprobe ib_umad
# ibaddr
GID fe80::5:ad00:b:c805 LID start 0x0 end 0x0
ふむ、これが正常っぽい。
UMADは「Userspace MAnagement Datagram」の略で管理系の通信を行っているモジュールのようだ。
参考:http://www.jipdec.or.jp/archives/icot/FTS/REPORTS/H12-reports/H1303-AITEC-Report3/AITEC0103-R3-html/AITEC0103-R3-ch3_2_2.htm
参考:http://www.viops.jp/ibday02-BASIC-xsigo.pdf

Infinibandでは1つ以上のサブネットマネージャが必要なのだそうだ。
こいつもyumでインストール。
# yum install opensm
# service opensm
# service opensm start
Starting IB Subnet Manager:                                [  OK  ]
# chkconfig opensm on
chkconfigでOnにすることも忘れずに。

今回はIP over IBで立ち上げるので、いつものようにifcfgを書く。
# vi /etc/sysconfig/network-scripts/ifcfg-ib0
DEVICE="ib0"
BOOTPROTO="static"
IPADDR="10.1.1.1"
NETMASK="255.255.255.0"
ONBOOT="yes"
TYPE="infiniband"
# ifup ib0
[root@lisa01 ~]# ifconfig
~省略~
ib0       Link encap:InfiniBand  HWaddr 80:00:04:04:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
          inet addr:10.1.1.1  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::205:ad00:b:c805/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2044  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:3 overruns:0 carrier:0
          collisions:0 txqueuelen:256
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
~省略~
もう一台、同様に設定して、疎通確認を行う。

疎通確認はOKなようなので、早速ファイルを転送してみる。
# scp CentOS-7.0-1406-x86_64-DVD.iso 10.1.1.2:
root@10.1.1.2's password:
CentOS-7.0-1406-x86_64-DVD.iso                                                   100% 3956MB 104.1MB/s   00:38    
約800Mbps...20GbpsのLinkなのでぜんぜん満足できませんなぁ。
暗号化セットを変えて再チャレンジ
# scp -c arcfour CentOS-7.0-1406-x86_64-DVD.iso 10.1.1.2:
CentOS-7.0-1406-x86_64-DVD.iso                                                   100% 3956MB 141.3MB/s   00:28 
まだぜんぜん満足できませんなぁ。

納得はいきませんが、とりあえずInstall編はここまで。