keima's caprice diary

気付いたことをメモのように綴ります。なるべく義務っぽくならないように気まぐれに記録します。

teraterm.ini で何も考えずにとりあえず編集する箇所

掲題の通り。Webブラウザの「お気に入りインポート」のように自分の趣向にマッチした環境設定を準備するようなもの。

 

# アプリケーション起動時のTeraterm表示位置をデスクトップの左上に固定

VTPos=3,25

 

# アプシケーション終了時のTeraterm表示位置を記憶しない(常にVTPosの値にする)SaveVTWinPos=off
SaveVTPosWinPos=off

 

# 切断(アプリケーション終了)時に確認ダイアログを表示しない

ConfirmDisconnect=off

 

 

how to convert cisco access point from mobility express mode to capwap mode in case of using cisco dna center

トラウマになりかけた経験をここにメモする。

どうやらファームウェアのバージョン等も関係していそう。

 

CiscoのAccessPoint(以下AP)にMobilityExpress(以下ME)のファームウェアをインポートしてMobilityExpress-modeとして使用した後に、集中管理型であるcapwap-modeに変更したいことがある。

コミュニティサイトによればAP上でコマンドを実行すれば切り替わるらしいけど、DNA Center(以下DNA)のPlug and Playを使用する場合は、これだけで安心すると少し困ることになる。というのも、この状態だとファームウェアはMEなので、DNAがAPを適切に認識してくれない。結果としてAPはWLCにjoinすることができない。

解決策としては、APがDNAを介さずに直接WLCにjoinし、その後APのコンフィグクリアを実行すればOK。WLCにjoinした時点でWLCがAPのファームウェアを上書きしてくれるのでDNAがAPを認識可能になる。

とこの文面だとMEのファームウェアがDNA認識不良の原因のように見えるけど、自身が検証した結果から推測したに過ぎない点に注意。Ciscoから見解をもらったりしたわけではない。

また、上記コミュニティサイトの手順でcapwap-modeに変更後、"capwap ap erase all"を実行したらPoEネゴシエートに失敗するようになった。この場合、"AP起動時modeボタン10秒プッシュ"方式によるリセットを実施し、更にcapwap-modeに変更した後にWlc-Join-WithoutDna(WJWDと勝手に命名)を実施することになる。

また、MEが入ってないAPでもPoEに失敗する事象を確認したけどそれはまだ原因不明。

 

Perl で Ping 監視

第1引数のIPアドレスPingを5回実行して全てNGだったらSlackにPostし、さらに任意の宛先にメールを送信するPerlスクリプト
メールは日本語に対応。ちなみに、Ping実行時にRTTを取得といてMRTGでグラフ化して満足する。
状況に応じて監視対象除外を設定することも可能。

Ping監視対象IPを記述したファイル:/etc/mrtg/all-address.csv(カンマ区切りで IP,名称\n(改行) という形式で対象IPの数だけ複数行に渡って記述)
Ping監視除外IPを記述したファイル:/etc/mrtg/exception-address.csv(上記と同じ形式)

スクリプトファイル名:PingPostslackSendmailg.pl

#!/usr/bin/perl
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use utf8;
use Digest::MD5;
use Authen::SASL;
use Net::SMTP;
use MIME::Base64;

my $target_ip=$ARGV[0];
my $resultofping=`ping -c 5 $target_ip | grep rtt`;
my @tmp = ();
my @except = ();
my $tmp = '';
my $flag = 0;

open (IN, '/etc/mrtg/exception-address.csv') or die "$!";
while(){
  @tmp = split(/,/, $_);
  push(@except, $tmp[0]);
}
close IN;
# print "@except\n"; # for viewing
foreach $tmp (@except) {
  if( $target_ip eq $tmp ){
    $flag = 1;
  }else{
    next;
  }
}

open (IN, '/etc/mrtg/all-address.csv') or die "$!";
@tmp = ();
my $tagetname = undef;
while(){
  @tmp = split(/,/, $_);
  if ( $tmp[0] eq $target_ip ){
    $targetname = $tmp[1];
    last;
  }
}
close IN;

unless ( $flag == 1 ) {
  unless ( $resultofping =~ /rtt/ ) {
    ###### SLACK-POST
    my $url = 'https://slack.com/api/chat.postMessage';
    my %postdata = (
         'token' => 'スラックのトークンを記述',
         'text' => "\!\! Ping Unreachable \!\! Destination host : " . "$targetname" . '(' . "$target_ip" . ').',
         'username' => 'hoge',
         'channel' => 'スラックのチャンネルIDを記述',
         );
    my $request = POST( $url, \%postdata );
    my $ua = LWP::UserAgent->new;
    my $res = $ua->request($request)->as_string;
    ###### MAIL
    my $header = "From: hogehoge\@domain";
    $header .= "\nTo: fugafugat\@domain";
    $header .= "\nSubject: 件名を記述";
    $header .= "\nMIME-Version: 1.0";
    $header .= "\nContent-Type: text/plain; charset=UTF-8";
    $header .= "\nContent-Transfer-Encoding: 7bit\n";
    my $smtp = Net::SMTP->new('SMTPサーバのFQDNを記述', Port => SMTPサーバのポート番を記述号);
    $smtp->auth('SMTP認証用メールアドレスを記述', 'SMTP認証パスワードを記述');
    $smtp->to('宛先メールアドレスを記述'); # real destination
    $smtp->data();
    $smtp->datasend($header);
    $smtp->datasend("\n");
    my $body = '!! Ping Unreachable !!' . "\n\nDestination host : $targetname" . '('  . "$target_ip"  . ')' ";
    $smtp->datasend("$body");
    $smtp->quit;
  }
}
my $sp = " ";
my $slash = "/";
my @array = split(/$sp/,$resultofping);
my @array2 = split(/$slash/,$array[3]);
print $array2[1] *1000 . "\n"; # avg
print $array2[2] *1000 . "\n"; # max
my $uptime=`uptime`;
my @array3 = split(/$sp/,$uptime);
$array3[5] =~ s/,//;
print "$array3[3] . $array3[4] . $sp . $array3[5] . \n";
print "ICMP_RTT_of_$target_ip\n";

Cisco WLC 同一コミュニティ名で複数のSNMP Trap Receiverを設定

WLCでは同一コミュニティ名で複数のトラップレシーバを設定できないらしい。


https://bit.ly/2OYecbS

Windowsの無線接続をコマプロで実行してみた

検証など頻繁に「無線接続→無線切断」の繰り返しを実行する必要があり、スピードアップのためにコマプロで実行してみた。表示系コマンドは適宜リダイレクトするなどでログ保存するといい。

 

■無線プロファイルの表示
netsh wlan show plofile

 

■無線プロファイルのエクスポート
netsh wlan export profile name="[プロファイル名]" folder=[任意のパス("D:\"など)]

 

■無線接続
netsh wlan connect name="[プロファイル名]" interface="[NIC名("Wi-Fi 3"など)]"

 

■無線切断
netsh wlan disconnect interface="[NIC名("Wi-Fi 3"など)]"

 

無線接続の際に"name"オプションで指定するべきプロファイル名はSSID名と同じ(ケースが殆ど)。

LinuxでPPPoEサーバ

l検証などで手軽にPPPoEサーバを準備したい場合、いつもはCiscoルータのISR892Jとかで代用するんだけど、ルータだとかさばるし仮想マシンLinux準備してそれで代用できないかなと思ったのが発端。

 

■パッケージインストール

rpm -ihv /mnt/cdrom/RedHat/RPMS/ppp-2.4.1-10.i386.rpm

rpm -ihv /mnt/cdrom/RedHat/RPMS/rp-pppoe-3.5-2.i386.rpm

 

■/etc/ppp/pppoe-server-options編集
---
require-pap # PAP認証実施
#login # UNIX認証無効化
lcp-echo-interval 10
lcp-echo-failure 2
---

 

■/etc/ppp/pap-secrets編集
---
# ユーザ名:hoge
# 認証SV名:any
# パスワード:pass
# 割当IP:10.0.0.1
"hoge" * "pass" 10.0.0.1
---

 

■PPPoEサーバ実行 

pppoe-server -I eth0 -L 10.0.0.1

-I: 使用するインターフェースの指定。
-L: PPPoEサーバのIPアドレスの設定。指定しなければ10.0.0.1 。

 

以上。わりとアッサリしていた。