このブログを検索

2015/12/30

raspberry pi2

raspberry pi2を買った。

raspberry piはしばらく前に買って、いろんな可能性を感じたのだが特に何をするでもなく放ってあって、

もったいないからと触ってみて、やっぱり特に何をするか思いつかないが、ケースにいれようと思って買ってあったケースを組み立てたらそれはaitendoで500円とかで買ったものだったが粗悪極まりなくひっかけるツメが折れてしまった。

秋葉原でケースを買ってきて入れようとしたが全然合わない。

そもそもSDカードが大きくはみ出している。

こりゃケースを間違えたと確認すると、2というのが出ていてそれ用だとわかった。

初代用のケースを買うというのもあれなので、この際2を買うことにした。



2はWindows10が動くというのを電車の中で調べて知った。

といってももちろん普通のパソコンで動くOSとは違うものだが。



microSDカードも買って家に帰って、じゃあインストールしようかと思ったが、うまくいかない。

イメージファイルをSDに焼くために、dism.exeというコマンドが使用されるのだが、

それがWindows7にインストールされているバージョンでは古いのである。



新しいdismはイメージファイルやツールとともに含まれているのだが、
それを実行してみてもエラーメッセージが出て実行できなかった。

c:\Program Files (x86)\Microsoft IoT\Dism>dism

Deployment Image Servicing and Management tool
Version: 10.0.10586.0


Error: 126

An error occurred. DISM could not be initialized in the local folder.
Ensure that DISM is installed correctly and that all of the binaries are present.


が、別の方法が見つかった。

dismを使わずに、イメージファイルを変換して Win32DiskImageで焼く、という方法である。

参考
http://yoshi1966.hateblo.jp/entry/2015/08/29/134814

イメージファイルを変換するスクリプトをpythonで書いた人が公開していて
それを使うのである。


起動した。

ウィンドウズのロゴは出るが、デスクトップやシェルすらないのでリモートデスクトップで接続できない。

ブラウザでアクセスできるが、idとpasswordがわからない。piのデフォルトを入れてもダメだ。

sshも同様。


情報がない・・・

(追記)
administrator
p@ssw0rd

だった。






2015/12/26

NATの用途


こういうとき、PCは10.0.1.254をデフォルトゲートウェイにしただけでは、Vlan200のIPSecでのアクセスができない。

IPSecは対向装置と同じLANにあるかのような通信をおこなうので、
通常のルーティングによるバケツリレーのような方式とは少し異なるからだ。

こういう場合、図の下のほうにあるルーターでnatをする。

2015/12/05

Dynabook UX/23KWHにWindows XPをインストールする

中古でOSなしのものを買って、XPをインストールしようとしたらHDDがないといわれ、
店にきいたらSATAだからXPはサポートしてないと言われてあきらめてcentosを入れたのだが、
やっぱりWindowsが必要なので、なんとかしてインストールできないか調べてみた。

BIOSで、HDDのモードを[AHCI]から[Compatibility]に変更するだけでよかった。

が、OSをインストールしたはよいが、ドライバ類が一切インストールされない。
XPが作られた後のPCだから仕方がない。

とりあえずNICのドライバだけいれて(別のPCからUSBメモリにドライバをコピーし)あとはインターネットで、と思ったが、
firefoxやchromeをダウンロードすることすらできない。

SPなしのIE6では、実質インターネットが利用できない。

SP3をUSBメモリにダウンロードしてインストールする。


2015/11/29

tcpdump 例

tcpdump

とりあえず動かす。
一番小さい(ifconfigで最初に表示されるinterface?)interfaceを見る。


tcpdump -i eth0 -s0 not port 22 and not arp

-i eth0 ... eth0を見る。

-s0 ... デフォルトでは先頭68バイトしかdumpしないので、全部取りたい時はこうする。

not port 22 and not arp ... ポート22とarpは除外する。portだけ指定すると送受信両方の指定になる。どちらかを限定するときは src port または dst port とする。


tcpdump -i eth0 -s0 -x not port 22 and not arp

-x: 16進数表示


tcpdump -i eth0 -s0 -X not port 22 and not arp

-X: 16進数とascii表示






tcpdump -i eth0 icmp


icmpだけを見る。



tcpdump -i eth0 src host 1.2.3.4 and not port 22

送信元が1.2.3.4で、portが22以外




tcpdump -i eth0 host 1.2.3.4


送信元或いは宛先が 1.2.3.4




tcpdump -i eth0 dst host 5.6.7.8


宛先が 5.6.7.8



tcpdump -n -i eth0 -s0 -w dump001.cap not port 22 and not arp

-n: ipアドレスを名前解決しない

-w: 出力ファイル名。このファイルをwiresharkで開ける。 tcpdump -r dump001.cap でも開ける。



tcpdump -?


引数一覧を表示



man tcpdump


マニュアルを表示

2015/11/23

centos7 postfix 送れない

さくらのクラウドで借りている、centos7のサーバでlogwatchの設定をした。

mailtoを自分のgmailのアカウントにして、
でもpostfixの設定とかMXレコードとかなにもしてないから送れないよな・・・
と思いつつlogwatchを実行してみるとなぜか送れた。

サービスを確認すると、postfixは動いていた。デフォルトで動くのか?

ちなみにcentos7ではサービスを確認するコマンドは変わっている。

# systemctl status postfix

のように。再起動や停止もsystemctlを使う。


logwatchのサーバのホスト名が localhost.localdomainになっていた。
まず、サーバのホスト名を直す。

postfix設定ファイルを見るとなにもやってなかったので、
ググって、必要そうな設定を、例によって確証のないままなんとなくやる。

すると、メールが送れなくなった。

/var/log/maillog

Nov 23 10:01:50 localhost postfix/qmgr[30237]: 867B65FDCA: from=<root@adam.monqy.net>, size=1848, nrcpt=1 (queue active)
Nov 23 10:01:50 localhost postfix/qmgr[30237]: D56C15FDD7: from=<root@adam.monqy.net>, size=418, nrcpt=1 (queue active)
Nov 23 10:01:50 localhost postfix/smtp[30346]: 867B65FDCA: to=<じーめーるのあどれす>, relay=none, delay=2221, delays=2221/0/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)


ゾーンを編集する。

変わらない。

名前解決ができてないのか?

適当なホスト名にpingを打つと、名前解決していない。

/etc/resolv.conf を見たら何も書いてない。

nameserverを書く。

解決。



自分のドメインのゾーンとか、mxとかは、自分のドメイン宛のメールを受信するときに必要な設定だから今回の件とは関係ないか。


解決したからいいけど、なぜ最初送れたのかが気になる。
host名がlocalhost.localdomainだったから名前解決が必要なかったのかと思ったがそれは自分のホストだし。

postfixでmyhostとかmydomainとかを設定したからか?

2015/11/08

pam_unix(smtp:auth): authentication failure

さくらのVPSで借りているサーバで、毎日logwatchを送信しているのだが、
ほぼ毎日、下記のようなログが延々と記録されている。

 pam_unix(smtp:auth): check pass; user unknown
 pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
 pam_succeed_if(smtp:auth): error retrieving information about user test


これはsmtpサーバの認証をユーザー名を変えて手当たり次第におこなっているもので、
幸い認証は成功していないし特にサーバがダウンするとかパフォーマンスが低下するとかいう事態にもなっていないのでそんなに深刻なことではないのだが、ウザい。

25番ポートを閉じれば停められるのだが、それをやると外部からのメールが転送できない。

実際、ついこないだまで25番は閉じていたのだが、そうするとgmailなどから送信したメールが届かないことに気づいて開けて、そうしたらこのようなイタズラが始まったのだ。

この手のアクセスは送信元IPアドレスやセグメントを制限し始めるときりがない。

本当は送信元を知りたいのだがわからない。

不正アクセスしたアドレスを自動でブロックするものなどもあるようだが、あまり使いたくない。


smtp認証をsmtps認証にするという方法があってやってみたのだがうまくいかなかったので、とりあえず認証方式をmd5にした。


cyrus-sasl-md5 をインストール

/etc/postfix/main.cfで、

smtpd_sasl_security_options=noanonymous,noplaintext

を追加


/usr/sbin/saslpasswd2 -c -u example.com user

でパスワードを設定。


postfixとsaslauthdをrestart


iphoneのメール設定は、
usernameにドメイン名をつける(user@example.comのように)

use sslはオフ

authenticationは MD5 Challenge-Responseにする。

Server portは587(これは設定による?)

2015/11/03

さくらのクラウドのサーバ設定

sshの設定を変える。

今どうなってたっけ、とつないでみると22番でrootで入れる。

これは危険だ。

ポート番号を変えて、PermitRootLoginをnoにする。

sshd.conf


変えたポート番号をfirewalldで許可する。

9999番を開けるには

# firewall-cmd --permanent --add-port=9999/tcp



ちょっと簡単なcgiを動かそうと思った。

VPSの方はパフォーマンス向上を狙ってnginxにしたが

やっぱりapacheの方が簡単で情報も多い。


さて、cgiってデフォルト状態で動くんだっけ?

cgi-binにスクリプトを置いて実行するとinternal server errorになる。


httpd.confを直すのかな・・・と、

適当にいじるがダメ。


なんでだろう・・・と思ったら、perlが入ってなかった。

yum install perl


動いた。

2015/10/31

natの用途

すごく基本的なことかもしれないが、
よく悩むしたぶん理解できてないので、整理のために書く。

私はnatが嫌いだ。できることならnatなどしたくない。あんなものはしないに越したことはない。

natというのは、IPアドレスを変換することである。

ユニーク(唯一で重複がないという意味)なIPアドレス同士の通信なのに、途中で送信元あるいはあて先が変更されてしまうと、誰が誰と通信しているのかわからなくなってしまう。送信者も受信者も中継者も混乱する。


ではなぜnatなどということをするのか。

一番多い目的は、privateアドレスをグローバルアドレスに変換することだろう。

家庭でインターネットを利用するような場合だ。

つまり、ルータがあって、内側(LAN側)では192.168.1.0/24などのプライベートアドレスを使用し、
外側(WAN側)には200.xxx.xxx.xxx などのグローバルアドレスが割り当てられているケース。

家にあるパソコンのIPアドレスは 192.168.1.1/24 とかになっている。

ブラウザで http://www.yahoo.co.jp/ とアドレスを指定して(わざわざURLを全部書くことはまずないだろうが)、目的のサーバ(サイト)にアクセスする。

このとき、www.yahoo.co.jp というホスト名(fqdn)はIPアドレスに変換される。
これをおこなうのがDNSサーバである。

たとえば、今 ping www.yahoo.co.jp をやってみると、

183.79.11.230 宛に通信しているのがわかる。

ちなみに私のパソコンのIPアドレスは 192.168.0.16 である。

192.168.0.16 → 183.79.11.230

という通信である。

「プライベートアドレスとグローバルアドレスは直接通信できない」
ということを聞いたことがないだろうか?

それは、事実上は正しいといえなくもないが、TCP/IPの仕組みとしては可能である。

プライベートアドレスもグローバルアドレスも関係ない。

実際に、インターネットにプライベートアドレスを送信元としたパケットを送出することはできる。

宛先にしても。

でも、そのパケットはすぐに破棄されるだろう。



「プライベートアドレスはインターネットに流してはいけない」
というのもよく聞くセリフで、これはその通りなのだが、

経緯としては、グローバルアドレスは重複しないように管理しようと決めて、
例外としてプライベートアドレスというものを作ったのである。


プライベートアドレスの範囲は決まっていて、
192.168.0.0/16
10.0.0.0/8
172.16.0.0/12

である。

さっき、yahooにpingしたときのアドレス 183.79.11.230はグローバルアドレスである。

でも、このIPアドレスをパソコンに設定しようと思えばすることはできる。


インターネットに接続しなければ、どんなIPアドレスを使用することもできる。

通信もできるかもしれない。

でも、インターネットというのはどこに誰がいるのかわからなくても通信できる仕組みで、

そのネットワークに同じIPアドレスが複数存在するとその仕組みは成立しなくなる。



話が長くなってめんどくさくなってきたのでそろそろ終わりにしよう。



natの第一の用途は、このprivate/global変換である。

これがほとんどである。


しかし、もう一つ用途がある。
私も最近ようやくわかった。


これが本題である。プライベートアドレスのことなどどうでもよかったのだ。実は。



(Network A) --- Router1 --- (Network B) --- Router2 --- (Network C)


Network Aから Network B, Network Cのいずれにもアクセスしたいとする。

すごく単純な構成だが、この要件を満たすには「ルーティング」が必要である。


Router1はNetwork A, Bと接続しているがCには接続していないので、
Cに到達するためのnext hopを設定しなければならない。

それは、Router2である。


そして、Router2にとってはAが未知のネットワークで、そこへ到達するためのnext hopは
Router1である。



では上記のような構成ではどうか。

host1はhost2へアクセスしたい。

host2はhost3へアクセスしたい。


ただし、host2のデフォルトゲートウェイはRouterA、
host3のデフォルトゲートウェイはRouterCで、変更できず、
host3にstatic routeを追加することもできない。


このときhost2に、192.168.2.0/24 → RouterB という経路を追加しても、

host3が192.168.1.0/24の経路を知らないため通信が成立しない。

host3にstatic routeを書けばいいのだが事情があって書けない。


というようなときに、natを使う。

RouterBで、192.168.1.0/24のソースアドレスを、192.168.2.0/24に接続しているI/FのIPアドレスにNATするのである。



もっと、一般化して説明したかったのだが・・・

またの機会に。


2015/10/06

centos7@さくらのクラウド

apacheをインストール、
vsftpdをインストール。

netstatもない。ssというコマンドを使う。

iptablesはあるが、firewalldというのを使うようになった。

vsftpdはやったことがあるがちょっとはまる。
user_listとかchroot_listとかselinuxとか。

selinuxはpermissiveにする。


さくらのクラウド

申し込んだ。

このブログを独自ドメインで使いたいので、ドメイン名を取った。

使っているVPSでマルチドメインにすればいいのだが、めんどくさいのと、
クラウドに興味があったので、クラウドを申し込んでみた。

VPSと違って、ディスクやNICをマニュアルで割り当てる必要がある。

OSはCentOS7にしたのだが、ifconfigがない。

調べると、7では ip addr show とかでアドレスを表示するそうだ。

ip address は nmtui というコマンドを打つと設定できる。


さらに、ネットワーク設定は有効化(activate)しないと使えない。

ホスト名を設定し、DNSゾーンを編集する。

やっと、pingが通った。

2015/10/04

Panasonic CF-N9

パソコンを買った。

秋葉原に売っていた中古のPanasonicのノートPCだ。

CF-N9LWCKDS

OSはWindows7 Professional 64bit

CPU: Corei5 M560@2.67GHz
メモリ: 2GB
HDD: 220GB

2万3000円ほど。

メモリは近くの店で4GBのを3000円ほどで買った。

よく使うソフト、秀丸とかteratermとかをインストールし、
windows updateを実施し、
バッテリの残量表示調整なんとかというのをやって、
最近かったOfficeをインストールした。

64bit、メモリ6GB、快適である。

何がいいって、とにかく軽い。

前からPanasonicのが欲しかったのだが、ついに入手した。

2015/10/02

さくらのVPS メール dovecot postfix iptables 外部からのメールを受信できない 25 587 サブミッションポート

つまり、たとえば、自分のgmailのアカウントから、自分のドメインのアカウント宛のメールを送ると、受信できない。

どうなるかというと、送信してもエラーにもなんにもならないが、メールが届かない。

しばらくすると、(数時間?)送信したアカウント宛にメールが送信できなかったというメールが帰ってくる。

 Delivery to the following recipient failed permanently:

     hoge@example.com

Technical details of permanent failure:
The recipient server did not accept our requests to connect. Learn more at https://support.google.com/mail/answer/7720
[(10) example.com. [xx.xx.xx.xx]:25: socket error]
[(10) mail.example.com. [xx.xx.xx.xx]:25: socket error]


これを見れば、「25番が開いてないんじゃん」と思うだろう。

でも、話はそう単純じゃない。

サブミッションポートとかいう設定にしているからだ。587番を使っているのだ。

サブミッションポートというのは、一応設定はして動いてはいるが、実はよくわからない。

単純にSMTPで使用するポートを25から587に変えているのではないようだ。

いろいろ調べたがビンゴな情報はなく、
結局iptablesで25番を開けることで解決した。

「25番は使わないようにしたのに開いてる」と思って、コメントアウトしたような記憶がある。

それを戻して、iptablesをリスタート。

2015/09/27

python2.7.xを入れたがtweepyが使えない

pythonのスクリプトを実行すると下記のようなメッセージが出てウザい。

# python unblock.py
/usr/lib/python2.6/site-packages/requests-2.7.0-py2.6.egg/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning



2.7.xにすれば治ると聞いたのでやってみた。

まず、yum installでは2.6.xが最新といわれてインストールできない。


ファイルをダウンロードしてmake, installする。



まず、makeしたときにいくつかのモジュールがないと言われる。

ないものをインストールするが、どうしてもできないものが残る。


調べると、みんな、「いらないから無視していい」と言っているので、
setup.pyの無視していいところをコメントアウトして、
なんとかインストールできた。


参考にした情報に、「altinstallにしないとダメ」とあったのでそうしたのだが、

すると、pythonが2.6.x と 2.7.xの二つになってしまった。


ただpythonとやると2.6.xが、

python2.7 とやると 2.7.xが動く。


2.7だけでいいのに、と思ったが、
アンインストール方法がよくわからないのでとりあえずそのままにしておく。



ところが、python2.7でスクリプトを実行すると、tweepyがない、といわれる。

tweepyは easy_installで入れたのだが、

たぶん2.6.xでしか使えないようになっているのだろう。


さて、どうすればいいのか・・・・


下記を参考にする。

http://www.petitec.com/2013/04/centos6%E3%81%ABpython2-7%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B/


wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz

tar xzvf distribute-0.6.35.tar.gz

cd distribute-0.6.35

python2.7 setup.py install


easy_install2.7 というのができる。

pipをいれてから、tweepyをいれる。





easy_install-2.7 pip

easy_install-2.7 tweepy



ようやく、あのウザいメッセージが消えるようになった。


2015/08/09

freeradius@centos@さくらのVPS

yum install freeradius

はOK

設定ファイル

/etc/raddb/radius.conf

を編集

port=0

となっていて、1812に変えるという情報もあるが、
0のままで行けた。


ユーザアカウントとパスワードなどを記載

clientに、自分のPCのグローバルアドレスの設定を作る。


testコマンドがない

インストールが必要だが、yumでみつからない。

レポジトリを変える必要があるか・・・



まあいっか、とりあえずサービスを起動する。

netstatするが、1812が見つからない。

サービスは確かに起動している。


ntradpingというフリーソフトで確認してみると、

response: Access-Accept
と表示されいてるのでうまくいっているようだ。
ポートは1812を指定。


iptablesで、udp 1812:1813 を開けないとダメだった。







2015/07/26

最後のスラッシュ

nginxにしたら、cgiを呼ぶときに最後に/をつけると動かなくなった。

apacheの時は動いていたのに。

スラッシュがついていると、ディレクトリ指定とみなしているようで、
その後にデフォルトのファイル名、index.cgiをつけてしまうのだ。

とりあえず、下記をnginxの設定に追記して、最後のスラッシュは削除するようにした。

rewrite ^(.+)/$ $1;

apacheからnginxへの移行@centos6.6@さくらのVPS【完結編】

やっとできた。

nginxそのものはcgi実行をサポートしていない。

だから、追加でcgi実行機能をインストールし、それを実行するスクリプトを作って実行する必要がある。

そのスクリプトが書いてなかった。


さあ、PageSpeed Insights の結果は、・・・・0.24秒。

変わらず。apacheのときでも0.24秒が出たことはあった。


ただし、あきらかにこっちの方が速い。




thanks to

http://nullpopopo.blogcube.info/2013/07/nginx-perlcgi.html

https://www.linode.com/docs/websites/nginx/nginx-and-perlfastcgi-on-centos-5/


2015/07/25

iptablesの設定をコマンドで追加

私はいつも /etc/sysconfig/iptables をviで直接編集している。

さっき、いつもやらないがコマンドで設定した。

てっきり、コマンドで設定したら上記のファイルに書かれると思っていたが、開いてみるとかかれていない。

設定が反映していないのかと思ったが、iptables -L などで見るとちゃんと有効になっている。

どういうこと?

wwwをつけないとアクセスできない

nginxに移行しようとしていて気づいたのだが、
いつの間にか、urlにwwwをつけないとアクセスできなくなっていた。

そんなところに影響するような設定変更は何もしていないのに。

自宅のパソコンから example.com (仮名)にpingを打つと帰ってくるから、
DNSの問題ではない。

http://example.com/ だとアクセスできなくなっている。

http://www.example.com/ としないと。


おかしいな・・・

なんでだろう・・・


apacheの設定しか考えられない。

実はこないだoom-killerが発動してhttpdが落ちており、再起動した。

そのときに何か保存していない設定が戻ってしまったのか・・・。


クソー、nginxの移行がすんなりいかないと思ったら、今までできてたことができなくなってしまった・・・




iptablesのせいだった。

この前追加した、特定の文字列を含むアクセスを停めるつもりの設定を消したら治った。


でも、あれがないとウザいアクセスが大量に来るんだよな・・・

apacheからnginxへの移行@centos6.6@さくらのVPS

予想以上に難航。

fastcgiとかなんとか。

インストールでコケまくる。

とりあえず、下記ページには助けられた。

http://github.tiankonguse.com/blog/2015/01/19/cgi-nginx-three/


てこずりそうなので、apacheはあげておいて、
nginxは違うポート番号で動かす。



続きは以下で

apacheからnginxへの移行@centos6.6@さくらのVPS【完結編】

2015/07/23

iptablesで特定の文字列へのアクセスを拒否する

-A INPUT -m string --to 60 --algo bm --string "wiki" -j DROP


なんかうまくいかないのでマネしないでください。



2015/07/19

cssの最適化

adsenseのスコアカードで、cssの最適化がされていないと指摘された。

改善策として、cssの一部をインライン、つまりhtmlファイルの中に直接書いて、
css全体はあとから読むようにする、ということが書いてあった。

そのときは、以下のようにhtmlファイルのheadの部分に、cssファイルをリンクさせていた。

<head>
<link rel="stylesheet" type="text/css" href="http://example.com/css/mycss.css">
</head>


別ファイルを読みに行くのだから時間がかかるだろうとは思うが、
その内容をhtmlの中に直接書くのはイヤだ。

adsenseが言うには、全部ではなくて、初期表示に必要な一部だけ、ということなのだが、
どれが必要でどれが必要でないか判断がつかない。


とりあえず、cssをキャッシュするように、apacheを設定してみた。
apacheで、mod_expireというモジュールを有効にする。

/etc/httpd/conf/httpd.conf

で、下記の行がコメントアウトされていなければよい。

LoadModule expires_module modules/mod_expires.so

そして、下記のように、各ファイルについて有効期限を設定する。
ここに設定した期限が経過するまでは、クライアントはサーバに直接アクセスせず、
キャッシュを参照するそうだ。


<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/png "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType text/css "access plus 12 months"
ExpiresByType text/javascript "access plus 1 weeks"
ExpiresByType application/x-javascript "access plus 1 weeks"
ExpiresByType application/x-shockwave-flash "access 1 years"
ExpiresDefault "access plus 1 days"
</IfModule>

私のサイトは画像を一切使っていない。

今回指摘されたのも、cssについてだけだ。

とりあえず、12 monthsで設定してみた。ここがあまり短いと、警告は消えない。



そして、htmlファイルのheadに記載しているcssファイルへのリンクを、
bodyの後ろ、もっというと、</html>の前に持ってくる。

これをやると、cssを読む前にコンテンツを読み込み、cssを読んだら内容が反映される。

部分的なインライン記述をしなくても、adsenseの警告はこれで消えた。



上記のExpireなんたらの記述は.htaccessに書く方法もあるらしいのだが、
基本的に.htaccessは使わないほうがよさそうなので、httpd.confに書いた。

iptableがftpを通さない

vsftpdをインストールした後、iptablesを有効にしているとftpできなかった。

原因はよくわからず、ftpはあまり使わないので放置していた。

下記の設定が必要であった。

/etc/sysconfig/iptables-config

IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"


こんなこと、1台目ではやった覚えがないけどな・・・

mod_perl

googleアドセンスのスコアカードで、私のサイトのあるページの応答速度が0.26秒であった。

200ミリ以下が理想だそうだ。

apacheの不要なモジュールを停めてみたりしたが効果がない。


mod_perlを入れてみる。


yum -y install mod_perl


/etc/httpd/conf.d/perl.conf

で、必要な設定をコメントアウト


LoadModule perl_module modules/mod_perl.so

PerlSwitches -w

PerlSwitches -T

Alias /perl /var/www/perl
<Directory /var/www/perl>
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options +ExecCGI
</Directory>

<Location /perl-status>
    SetHandler perl-script
    PerlResponseHandler Apache2::Status
    Order deny,allow
    Deny from all
    Allow from .example.com
</Location>


httpd再起動。
速くなったように感じるが、アドセンスの評価は変わらず。


2015/07/11

ssl

http://wiki.centos.org/HowTos/postfix_sasl

yum install mod_ssl

yum install crypto-utils genkey --days 365 mail.example.com ※自分のメールサーバ名

ちょっと時間がかかる。


と思ったが、すごくかかる。

collecting random dataで。

全然進まない。

これは、30分くらいかかるか。


2015/05/24

Nexus5

Nexus5の端末を買った。

普段はiPhone6を自分の体の一部のように使っていて、なんの不満もないのだが、
androidってどうなんだろう?と、参考のために買った。

私のiPhoneは公私共用なので、
私用用に携帯電話を契約していたのだが、ほとんど使うことはなく、そのうち紛失してしまった。

いわゆる「ガラケー」で、ブラウザすらない端末だったが、
どうせなら、「スマホ」にしてしまおうと。


androidのことはよくしらないが、Nexus, エクスペリア、galaxyなどの名前は聞いたことはあった。

メジャーなのはエクスペリアとギャラクシーで、この二つはドコモ・AU・Softbankどこでも買える。

が、Nexusはワイモバイルでしか買えない。


私が持っていた電話はワイモバイルのものだったことがバレてしまった。


なんでもNexusはandroidのフラッグシップとやらで、アップデートが真っ先に提供されるのだという。

フラッグシップというと聞こえはいいが、実験台みたいなものでもある。


まあ、わたしがnexusを持つのは実験のようなものだからちょうどよい。


契約して、もらった瞬間から触りながら帰った。

画面はきれいで、操作感覚もiPhoneとほとんど遜色ない。

UIはiPhoneにくらべるとちょっとゴチャゴチャしてわかりにくいように感じるが、
慣れてないだけかもしれない。

キーボードを押すたびにバイブがブッ、ブッとなるのは邪魔だなあと思って、
止めようと探したがどこで設定するのかわからず、
翌日調べて止めた。


店頭で説明もされたのだが、音声がモノラルである。
イヤホンしてもモノラルなのか?それはないよな?
まだ確認してない。

androidでもiPod的な機能はあるはずだが、どうなのだろう。


androidならではの機能ってなんかあるだろうか?

アプリを作ってみようか。


2015/05/17

mediawiki

wikiは便利だなと思って、
一時期よく使っていたが、最近は使わない。

メモ的なことはブログやSNS的なものでやってしまえるようになった・・・。

でもwikiはメモより一歩進んだ、まとめ的なものに使えるから、
やっぱりインストールしておこう。


これもさくらのVPSの一台目で導入済みなので、復習である。

mysql(他のDBでもいいはず)

php

が必要。

php は最初からインストールされてなかったっけ・・・?

と思ったが、

php -v

とやってもエラーになるので入っていないようだ。


一台目は入っていた、確か。


phpって、あんまり使いたくないんだけど、いれとくか。

というか、いれなきゃダメか。



いちおうphpのインストール方法を確認すると、リポジトリの追加とか必要なモジュールがどうとか
いろいろ書いてあるが、


yum install php


phpのバージョンは、

PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53)


mysqlは、

Server version: 5.1.73 Source distribution



ではmediawikiを入れよう。

wget http://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.2.tar.gz


解凍したら、apacheのドキュメント置き場に置く。


/var/www/html/wiki

とか


そしてブラウザで

http://example.com/wiki/index.php

とやる・・・

phpスクリプトがテキストとして表示される・・・

apacheでphpを動くようにしておかないとダメか・・・


こんなのカンタン・・・と思ったがうまくいかない。

ググる。

yum -y install php php-mbstring php-mysql php-gd

php.ini をいじる。


apacheの設定は変更する必要がない。


http://example.com/wiki/index.php

インストール画面が表示された。

が、進まない。

dbを作るのが先か。


mysql> grant all on mediawiki.* to 'wiki'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> \q


やっぱりダメ。画面がまっしろになってしまう。

/var/log/httpd/error_logを見ると

 PHP Fatal error:  Class 'DOMDocument' not found in....

と出ている。

ググる。

yum install php-xml

service httpd restart

進んだ。

dbにアクセスできない、というようなエラーが出る。

アカウントがなかったので作る。


mysql> create user wiki identified by 'password';



dbが作れないというエラーが出る。

作ったdbを消す。

まだ出る。

権限を全部許可にする

mysql> grant all on *.* to 'root'@'example.com' identified by 'password';


やっと入った。


mysqldのバックアップを戻したら、表示できなくなった。

単純にDBを上書きしたらダメか。

後で移そう。




mysqldのデータ移行

mysqlをインストールしたら、DBを作成する。


mysql> create database HISTORY character set utf8;


いったん抜けて、バックアップしたファイルを以下のように指定してインポート

mysql -u root -p HISTORY < HISTORY.backup

あっという間。

2015/05/16

さくらのvps1台目解約

mysqldump -u root -p -q HISTORY > HISTORY.backup

mysqlのバックアップを取る。


あとはもう必要なものはないはず。


あるかもしれないけど、1年くらい、放置してあるから、もういいか。


解約しよう。


shutdown -h now


月曜日に手続きする。


2015/05/10

InsecurePlatformWarning

python blocking.py
/usr/lib/python2.6/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning



warningなので、動くことは動く。

pythonのバージョンを変えれば出なくなるという情報を見つけたが、
それもどうかな。

yum install python

とやると、2.6.6 が入る。


動くから別にいいか、と思ったが、長いのでやっぱりウザい。


1台目ではでなかったのに、とバージョンを見ると 2.7.3 になっている。


いれなおした覚えはあるようなないような・・・


2.7.x をいれてしまえばよさそうだが、

それにともなってアレもアレするとかいう情報が出てくるので、

とりあえず見送り。


2015/05/09

postfix 再設定

/etc/postfix/main.cf

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = **************
mydomain = **************
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP hoge
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination
broken_sasl_auth_clients = yes





saslauthd を起動すること。

cgi移行

ファイルを移す。

htmlファイルを /var/www/htmlに
cgiを /var/www/cgi-bin に
cssも移す。

cgiを動かすとinternal server errorになる。

/var/log/httpd/error_log を見ると、CGI.pm がない、とある。


cpan

YAMLがないといわれる。

install YAML

install CGI

エラーが出てインストールできない。

cpanからダウンロードしてインストールする。


wget http://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/CGI/CGI-4.15.tar.gz



tar zxvf CGI-4.15.tar.gz

cd CGI-4.15

perl Makefile.PL

make

make install

こんどはXML/RSS.pm がない。

もうRSSなんか使わないので、前回はRSSを使っているところをコメントにしたのだが、
ついでなのでインストールする。

と思ったがまたエラーが出る。


DateTime が必要?

cpanで

install DateTime

とやってもそんなのない、といわれる。


cpanm というのがあるのを知る。

curl -L http://cpanmin.us | perl - --sudo App::cpanminus


cpanm DateTime

cpanm XML::RSS




次は twitter

install Net::Twitter::Lite

install Net::Twitter

よくみると違う

install Net::Twitter::Lite::WithAPIv1_1




Crypt::SSLeay

がないと言われる。

そしてどうしてもinstall できない。

ググる。



yum install opessl-devel

をやればいけるという情報を見つける。

釈然としないが、なんか以前にもやったような気がする・・・



やって、もう一度 Crypt::SSLeay をいれる・・・



ダメ・・・

cpan>force install Scalar::Util

cpan>install IO::Socket::SSL

cpan>force install LWP::Protocol::https



とかなんとかやってなんとか入る・・・


次は MeCab.pm

これも前回はコメントアウトしたのだが、今回はがんばる。

http://taku910.github.io/mecab/#download

本体、辞書、perlバインディングの3つをいれる。




こんどは、GD/Graph/pie.pm

yum install perl-GD

cpan>install GD::Graph::pie




次はpythonのmecabバインディング

buildでエラー。
MeCab_wrap.cxx:149:20: error: Python.h: No such file or directory


yum install python-devel




/etc/ld.so.confに1行追加(libmecab.soのある場所)

/usr/local/lib

ldconfig




2015/05/06

centosを再インストールするとすると

必要なことは

postfix + dovecot の設定

perlのモジュールのインストール
  cpan
  YAML::Tiny
  Net::Twitter::Lite

pythonのモジュールのインストール
  pip
  tweepy

crontabのインストールと設定

apacheのインストール



locale問題

localeのエラーが出ている。

英語で使っていればいいのだが、
cgiに日本語でコメントが書いてある。

それは我慢していたのだが、

twitterのbotを移植しようとしたら、同じエラーが出て、
これはなんとかせねばならない。



その前に、perlのモジュールが動かない。
インストールしようとしたらCPAN.pmがない。

yum install perl-CPAN

perl -MCPAN -e shell

をやって

install YAML::Tiny

をやる。


スクリプト内のフォルダ名を直したり、ファイルのパーミッションを直したら動いた。
localeのエラーは出たままだが、とりあえず無視。

botを動かすためにcrontabの設定をしようと思い

vi /etc/crontab

をやろうとしたら、ファイルがない。
インストールされてなかった。

yum install crontabs



botの移行は一応できたが、
tweetするネタは日本語で書いてあるため、これを編集するには
やっぱりlocale問題を解決せねばならない・・・。


もちろんさんざんググって、書いてあることを片っ端から試しているが治らない。

locale問題に関しては、「接続する側の設定との不一致」ということで、
クライアント側の設定を変えて解決するということがよくあるようだが、

私の場合は、メッセージにあるように、

# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=ja_JP.UTF-8
LC_CTYPE=ja_JP.utf8
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

本当に、必要なファイルまたはフォルダが存在しないと思えてならない。
glibcをアップデートしたのがきっかけだと思い、
戻してみたがダメ。

OS再インストールするかな・・・
やったことは全部メモってあるし、試行錯誤したけどたいした量じゃないから・・・。



tweepy インストール

yum install python-pip

pip install tweepy

エラーが出る。

# pip install tweepy
Downloading/unpacking tweepy
  Downloading tweepy-3.3.0.tar.gz
  Running setup.py egg_info for package tweepy
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/tmp/pip-build-root/tweepy/setup.py", line 17, in <module>
        install_reqs = parse_requirements('requirements.txt', session=uuid.uuid1())
    TypeError: parse_requirements() got an unexpected keyword argument 'session'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/tmp/pip-build-root/tweepy/setup.py", line 17, in <module>

    install_reqs = parse_requirements('requirements.txt', session=uuid.uuid1())

TypeError: parse_requirements() got an unexpected keyword argument 'session'

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-root/tweepy
Storing complete log in /root/.pip/pip.log



ググる。


pip install --upgrade pip

pip install tweepy



2015/04/30

glibc

mysqlのインストールでごちゃごちゃやっているときに、
glibcを2.14にビルドして更新したら、
localeの設定がutf8にならなくなってしまった。

よくわからないが、2.12をビルドして元に戻す。


2.14にした手順

tar xz zvsxf glibc-2.14.1.tar.gz

cd glibc-2.14.1

mkdir build
cd build
../configure --prefix=/usr/bliglibc
make
make install

cd /usr/glibc/lib

# cp libc-2.14.1.so /lib64/
# ln -nfs libc-2.14.1.so libc.so.6
# ldconfig
# pwd
/usr/glibc/lib
# cd /lib64
# ls -l libc.so.6
lrwxrwxrwx 1 root root 14 Apr 30 01:55 libc.so.6 -> libc-2.14.1.so


これを2.12で同じようにやればいいのだと思う・・・

mysqlのインストール

yum install mysql-server

でok

http://centossrv.com/mysql.shtml






mecab

webサーバも、新しいvpsに移行することにした。

apache + perl がメインである。


mecabを使ったcgiがあるのだが、
perlのmecabがどうしてもインストールできない。

と思ったら、pythonを使ったものになっていたので、
pythonのmecabをインストール

参考
http://d.hatena.ne.jp/mrgoofy33/20110406/1302019908

http://qiita.com/ShingoOikawa/items/175be8a472ec8ed8a707


http://d.hatena.ne.jp/yuboolike/20121207/1354869309


ひらぶん

平文はまずいだろうと、tlsだかなんだかに挑戦したが、
今までできてたことまでできなくなったので、ひらぶんのままにした。


2015/04/29

postfix smtp auth

必要十分ではないかもしれない(余計な設定もあるかもしれない)が、
送信できるようになった。



vi /etc/postfix/main.cf

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination
broken_sasl_auth_clients = yes



smtp認証だけど、dovecotの設定も変更する。

# vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no

auth_mechanisms = plain login

# vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir

# vi /etc/dovecot/conf.d/10-master.conf

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix


postfix, dovecot をリスタート


2015/04/26

送信できない

終わったと思ったら、送信ができないことに気づいた。

さっき、「よくわからない」と書いた、saslなんたらの部分か。


いろいろやってみたえけどよくわからん。

日曜日でいい天気なので、今日はここまで。

遊びに行こう!

postfix + dovecot ユーザアカウント設定

useradd hoge -s /sbin/nologin
passwd hoge


クライアント設定(thunderbird)

サーバ設定

サーバ名: mail.example.com
ポート:143

セキュリティ設定
接続の保護: STARTTLS
認証方式: 通常のパスワード認証



以前はアカウントを追加するたびにフォルダを作ったり設定ファイルにユーザ名を追加したりしていたのだが、

今回のやり方はアカウントを作ってパスワードを設定すれば、
postfixやdovecotの設定は何もかえなくてよい。

これがやりたかった。

メールサーバの移行ができてしまった。


パスワード暗号化はまたの機会に。



dovecot

centos6.6

さくらのvps

dovecot

dovecotとは、受信メールサーバである。

さくらのvpsの標準OS(centos6.6)ではposftixがプリインストールされている。

昔のはsendmailが入っていたが、今はなくなった。


さくらのvpsなら、centos + postfix(サブミッションポート使用、認証あり) + dovecot

というのが定石のようだ。


では、dovecotをいれて設定しよう。


yum -y install dovecot


/etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir


/etc/dovecot/conf.d/10-auth.conf

auth_mechanisms = plain login

login を追加


これだけか。

service start dovecot start


netstat -antをすると、

993,995,110,143を待つようになった。

110はpop3、
994はpop3s、
993,143はimap

だそうです。


次はユーザアカウントの作成とクライアントの設定

postfix 587

さくらのvpsのposftixで、

サブミッションポートを使用する設定

/etc/postfix/master.cf

submission inet n       -       n       -       -       smtpd

という行のコメントをはずす。

保存して postfixを再起動

netstat -ant

587番をlistenするようになった。

iptablesで587を開ける。


....これだけか。




ちなみに、netstatでみると、25番もlistenしている。

以前に設定した1台目でもそうなっている。

サブミッションポートというのは単にポートを変えるだけではなく、
25番ポートは使うもののようだ。

単にポート番号変えるだけならイタチゴッコだもんね。

postfix

postfixの設定

/etc/postfix/main.cf

を編集する。

myhostname

mydomain

myorigin=$mydomain (コメントとる)

inet_interface = all

mydestination = $myhostname, localhost.$mydomain, localhost
(最初から有効だったような気がするがコメントアウトされてたらとる)

mynetworks = 127.0.0.0/8

home_mailbox = Maildir/

smtpd_banner = $myhostname ESMTP unknown


最後に以下を追加。
正直、どういう意味かわからない。


smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination


service postfix start

netstat -ant

をやると、25番をlistenしているのがわかる。

25番を使うのはあまりよくないので、サブミッションポートを使うという設定にする。
これはあらためて書く。


メールが送れるかテストしてみる。

uname -a|sendmail hoge@example.com

hoge@example.comにメールが送られているはず。


さくらのvps2台目

しばらく前に契約した2台目のVPSサーバ。

そもそもは、GNS3がcentosにインストールできなくてubuntuのサーバが必要なため
契約したものだった。

GNS3はインストールできたが、まったく使わなかった。

httpサーバをたててリバースプロキシにして、1台目に転送していたが、
それもムダだ。


centosを入れなおした。


2台あるから、やることを分散させたい。

というか、2台目に全部移して一台目を解約しようか。

それがいい。今思いついた。


というわけで、さくらのvpsの設定を一からやりなおす。

もう何度もやっているし、いろんな人がやっているから検索すれば情報は得られるのだが、
微妙に人によって書いてあることが違うから、
自分は自分でまとめておこう。


vpsでまずやることは、sshのポート番号変更である。

/etc/ssh/sshd_config

を編集する。

httpd (apache)のインストール

vsftpdのインストール

yum update

そしてこれらのサービスで使用するポートをiptableで許可する。




2015/04/25

dynabook ux/23lwh bsusrc06 minicom vpnc

秋葉原の中古ショップで9800円ほどで買った。

OSなし。

とにかく小さいPCが欲しかった。

見た目がよかったので買った。

オークションならもっと安く買えたかもしれないが、メンドクサイので買ってしまった。


WindowsXPをインストールしようとしたら、ハードディスクがないという。

まさかHDDなしか!と、中を見ようとしたら裏のフタのネジが特殊で、
さらに特殊ねじを無理やりドライバでこじ開けようとしたらしくヤマがつぶれていて
あけることができない。

BIOSの表示ではHDDはあるようだが・・・。

買った店に聞いてみたら、HDDがSATAなので、XPを入れる場合はSATAドライバを読み込ませる必要があるという。

どこにあるのか、どうやって読ませるのかと軽くしらべると、FDDが必要とかいう情報が出てきてあきらめる。

じゃんぱらで買ったカスタムメイドPCのおまけのWin7ディスクでいれてみようと思ったが、64bitバージョンだった。

このdynabook ux/23kwhのCPUはAtom 280Nとかいうもので32bitである。

しかたがないので、3万円で買ったWindows Vista Ultimateを入れることにした。

が、うまくいかない。そもそもこれはアップグレード版で、アップグレード対象のOSがインストールされている状態からでないとインストールできないのだ。


結局、CentOSを入れることにした。

別にcentosが好きなわけではないが、さくらのvpsでも使っていて慣れているし、
比較的新しいディスクもあったからだ。

インストールは何も問題なく完了した。

バージョンは 6.6 である。

その後 yum updateをやったら、かなり時間がかった。



本題はこれからである。

PCの用途は、teraterm+USBシリアル変換ケーブルによるルータ等アクセスと、
cisco vpn clientによるVPN接続である。


調べたら、どちらもカンタンにできた。

まず、usbシリアル変換ケーブルであるが、何もしなくても認識した。

ケーブルをさして、

dmesg | grep ttyUSB

usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0


「ttyUSB0」を覚えておく。


そして、minicom をインストールする。


yum install minicom

LANG=c minicom -s

[Sereal port setup]を選択し、

A - Serial Device: /dev/ttyUSB0
E - Bps/Par/Bits : 9600 8N1

の2箇所を直し、[Save setup as dfl]を選択して設定を保存し、[Exit from Minicom]で終了。

LANG=C minicom

で起動


終了するときは、Ctrl+Aを押してから、

Shift+X


USBシリアル変換ケーブルは、iBuffaloの BSUSRC06である。

エレコムのやつとかでもいけるようだ。


次は、vpn client

ciscoのvpn clientのlinux用はあるにはあるが、フリーで誰でも落とせるものではない。

その代わり、vpnc というものがある。

yum -y install vpnc


すぐ終わる。

設定ファイルで設定すべきところは以下であるが、

IPSec gateway ... ゲートウェイのIP address
IPSec ID ... グループ名
IPSec secret ... グループパスワード
Xauth username ... ユーザ名
Xauth password ... ユーザパスワード


cisco vpn clientのプロファイルファイル(*.)があるなら、
変換してくれるスクリプトがある。

pcf2vpnc

このスクリプトは別途ダウンロードしたのか最初から入っていたのか覚えていないが、
別途ダウンロードした気がする。

調べればすぐ出てくる。


settei.pcf というファイルを変換して vpnc.conf という名前で保存する。

pcf2vpnc settei.pcf vpnc.conf


vpnc.conf という名前で /etc に保存すると、読み込んでくれる。(と思う。今そうなっているので)

vpnc.conf hoge.conf と、ファイル名を指定することもできる。


chmod 700 /etc/vpnc/vpnc-script

をやったような気がする。


vpnc 

で起動する。


VPNC started in background (pid: xxxx)...


というメッセージが表示されれば接続できている。


接続を切るときは

vpnc-disconnect


下記メッセージが表示される。

Terminating vpnc daemon (pid: xxxx)

2015/02/14

奇跡の

ccnp失効期限日に、ギリギリ合格。

あと一問落としてたら、ccnaからやりなおしになるところだった....


2015/02/11

OSPF over GRE over IPsec





R1#ping 192.168.2.254 repeat 100000

Type escape sequence to abort.
Sending 100000, 100-byte ICMP Echos to 192.168.2.254, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!.
Success rate is 99 percent (365/366), round-trip min/avg/max = 68/100/232 ms
R1#
R1#
R1#
R1#
R1#
R1#
R1#
R1#
R1#
R1#
R1#
R1#
R1#sho run
R1#sho running-config
Building configuration...

Current configuration : 1662 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
ip tcp synwait-time 5
ip cef
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
crypto isakmp policy 1
 authentication pre-share
crypto isakmp key ipsec address 10.0.2.1
!
!
crypto ipsec transform-set IPSEC esp-aes esp-sha-hmac
!
crypto map MAP1 1 ipsec-isakmp
 set peer 10.0.2.1
 set transform-set IPSEC
 match address ACL1
!
!
!
!
interface Tunnel1
 ip address 100.0.0.1 255.255.255.252
 tunnel source GigabitEthernet1/0
 tunnel destination 10.0.2.1
!
interface FastEthernet0/0
 ip address 192.168.1.254 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface GigabitEthernet1/0
 ip address 10.0.1.1 255.255.255.252
 negotiation auto
 crypto map MAP1
!
interface GigabitEthernet2/0
 no ip address
 shutdown
 negotiation auto
!
router ospf 1
 log-adjacency-changes
 network 100.0.0.0 0.0.0.3 area 0
 network 192.168.1.0 0.0.0.255 area 0
!
ip route 0.0.0.0 0.0.0.0 GigabitEthernet1/0
!
no ip http server
no ip http secure-server
!
!
!
ip access-list extended ACL1
 permit gre host 10.0.1.1 host 10.0.2.1
no cdp log mismatch duplex
!
!
!
!
control-plane
!
!
!
!
!
!
gatekeeper
 shutdown
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login
!
!
end

R1#sho cry isa sa
dst             src             state          conn-id slot status
10.0.2.1        10.0.1.1        QM_IDLE              1    0 ACTIVE

R1#sho cry ipsec sa

interface: GigabitEthernet1/0
    Crypto map tag: MAP1, local addr 10.0.1.1

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (10.0.1.1/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (10.0.2.1/255.255.255.255/47/0)
   current_peer 10.0.2.1 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 454, #pkts encrypt: 454, #pkts digest: 454
    #pkts decaps: 428, #pkts decrypt: 428, #pkts verify: 428
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 16, #recv errors 0

     local crypto endpt.: 10.0.1.1, remote crypto endpt.: 100.0.0.2
     path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet1/0
     current outbound spi: 0x0(0)

     inbound esp sas:

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:

     outbound ah sas:

     outbound pcp sas:

     local crypto endpt.: 10.0.1.1, remote crypto endpt.: 10.0.2.1
     path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet1/0
     current outbound spi: 0x4206FCA5(1107754149)

     inbound esp sas:
      spi: 0x283F14B1(675222705)
        transform: esp-aes esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2001, flow_id: SW:1, crypto map: MAP1
        sa timing: remaining key lifetime (k/sec): (4569184/3013)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0x4206FCA5(1107754149)
        transform: esp-aes esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2002, flow_id: SW:2, crypto map: MAP1
        sa timing: remaining key lifetime (k/sec): (4569180/3013)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE

     outbound ah sas:

     outbound pcp sas:
R1#sho ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

     100.0.0.0/30 is subnetted, 1 subnets
C       100.0.0.0 is directly connected, Tunnel1
     10.0.0.0/30 is subnetted, 1 subnets
C       10.0.1.0 is directly connected, GigabitEthernet1/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
O    192.168.2.0/24 [110/11112] via 100.0.0.2, 00:01:19, Tunnel1
S*   0.0.0.0/0 is directly connected, GigabitEthernet1/0
R1#

R1#sho ip os neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.2.254     0   FULL/  -        00:00:36    100.0.0.2       Tunnel1
R1#




R1#show ip os interface
Tunnel1 is up, line protocol is up
  Internet Address 100.0.0.1/30, Area 0
  Process ID 1, Router ID 192.168.1.254, Network Type POINT_TO_POINT, Cost: 11111
  Transmit Delay is 1 sec, State POINT_TO_POINT,
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:00
  Supports Link-local Signaling (LLS)
  Index 3/3, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 4 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 192.168.2.254
  Suppress hello for 0 neighbor(s)
FastEthernet0/0 is up, line protocol is up
  Internet Address 192.168.1.254/24, Area 0
  Process ID 1, Router ID 192.168.1.254, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 192.168.1.254, Interface address 192.168.1.254
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:08
  Supports Link-local Signaling (LLS)
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 0
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 0, Adjacent neighbor count is 0
  Suppress hello for 0 neighbor(s)
R1#



Netwrk Typeは POINT_TO_POINTになる。

DR/BDRは存在しない。

peerは自動で見つかる。


















R3#sho running-config
Building configuration...

Current configuration : 1664 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
ip tcp synwait-time 5
ip cef
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
crypto isakmp policy 1
 authentication pre-share
crypto isakmp key ipsec address 10.0.1.1
!
!
crypto ipsec transform-set IPSEC esp-aes esp-sha-hmac
!
crypto map MAP1 1 ipsec-isakmp
 set peer 10.0.1.1
 set transform-set IPSEC
 match address ACL1
!
!
!
!
interface Tunnel1
 ip address 100.0.0.2 255.255.255.252
 tunnel source GigabitEthernet2/0
 tunnel destination 10.0.1.1
!
interface FastEthernet0/0
 ip address 192.168.2.254 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface GigabitEthernet1/0
 no ip address
 shutdown
 negotiation auto
!
interface GigabitEthernet2/0
 ip address 10.0.2.1 255.255.255.252
 negotiation auto
 crypto map MAP1
!
router ospf 1
 log-adjacency-changes
 network 100.0.0.0 0.0.0.255 area 0
 network 192.168.2.0 0.0.0.255 area 0
!
ip route 0.0.0.0 0.0.0.0 GigabitEthernet2/0
!
no ip http server
no ip http secure-server
!
!
!
ip access-list extended ACL1
 permit gre host 10.0.2.1 host 10.0.1.1
no cdp log mismatch duplex
!
!
!
!
control-plane
!
!
!
!
!
!
gatekeeper
 shutdown
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login
!
!
end

R3#sho cry isa sa
dst             src             state          conn-id slot status
10.0.2.1        10.0.1.1        QM_IDLE              1    0 ACTIVE

R3#sho cry ipsec sa

interface: GigabitEthernet2/0
    Crypto map tag: MAP1, local addr 10.0.2.1

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (10.0.2.1/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (10.0.1.1/255.255.255.255/47/0)
   current_peer 10.0.1.1 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 428, #pkts encrypt: 428, #pkts digest: 428
    #pkts decaps: 454, #pkts decrypt: 454, #pkts verify: 454
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 10.0.2.1, remote crypto endpt.: 100.0.0.1
     path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet2/0
     current outbound spi: 0x0(0)

     inbound esp sas:

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:

     outbound ah sas:

     outbound pcp sas:

     local crypto endpt.: 10.0.2.1, remote crypto endpt.: 10.0.1.1
     path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet2/0
     current outbound spi: 0x283F14B1(675222705)

     inbound esp sas:
      spi: 0x4206FCA5(1107754149)
        transform: esp-aes esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2001, flow_id: SW:1, crypto map: MAP1
        sa timing: remaining key lifetime (k/sec): (4550791/3020)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0x283F14B1(675222705)
        transform: esp-aes esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2002, flow_id: SW:2, crypto map: MAP1
        sa timing: remaining key lifetime (k/sec): (4550795/3020)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE

     outbound ah sas:

     outbound pcp sas:
R3#sho ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

     100.0.0.0/30 is subnetted, 1 subnets
C       100.0.0.0 is directly connected, Tunnel1
     10.0.0.0/30 is subnetted, 1 subnets
C       10.0.2.0 is directly connected, GigabitEthernet2/0
O    192.168.1.0/24 [110/11112] via 100.0.0.1, 00:01:26, Tunnel1
C    192.168.2.0/24 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 is directly connected, GigabitEthernet2/0
R3#

R3#sho ip os neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.1.254     0   FULL/  -        00:00:36    100.0.0.1       Tunnel1
R3#



IPv6アドレス

interface GigabitEthernet2/0
 ip address 100.0.2.1 255.255.255.252
 negotiation auto
 ipv6 address autoconfig
!






R2#sho ipv6 interface
GigabitEthernet2/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::C802:10FF:FEDC:38
  No global unicast address is configured
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FFDC:38
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements are sent every 200 seconds
  ND router advertisements live for 1800 seconds
  Hosts use stateless autoconfig for addresses.



FE80で始まっているのが、自動的に設定されたIPv6アドレスか。



R2#sho interfaces gigabitEthernet 2/0
GigabitEthernet2/0 is up, line protocol is up
  Hardware is 82543, address is ca02.10dc.0038 (bia ca02.10dc.0038)
  Internet address is 100.0.2.1/30
  MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 1000Mb/s, link type is autonegotiation, media type is SX
  output flow-control is unsupported, input flow-control is unsupported
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:01, output 00:00:01, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     2265 packets input, 221225 bytes, 0 no buffer
     Received 1254 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog, 0 multicast, 0 pause input
     0 input packets with dribble condition detected
     2292 packets output, 224989 bytes, 0 underruns
     0 output errors, 0 collisions, 1 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier, 0 pause output
     0 output buffer failures, 0 output buffers swapped out
R2#


show interfaceでみると、 mac address は ca02.10dc.0038

EUI-64方式のアドレス決定方式に当てはめてみる。

二つにわけて、間にFFFEをはさむ

ca0210 fffe dc0038

先頭から7ビット目を反転する

c → 00001100 → 00001110 → e

ea0210fffedc0038

あれ、違う

ca → 11001010 → 11001000 → c8

c802... あってる。






R2#ping ipv6 fe80::c803:aff:fedc:38
Output Interface: gigabitethernet2/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::C803:AFF:FEDC:38, timeout is 2 seconds:
Packet sent with a source address of FE80::C802:10FF:FEDC:38
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/246/1104 ms
R2#



なんでpingのときにインターフェイスを指定させられるんだろう?


今のはlink local addressだった。


prefixを指定して、global unicastアドレスを自動設定することもできる。



R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#interface gigabitEthernet 1/0
R2(config-if)#ipv6 address ?
  WORD                General prefix name
  X:X:X:X::X          IPv6 link-local address
  X:X:X:X::X/<0-128>  IPv6 prefix
  autoconfig          Obtain address using autoconfiguration

R2(config-if)#ipv6 address 1234::/48 ?
  anycast  Configure as an anycast
  eui-64   Use eui-64 interface identifier
  <cr>

R2(config-if)#ipv6 address 1234::/48 eui-64
R2(config-if)#end


R2#sho ipv6 interface
GigabitEthernet1/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::C802:10FF:FEDC:1C
  Global unicast address(es):
    2002::, subnet is 2002::/64
    2002::C802:10FF:FEDC:1C, subnet is 2002::/64 [EUI]
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FF00:0
    FF02::1:FFDC:1C
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements are sent every 200 seconds
  ND router advertisements live for 1800 seconds
  Hosts use stateless autoconfig for addresses.




経路集約について

10.0.0.0/24
10.0.1.0/24
10.0.2.0/24
10.0.3.0/24

このような経路があったときは、10.0.0.0/22 で集約できる。

集約前と集約後のIPアドレスの範囲は一致する。



では、次のような場合はどうしたらよいか?

10.0.1.0/24
10.0.2.0/24
10.0.3.0/24
10.0.4.0/24
10.0.5.0/24
10.0.6.0/24
10.0.7.0/24
10.0.8.0/24
10.0.9.0/24


一番簡単なのは、上記のサブネットを含む集約アドレスにすることである。

この場合なら、10.0.0.0/20 となる。

しかし、そうすると、10.0.0.0~10.0.0.255、10.0.10.0~10.0.15.255 という
かなり広いムダな領域を含んでしまうことになる。


では逆に、まったく無駄な領域を含まないように、
複数の集約アドレスを設定してみよう。

10.0.1.0/24
10.0.2.0/23
10.0.4.0/22
10.0.8.0/23


でも、今度は集約の効果があまりなく、
集約されている範囲がどこなのかもパっとはわからない。

そこで間をとって、


10.0.0.0/21
10.0.8.0/23


とするのがいいんじゃないだろうか。

10.0.0.0/24が、余計な領域とはなるが。



EIGRPの集約

前回OSPFのsummary addressコマンドで集約をおこなったが、
そもそもその経路はEIGRPルータから広報されている経路であった。

前回は自社ではOSPFルータしか設定できないという前提であったが、
EIGRPルータで集約する場合を考えてみよう。



R4

R4#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R4(config)#interface gigabitEthernet 2/0
R4(config-if)#ip summary-address eigrp 1 ?
  A.B.C.D  IP address

R4(config-if)#ip summary-address eigrp 1 10.0.0.0 ?
  A.B.C.D  IP network mask

R4(config-if)#ip summary-address eigrp 1 10.0.0.0 255.255.248.0
R4(config-if)#end
R4#
*Feb 11 14:33:39.611: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 20.0.1.254 (GigabitEthernet2/0) is resync: summary configured
*Feb 11 14:33:40.263: %SYS-5-CONFIG_I: Configured from console by console
R4#
R4#sho ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     4.0.0.0/32 is subnetted, 1 subnets
C       4.4.4.4 is directly connected, Loopback0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
S       10.0.2.0/24 is directly connected, Loopback0
S       10.0.3.0/24 is directly connected, Loopback0
D       10.0.0.0/21 is a summary, 00:00:07, Null0
S       10.0.1.0/24 is directly connected, Loopback0
S       10.0.4.0/24 is directly connected, Loopback0
S       10.0.5.0/24 is directly connected, Loopback0




R1

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
O IA    100.0.2.0/26 [110/2] via 100.0.1.2, 00:34:54, GigabitEthernet1/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/21 is subnetted, 1 subnets
D       10.0.0.0 [90/51456] via 20.0.1.1, 00:00:16, GigabitEthernet2/0
R1#


ちなみに、R1もR4も、auto-summaryの設定はデフォルトのまま、つまり有効であったのだが、
10.0.x.0/24 は 10.0.0.0/8 に集約されていなかった。

どうも、再配送された経路は集約されないみたいだ・・・。

なんでかな・・・。



OSPFの集約


R1のルーティングテーブル

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     100.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O IA    100.0.2.33/32 [110/3] via 100.0.1.2, 00:09:07, GigabitEthernet1/0
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
O IA    100.0.2.0/30 [110/2] via 100.0.1.2, 00:32:16, GigabitEthernet1/0
O IA    100.0.2.22/32 [110/2] via 100.0.1.2, 00:01:59, GigabitEthernet1/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/24 is subnetted, 5 subnets
D EX    10.0.2.0 [170/51456] via 20.0.1.1, 00:17:56, GigabitEthernet2/0
D EX    10.0.3.0 [170/51456] via 20.0.1.1, 00:17:56, GigabitEthernet2/0
D EX    10.0.1.0 [170/51456] via 20.0.1.1, 00:17:56, GigabitEthernet2/0
D EX    10.0.4.0 [170/51456] via 20.0.1.1, 00:17:29, GigabitEthernet2/0
D EX    10.0.5.0 [170/51456] via 20.0.1.1, 00:17:25, GigabitEthernet2/0
R1#


R1はEIGRP/OSPF間のASBRで、OSPFエリア1に所属しているので、
OSPFのエリア外経路とEIGRPの経路を学習している。

R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O       100.0.2.33/32 [110/2] via 100.0.2.2, 00:05:41, GigabitEthernet2/0
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
C       100.0.2.0/30 is directly connected, GigabitEthernet2/0
C       100.0.2.22/32 is directly connected, Loopback0
     20.0.0.0/24 is subnetted, 1 subnets
O E2    20.0.1.0 [110/20] via 100.0.1.1, 00:05:41, GigabitEthernet1/0
     10.0.0.0/24 is subnetted, 5 subnets
O E2    10.0.2.0 [110/20] via 100.0.1.1, 00:05:41, GigabitEthernet1/0
O E2    10.0.3.0 [110/20] via 100.0.1.1, 00:05:41, GigabitEthernet1/0
O E2    10.0.1.0 [110/20] via 100.0.1.1, 00:05:41, GigabitEthernet1/0
O E2    10.0.4.0 [110/20] via 100.0.1.1, 00:05:41, GigabitEthernet1/0
O E2    10.0.5.0 [110/20] via 100.0.1.1, 00:05:41, GigabitEthernet1/0
R2#

R2は、OSPFのABR(area 0 と area 1)
R1がeigrpからredistributeしたOSPF外部経路を学習している。



R3#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C       100.0.2.33/32 is directly connected, Loopback0
O IA    100.0.1.0/30 [110/2] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
C       100.0.2.0/30 is directly connected, GigabitEthernet2/0
O       100.0.2.22/32 [110/2] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
     20.0.0.0/24 is subnetted, 1 subnets
O E2    20.0.1.0 [110/20] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
     10.0.0.0/24 is subnetted, 5 subnets
O E2    10.0.2.0 [110/20] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
O E2    10.0.3.0 [110/20] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
O E2    10.0.1.0 [110/20] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
O E2    10.0.4.0 [110/20] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
O E2    10.0.5.0 [110/20] via 100.0.2.1, 00:05:19, GigabitEthernet2/0
R3#


R3は、OSPFのarea 0にのみ所属している。
area 1から、100.0.1.0/30 を学習している。
R1のredistributeした経路も、E2として学習している。


R4#
R4#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     4.0.0.0/32 is subnetted, 1 subnets
C       4.4.4.4 is directly connected, Loopback0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/24 is subnetted, 5 subnets
S       10.0.2.0 is directly connected, Loopback0
S       10.0.3.0 is directly connected, Loopback0
S       10.0.1.0 is directly connected, Loopback0
S       10.0.4.0 is directly connected, Loopback0
S       10.0.5.0 is directly connected, Loopback0
R4#



R4はEIGRPのルータ。

router eigrp 1
 redistribute static metric 100000 100 255 1 1500
 network 20.0.1.0 0.0.0.255
 auto-summary
!
ip route 10.0.1.0 255.255.255.0 Loopback0
ip route 10.0.2.0 255.255.255.0 Loopback0
ip route 10.0.3.0 255.255.255.0 Loopback0
ip route 10.0.4.0 255.255.255.0 Loopback0
ip route 10.0.5.0 255.255.255.0 Loopback0


static routeをredistributeして、R1が学習している。



この、EIGRPから来ている5本の経路が、まず集約できそうだ。


今回考えるケースでは、EIGRPルータの管理は他社が実施していて、
自分で設定変更できるのはOSPFルータだけだとする。

まず、EIGRPから来ている経路を集約する。


R1で

router ospf 1
 log-adjacency-changes
 summary-address 10.0.0.0 255.255.248.0
 redistribute eigrp 1 subnets
 network 100.0.1.0 0.0.0.3 area 1
!
!

10.0.0.0 ~ 10.0.7.255 までを集約した。
(この集約方法でよいかは改めて考える)


集約後の各ルータのルーティングテーブル


R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     100.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O IA    100.0.2.33/32 [110/3] via 100.0.1.2, 00:27:58, GigabitEthernet1/0
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
O IA    100.0.2.0/30 [110/2] via 100.0.1.2, 00:51:07, GigabitEthernet1/0
O IA    100.0.2.22/32 [110/2] via 100.0.1.2, 00:20:50, GigabitEthernet1/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
D EX    10.0.2.0/24 [170/51456] via 20.0.1.1, 00:36:47, GigabitEthernet2/0
D EX    10.0.3.0/24 [170/51456] via 20.0.1.1, 00:36:47, GigabitEthernet2/0
O       10.0.0.0/21 is a summary, 00:02:01, Null0
D EX    10.0.1.0/24 [170/51456] via 20.0.1.1, 00:36:47, GigabitEthernet2/0
D EX    10.0.4.0/24 [170/51456] via 20.0.1.1, 00:36:20, GigabitEthernet2/0
D EX    10.0.5.0/24 [170/51456] via 20.0.1.1, 00:36:16, GigabitEthernet2/0
R1#


R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O       100.0.2.33/32 [110/2] via 100.0.2.2, 00:21:03, GigabitEthernet2/0
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
C       100.0.2.0/30 is directly connected, GigabitEthernet2/0
C       100.0.2.22/32 is directly connected, Loopback0
     20.0.0.0/24 is subnetted, 1 subnets
O E2    20.0.1.0 [110/20] via 100.0.1.1, 00:21:03, GigabitEthernet1/0
     10.0.0.0/21 is subnetted, 1 subnets
O E2    10.0.0.0 [110/20] via 100.0.1.1, 00:02:14, GigabitEthernet1/0
R2#



R3#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C       100.0.2.33/32 is directly connected, Loopback0
O IA    100.0.1.0/30 [110/2] via 100.0.2.1, 00:21:11, GigabitEthernet2/0
C       100.0.2.0/30 is directly connected, GigabitEthernet2/0
O       100.0.2.22/32 [110/2] via 100.0.2.1, 00:21:11, GigabitEthernet2/0
     20.0.0.0/24 is subnetted, 1 subnets
O E2    20.0.1.0 [110/20] via 100.0.2.1, 00:21:11, GigabitEthernet2/0
     10.0.0.0/21 is subnetted, 1 subnets
O E2    10.0.0.0 [110/20] via 100.0.2.1, 00:02:25, GigabitEthernet2/0
R3#



R4は変化がないので省略




次に、area 0からarea 1に来ている3つの経路を集約する。

O IA    100.0.2.33/32 [110/3] via 100.0.1.2, 00:09:07, GigabitEthernet1/0
O IA    100.0.2.0/30 [110/2] via 100.0.1.2, 00:32:16, GigabitEthernet1/0
O IA    100.0.2.22/32 [110/2] via 100.0.1.2, 00:01:59, GigabitEthernet1/0

この集約はR2でおこなう。


router ospf 1
 log-adjacency-changes
 area 0 range 100.0.2.0 255.255.255.192
 network 100.0.1.0 0.0.0.3 area 1
 network 100.0.2.0 0.0.0.3 area 0
 network 100.0.2.22 0.0.0.0 area 0




R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
O IA    100.0.2.0/26 [110/2] via 100.0.1.2, 00:00:33, GigabitEthernet1/0
     20.0.0.0/24 is subnetted, 1 subnets
C       20.0.1.0 is directly connected, GigabitEthernet2/0
     10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
D EX    10.0.2.0/24 [170/51456] via 20.0.1.1, 00:42:54, GigabitEthernet2/0
D EX    10.0.3.0/24 [170/51456] via 20.0.1.1, 00:42:54, GigabitEthernet2/0
O       10.0.0.0/21 is a summary, 00:08:09, Null0
D EX    10.0.1.0/24 [170/51456] via 20.0.1.1, 00:42:54, GigabitEthernet2/0
D EX    10.0.4.0/24 [170/51456] via 20.0.1.1, 00:42:27, GigabitEthernet2/0
D EX    10.0.5.0/24 [170/51456] via 20.0.1.1, 00:42:23, GigabitEthernet2/0
R1#



R1#ping 100.0.2.22

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.0.2.22, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/29/48 ms
R1#ping 100.0.2.33

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.0.2.33, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/80/140 ms
R1#
R1#
R1#ping 100.0.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.0.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/87/124 ms
R1#ping 100.0.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.0.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/52/124 ms
R1#



R2のルーティングテーブルに、Null0あての集約経路が登録される。

R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     100.0.0.0/8 is variably subnetted, 5 subnets, 3 masks
O       100.0.2.33/32 [110/2] via 100.0.2.2, 00:01:04, GigabitEthernet2/0
C       100.0.1.0/30 is directly connected, GigabitEthernet1/0
C       100.0.2.0/30 is directly connected, GigabitEthernet2/0
O       100.0.2.0/26 is a summary, 00:01:04, Null0
C       100.0.2.22/32 is directly connected, Loopback0
     20.0.0.0/24 is subnetted, 1 subnets
O E2    20.0.1.0 [110/20] via 100.0.1.1, 00:01:04, GigabitEthernet1/0
     10.0.0.0/21 is subnetted, 1 subnets
O E2    10.0.0.0 [110/20] via 100.0.1.1, 00:01:04, GigabitEthernet1/0
R2#


R3, R4は変化なし