GRE

interface tunnel **

ではデフォルトでtunnel mode gre ip ですってよ。
えぇ,今日知りましたよ。えぇ・・・今までぜんっぜん意識していませんでしたよ。
どーせ最近はVTIでしょ。
※ VTIも同じ

Cisco IOS バナー小技

最近知ったんだけど,バナーにホスト名を入れたい時に変数使えるのね。
常識なのかしら・・・。
設定で入れるのはHostnameを入れたいところに$(hostname)を入れるだけ。

///////////////////////////////////////////////
     Model         C841M-4X-JSEC/K9
     Hostname   $(hostname)
///////////////////////////////////////////////

H/WのシリアルNoも出せるとキッティングの時すげー楽になるね。
このやり方は知らない。出来ないかなぁ。

Ciscoのページを見る限り出来ないのね。残念。

packstack Liberty 入れなおし

packstackあまり考えずにインストールするとCinderのボリューム限度が20Gに縛られてしまうので,入れなおした。

やったことは以下の通り。
  1. Cinder向けにパーティション切って,Volume Groupを「cinder-volumes」という名前で作成
  2. linux Bridge設定(/etc/sysctl.conf 編集 → sysctl -p /etc/sysctl.conf)
  3. いつもの通りPackstackのインストール手順で実施
  4. NetworkManager停止,NW周り編集,再起動
  5. Cinder.conf 修正
  6. デフォルトのNWやらを削除して自分色に変える
answerfileは自分の環境向けにそこそこしっかり編集しておいたほうがいいということを学びましたとさ。
HorizonはHTTPS化するの後からでもできるけど,ここでやっておいたほうが簡単。
■ answerfile変えた所一覧

< # CONFIG_SSH_KEY=/root/.ssh/id_rsa.pub
< CONFIG_DEFAULT_PASSWORD=<適宜>
< CONFIG_MANILA_INSTALL=y
< CONFIG_HEAT_INSTALL=y
< CONFIG_NTP_SERVERS= <適宜>
< CONFIG_USE_EPEL=y
< CONFIG_MARIADB_PW=<適宜>
< CONFIG_KEYSTONE_DB_PW=<適宜>
< CONFIG_KEYSTONE_ADMIN_TOKEN=<適宜>
< CONFIG_KEYSTONE_ADMIN_PW=<適宜>
< CONFIG_KEYSTONE_DEMO_PW=<適宜>
< CONFIG_GLANCE_DB_PW=<適宜>
< CONFIG_GLANCE_KS_PW=<適宜>
< CONFIG_CINDER_DB_PW=<適宜>
< CONFIG_CINDER_KS_PW=<適宜>
< CONFIG_CINDER_VOLUMES_CREATE=n
< CONFIG_MANILA_DB_PW=<適宜>
< CONFIG_MANILA_KS_PW=<適宜>
< CONFIG_NOVA_DB_PW=<適宜>
< CONFIG_NOVA_KS_PW=<適宜>
< CONFIG_NEUTRON_KS_PW=<適宜>
< CONFIG_NEUTRON_DB_PW=<適宜>
< CONFIG_NEUTRON_METADATA_PW=<適宜>
< CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex
< CONFIG_HORIZON_SSL=y
< CONFIG_HORIZON_SECRET_KEY=<適宜>
< CONFIG_SWIFT_KS_PW=<適宜>
< CONFIG_SWIFT_STORAGE_SIZE=<適宜>
< CONFIG_HEAT_DB_PW=<適宜>
< CONFIG_HEAT_KS_PW=<適宜>
< CONFIG_HEAT_DOMAIN_PASSWORD=<適宜>
< CONFIG_CEILOMETER_KS_PW=<適宜>

< CONFIG_NAGIOS_PW=<適宜>

Cinderでエラーがでる

うまくいったと思ったが,インスタンス作成時に「イメージから起動(新しいボリュームを作成)」を選ぶとエラーになる。
同じくボリュームだけ作成しようとしても「作成中」のステータスから進捗なしとなり使えん。

なんじゃこりゃ。

原因わかりやした。

日本OpenStackユーザ会で質問したら(トピックスに相乗りした),速攻原因解明。
packstackのアンサーファイルでCinderのオプション指定しないと20Gに制限されるとな。

んーーーもう一度デプロイしてもいいんだけど,既存のLVMを拡張する方法でなんとかならんもんかしら。

———————————————————————————

うはっ!!!
パーティション拡張作業ミスってOSぶっ飛んだ・・・orz

packstack Liberty インストール (続き)

さて, 続き。

ネットワークの作成だけど, とりあえず現状をチェック。

+--------------------------------------+---------+------------------------------------------------------+
| id | name | subnets |
+--------------------------------------+---------+------------------------------------------------------+
| 72973f3f-d8e9-42ec-9124-8cb9cdaf76bb | public | 284bfb53-6317-4659-a63a-80bc6f93eef4 172.24.4.224/28 |
| 8c962f73-821c-4608-8e1d-4fe58f095ddb | private | 9060eb48-5020-448d-bd0e-ac57bd031e85 10.0.0.0/24 |
+--------------------------------------+---------+------------------------------------------------------+

アドレスを修正するのもいいけど, とりあえずまっさらにして位置から作ってみる。

publicは 192.168.1.0/24
privateは 172.16.10.0/24

とする。

基本はここにならってコマンドをたたいていく。

■ ルータ作成
# neutron router-create Ext-Router

■ 外部ネットワーク作成
# neutron net-create Ext-Net  --router:external --shared   --provider:network_type flat 
  --provider:physical_network enp4s0
# neutron subnet-create Ext-Net 192.168.1.0/24 --name Ext-Subnet --gateway 192.168.1.1 
 --allocation-pool start=192.168.1.200,end=192.168.1.210 --disable-dhcp
# neutron router-gateway-set Ext-Router Ext-Net

■ 内部ネットワーク作成
# neutron net-create home-net
# neutron subnet-create --name home-subnet --gateway 172.16.10.1 
 --dns-nameserver 192.168.1.1 
 --allocation-pool start=172.16.10.100,end=172.16.10.120 home-net 172.16.10.0/24
# neutron router-interface-add Ext-Router home-subnet

ひとまず完了。

ネットワークトポロジの表示が変わったのね・・・。

前の方がよかったなぁー。ウニョウニョ動くのは面白いんだけど, まとまりが悪い。

イメージにCentOSとFedoraを登録したけど,テスト用にCirrosも入れとく。
参考はオフィシャルDoc

■ イメージゲッツ

# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
# # glance image-create --name "cirros" 
> --file cirros-0.3.4-x86_64-disk.img
> --disk-format qcow2 --container-format bare
> --visibility public --progress
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | ee1eca47dc88f4879d8a229cc70a07c6 |
| container_format | bare |
| created_at | 2016-04-16T07:17:53Z |
| disk_format | qcow2 |
| id | 75b3a669-20c4-498a-9685-a80d6acd3c81 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | ac31029ab4af4d06a027529077595a4d |
| protected | False |
| size | 13287936 |
| status | active |
| tags | [] |
| updated_at | 2016-04-16T07:17:53Z |
| virtual_size | None |
| visibility | public |
+------------------+--------------------------------------+

登録された

インスタンス起動
Floating IP割当
Security Group設定
でSSHで接続して接続完了。

オッケ。

さて,次はESXのVMをこっちに移すかな。

と思ったけど, 本当はVLANを複数引き込んでそれぞれに割り当てるFloatingIPを分けたいんだけどさてさて・・・。どないしょ。

packstack Liberty インストール

Mitakaリリースされましたね。

さて, やっとこさ時間つくってpackstackでLibertyをAll in One でインストールしました。

OPCELに向けてKilo入れたかったんだけど, mongodbのあたりでエラーが出てインストールしきれなかったためとりあえずさくっと入ったLibertyにしといた。
# pupetとの整合性がなんたらかんたらってググッたら出てきたのだけど, それ対応してもエラーが消えることはなかったんだよね。

手順はWebで出てくる通り

■ リポジトリ登録(現時点ではLibertyなので, KiloがいいひとはFedorapeopleへ)

#   yum install https://www.rdoproject.org/repos/rdo-release.rpm

■ packstackインストール

# yum install openstack-packstack

■ UPDATE

# yum -y update

■ NetworkManager停止&Disable

# systemctl stop NetworkManager
# systemctl disable NetworkManager
# systemctl start network

一応Reboot。

■ answerfile編集後, packstack実行

# packstack –gen-answer-file=./ans.libertiy
# vi ./ans.libertiy
answer fileはRDOのページを参照のこと
# packstack –answer-file=./ans.libertiy

またまたReboot。

■ インタフェース編集

vi /etc/sysconfig/network-script/ifcfg-enp***
vi /etc/sysconfig/network-script/ifcfg-br-ex

ぶじにSuccessとなったらダッシュボードへアクセス。
完了!と思いきやneutorn-serverが死んでいるし, ボリュームがどーたらとなんかCinder関係でエラーが出ている。

neutronの方は/etc/neutron/neutron.conf内にrabbitmqの設定が間違っていた(というか, hostやportやらがコメントアウトされていた)から修正して復旧。

■ /etc/neutron/neutron.conf 修正
# The RabbitMQ broker address where a single node is used.
# (string value)
rabbit_host=localhost

# The RabbitMQ broker port where a single node is used.
# (integer value)
rabbit_port=5672

# RabbitMQ HA cluster host:port pairs. (list value)
rabbit_hosts=$rabbit_host:$rabbit_port

この辺り修正してneutron-serverを再起動。

:

さて, Cinderはというと・・・。

こっちも/etc/cinder/cinder.confに記載漏れ。
こっちは認証系がごっそり無いというね。

■ /etc/cinder/cinder.conf 修正

[keystone_authtoken]

#
# From keystonemiddleware.auth_token
#

# Complete public Identity API endpoint. (string value)
#auth_uri = <None>
auth_uri = http://192.168.1.100:5000
auth_url = http://192.168.1.100:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = services
username = cinder
password = <適宜>

この辺り修正してcinder再起動。

:
さて, これで一通り無事に起動完了したのかしら?

■ 確認
# openstack-status
== Nova services ==
openstack-nova-api:                     active
openstack-nova-compute:                 active
openstack-nova-network:                 inactive  (disabled on boot)
openstack-nova-scheduler:               active
openstack-nova-cert:                    active
openstack-nova-conductor:               active
openstack-nova-console:                 inactive  (disabled on boot)
openstack-nova-consoleauth:             active
openstack-nova-xvpvncproxy:             inactive  (disabled on boot)
== Glance services ==
openstack-glance-api:                   active
openstack-glance-registry:              active
== Keystone service ==
openstack-keystone:                     inactive  (disabled on boot)
== Horizon service ==
openstack-dashboard:                    active
== neutron services ==
neutron-server:                         active
neutron-dhcp-agent:                     active
neutron-l3-agent:                       failed
neutron-metadata-agent:                 active
neutron-openvswitch-agent:              active
== Swift services ==
openstack-swift-proxy:                  failed
openstack-swift-account:                failed
openstack-swift-container:              failed
openstack-swift-object:                 failed
== Cinder services ==
openstack-cinder-api:                   active
openstack-cinder-scheduler:             active
openstack-cinder-volume:                active
openstack-cinder-backup:                active
== Ceilometer services ==
openstack-ceilometer-api:               failed
openstack-ceilometer-central:           active
openstack-ceilometer-compute:           active
openstack-ceilometer-collector:         active
openstack-ceilometer-alarm-notifier:    active
openstack-ceilometer-alarm-evaluator:   active
openstack-ceilometer-notification:      active
== Heat services ==
openstack-heat-api:                     active
openstack-heat-api-cfn:                 inactive  (disabled on boot)
openstack-heat-api-cloudwatch:          inactive  (disabled on boot)
openstack-heat-engine:                  active
== Support services ==
openvswitch:                            active
dbus:                                   active
target:                                 active
rabbitmq-server:                        active
memcached:                              active
== Keystone users ==

Warning keystonerc not sourced

ん。大丈夫かしら・・・。
色々failedしているけど, とりあえずは後回しだな。当面使わなそうだし。
これからあれか。Networkの設定しなきゃならんのか・・・。
眠いから今日は寝よう。

PCサーバたてよう

OpenStack環境をつくろうと思いたち, 新たにPCサーバを組んだ。

Corei7 6700/Mem32G/HDD 2T*4でRAID5
マザボのRAIDだから貧弱なんだろうけど,そこはまぁお試しで。

ESXi入れてからVMを立ててOpenStackを~~~なんて思ったけど, とりあえずCentOS7でやってみようか。
せっかくのCorei7なんだけど, CentOSだとサポートしきれていないとかなんだとか。
とりあえずKernelをVersion4.5へ上げてみっか。

今日はKernelのVersionを上げるまで。(夜起きてられない)

あとはちょいちょい準備してどっかで有給とってガッツリやるかな。

All in Oneの構成とはいえ, NICが2枚しかないからできればSwitchとTrunkして複数のセグメント引き込みたいんだよね。もう少しアンダーレイも考えてみるか。

後からやり直し~とか面倒だからできるだけしっかりしておきたい。
(なんだかんだで, 一段落したらESXに変えてそうだけどサ)

VPNの主流

一般的に構成されるのはSite to SiteではIPSecだと思うのだが, 最近ではSSL-VPNで実装する製品も出ているのか。
リモートアクセスVPNではVPNクライアント不要な追加で不要なL2TP/IPSecが主か?
いや, これもSSL-VPNか。どちらかと言えば。

となるとそのうちどちらもSSL-VPNになるのかしら。

SoftEtherという手もあるけど, なんだろ。なんかイメージよくないんだよな。
やっぱあれかな。昔話題になったきっかけが足かせになっているのかしら。

お手軽に実装できるのはすごくいいんだけどね。
私用用途では気にしないけど, エンタープライズ向けかと言われると尻込みしてしまう。

この辺りは日本企業文化が染み付いているのかしら。

もっとアグレッシブにいくべきかしらね。

C841のスループット測定

C841のスループットは公称値では片方向で985Mbpsだそうな。
上り下りの双方向で1.9Gbppsということらしい。(パケットサイズは1400byte)
参考) Ciscoサポートコミュニティより

NetMiつかって簡単に調べてみた。

測定条件は次の通り。
プロトコル:UDP
通信方向:PC→(C841を超えて)ブロードバンドルータ
送信時間:30秒
パケットサイズ:64byte/500byte/1000byte/1400byteの4パターン
その他:NAT無し/有りの2パターン
計8パターン試した。

結果は次の通り。

バイト・ビット換算間違えていました orz

ギガビットのインタフェースなのに1G以上出ているのはスルーするとして, パケットサイズによってではあるが, 1Gはちゃんと出るようだ。さすがに最小パケットだと60Mbpsくらいまで落ち込むようね。まぁ, 十分だけど。

ちなみにPPSで見ると,
NAT無しで3.5Mpps程度
NAT有りで2Mpps程度
となるようだ。

NAT無しで28Mpps -> 23kpps (今更ですが2019年11月訂正)
NAT有りで21Mpps -> 11kpps

NATの有無で通信効率が3.5割程度落ち込む感じ。

まぁ, 性能的には十分だね。

ちなみに, NAT有り無しの状態のC841のCPU状態をみると, NAT有りだと100%張り付いていた。

                                                               
      666999999999999999999999999933333                        
      666777775555577777555557777777777777775555555555555555555566
  100    *************************                              
   90    *************************                              
   80    *************************                              
   70 ****************************                              
   60 ****************************                              
   50 ****************************                              
   40 *********************************                        
   30 *********************************                        
   20 *********************************                        
   10 ************************************************************
     0….5….1….1….2….2….3….3….4….4….5….5….6
               0    5    0    5    0    5    0    5    0    5    0
               CPU% per second (last 60 seconds)

プロセスは「COLLECT STAT COU」というのがガッツリ上がっていた。
なんだろ。

NAT無しだと問題ない。

      555555555555555556666666666555556666655555555556666655555555
  100                                                          
   90                                                          
   80                                                          
   70                                                          
   60                                                          
   50                                                          
   40                                                          
   30                                                          
   20                                                          
   10 ************************************************************
     0….5….1….1….2….2….3….3….4….4….5….5….6
               0    5    0    5    0    5    0    5    0    5    0
               CPU% per second (last 60 seconds)

家庭内NW再構築

C841Mが来たところで, 家のネットワークも再構築しますか・・・と。

C841を頭にして, その下にL2SWを配置。もともとこれL3だからもったいない気もするけど, C841が来た時点で用途としてはAPへの給電のみとなってしまった。

ゲートウェイは全てC841に持たせるため, できればC841~C3560C間はチャネルで組みたかったがルータ側が対応していないので断念。(コマンドは入るんだけど, きっとこの機種もモジュール刺さないとダメなんだろう)

ってか, ルータってことでNATでLAN内に用途ごとに複数セグメント持たせたのはいいけど, WANへのスループットが明らかに落ちている・・・。
えーーーブロードバンド測定サイトでC841経由と無しとで300Mbpsくらい差が出るんですけど。(800~900Mbps出ていたのが, 350~400Mbpsまで落ちた)
測定中, C841のCPU利用率が跳ね上がり, ほぼ100%に・・・。
NATごときでこんなに影響でるもんなのか・・・。
試しにC841でNAT無しの状態で測定すると, 結構改善された。
これはこれで嫌だなぁ。C3560と立ち位置逆転させてスループット確保する構成へ変えるか?

今日のところはとりあえずC841の設定はこんな感じにした。
Gig0/0~0/3はイーサモジュール扱いで裏でのバス接続が弱いと踏んで, 使うのはWANインタフェースに限定した。
ってか, 業務じゃないんだからそこまで気にする必要があるかと言われるとノーですけどね。

   100 : interface GigabitEthernet0/4
   101 :  ip address 192.168.1.2 255.255.255.0
   102 :  ip nat outside
   103 :  ip virtual-reassembly in
   104 :  duplex auto
   105 :  speed auto
   106 : !
   107 : interface GigabitEthernet0/5
   108 :  description to local-poe-sw G0/10
   109 :  no ip address
   110 :  duplex auto
   111 :  speed auto
   112 : !
   113 : interface GigabitEthernet0/5.10
   114 :  description VLAN10(192.168.10.0/24)
   115 :  encapsulation dot1Q 10
   116 :  ip address 192.168.10.1 255.255.255.0
   117 :  ip nat inside
   118 :  ip virtual-reassembly in
   119 : !
   120 : interface GigabitEthernet0/5.20
   121 :  description VLAN20(192.168.20.0/24)
   122 :  encapsulation dot1Q 20
   123 :  ip address 192.168.20.1 255.255.255.0
   124 :  ip nat inside
   125 :  ip virtual-reassembly in
   126 : !
   127 : interface GigabitEthernet0/5.30
   128 :  description VLAN30(192.168.30.0/24)
   129 :  encapsulation dot1Q 30 native
   130 :  ip address 192.168.30.1 255.255.255.0
   131 : !
   132 : interface Vlan1
   133 :  no ip address
   134 :  shutdown
   135 : !
   136 : interface Vlan2
   137 :  no ip address
   138 : !
   139 : interface Vlan3
   140 :  no ip address
   141 : !
   142 : ip forward-protocol nd
   143 : no ip http server
   144 : no ip http secure-server
   145 : !
   146 : !
   147 : ip nat translation timeout 1800
   148 : ip nat translation tcp-timeout 1800
   149 : no ip nat service skinny tcp port 2000
   150 : ip nat pool VLAN10 192.168.1.10 192.168.1.49 prefix-length 24
   151 : ip nat pool VLAN20 192.168.1.50 192.168.1.99 prefix-length 24
   152 : ip nat inside source list NAT_V10 pool VLAN10
   153 : ip nat inside source list NAT_V20 pool VLAN20
   154 : ip route 0.0.0.0 0.0.0.0 192.168.1.1
   155 : !
   156 : ip access-list extended NAT_V10
   157 :  permit ip 192.168.10.0 0.0.0.255 any
   158 : ip access-list extended NAT_V20
   159 :  permit ip 192.168.20.0 0.0.0.255 any
   160 : !