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

2011年11月9日水曜日

重複組み合わせの全組み合わせを表示

重複組み合わせの全組み合わせを表示するプログラムです。
今回種類が3なのでループも3重になります。
種類の数でループの深さが決まります。

#include

#define KYOTEN 3
#define NUMBER 5

//3H5=7C5=21通り

int fact(int);

void main() {
int k1, k2, k3, i = 1;

printf("今回はK=%d, N=%dで%dH%d=%dC%dとなり%d通りあります\n", KYOTEN, NUMBER, KYOTEN, NUMBER, KYOTEN+NUMBER-1,NUMBER, fact(KYOTEN+NUMBER-1)/(fact(NUMBER)*fact(KYOTEN-1)));

for(k1 = 0; k1 <= NUMBER; k1++) {
for(k2 = 0; k1+k2 <= NUMBER; k2++) {
for(k3 = 0; k1+k2+k3 <= NUMBER; k3++) {
if(k1+k2+k3 == NUMBER)
printf("%d番目 %d %d %d\n",i++, k1, k2, k3);
}
}
}
}

//階乗関数
int fact(int num){
int i;
if(num == 1){
return 1;
} else {
i = num * fact(num - 1);
return i;
}
}

2011年8月18日木曜日

Javaで姫野ベンチを動かす(Javaからの呼び出し)Windows版

Javaから姫野ベンチを呼び出し実行し表示させるメモです。

1. 姫野ベンチをダウンロード設置
http://accc.riken.jp/HPC/HimenoBMT/download1.html
から実行形式のhimenoBMTxp_s.exeをダウンロードして解凍します。
D:¥himeno¥himenoBMTxp_s.exe
と設置しました。

2.Eclipseでプロジェクト、クラス(Himeno)を作成し、次のコードを入力します。


public class Himemo {
public static void main(String[] args) throws
InterruptedException,
IOException {
ProcessBuilder pb = new ProcessBuilder("D:\\himeno
\\himenoBMTxp_s.exe");
Process p = pb.start();

BufferedReader br = new BufferedReader(new
InputStreamReader(p.getInputStream()));
Catcher c = new Catcher(br);

c.start();

p.waitFor();
p.destroy();


System.out.println(c.out.toString());
}

}

class Catcher extends Thre
ad {
Reader in;
StringWriter out = new
StringWriter();
public Catcher(Reader in) {
this.in = in;

}

public void run() {

int c;
try {
while ((c = in.read()) != -1) {

out.write((char)c);
}
} catch (IOException e) {
e.printStackTrace();

}

}


}

姫野ベンチの結果が出力されまし
た。


つまり、下記の流れでDBに姫野ベンチの結果をアップロードします。
1.姫野ベンチ設置
2.Javaより姫野ベンチを実行し結果を出力(出力はバッファ、またはテキストなど)
3.出力された結果からMFLOPSの結果だけ取り出し、DBにアップロード(http://sdc.sangi.jp/2011/08/mysqljava.html)
4.Eclipseよりjarファイルで出力
5.Winodwsのタスクスケジューラにjarファイル実行を登録

これで定期的にDBにアップロードされればOKです。

2011年8月17日水曜日

MySQLに接続(Java編)

MySQLにJavaから接続します。
C言語より、非常に簡単です。
Eclipseを使ってやります。

1.MySQL Connector/J をダウンロード
http://dev.mysql.com/downloads/connector/j/5.0.html
適当なところへ配置

2.Eclipseでプロジェクト作成後、
プロジェクトを右クリック->ビルド・パス->ビルド・パスの構成->ライブラリ->外部Jarの追加
から先ほど設置した
mysql-connector-java-5.0.8-bin を指定

3.クラスを作成し、次のコードを入力

import java.sql.*;

public class MySQL {
public static void main(String[] args) {
String msg = "";
try {
// ドライバロード
Class.forName("org.gjt.mm.mysql.Driver");

// MySQLに接続
Connection con = DriverManager.getConnection("jdbc:mysql://ホスト名/DB名", "id", "pass");

// ステートメント生成
Statement stmt = con.createStatement();

// SQLを実行
String sqlStr = "SELECT * FROM servers";
ResultSet rs = stmt.executeQuery(sqlStr);

// 結果行をループ
while(rs.next()){
// レコードの値
int id = rs.getInt("id");
String name = rs.getString("name");

//表示
System.out.println(id + ":" + name);
}

// 接続を閉じる
rs.close();
stmt.close();
con.close();
}catch (ClassNotFoundException e){
msg = "ドライバのロードに失敗しました";
System.out.println(msg);
}catch (Exception e){
msg = "ドライバのロードに失敗しました";
System.out.println(msg);
}
}
}

2011年8月15日月曜日

Zabbixインストール(再確認)


Zabbixのインストールの再確認メモです。
CentOS5に対しバージョン1.8をインストールします。

1.yumリポジトリ登録用RPMのインストール方法
# rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/i386/zabbix-jp-release-5-3.noarch.rpm

2.使用するZABBIXのバージョンの切替方法
(確認)
# alternatives --display zabbix-jp-release

(変更)
[root@rad-xen-vweb10 ~]# alternatives --config zabbix-jp-release

4 プログラムがあり 'zabbix-jp-release' を提供します。

選択 コマンド
-----------------------------------------------
1 /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo
2 /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo
*+ 3 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo
4 /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:4

変更されたか確認
[root@rad-xen-vweb10 ~]# alternatives --display zabbix-jp-release
zabbix-jp-release - ステータスは手動です。
リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo を指しています。
/usr/share/zabbix-jp-release/zabbix-jp-1.1.repo - 優先項目 10
/usr/share/zabbix-jp-release/zabbix-jp-1.4.repo - 優先項目 20
/usr/share/zabbix-jp-release/zabbix-jp-1.6.repo - 優先項目 40
/usr/share/zabbix-jp-release/zabbix-jp-1.8.repo - 優先項目 30

(キャッシュを削除)
# yum clean all

3.インストール
# yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql

4. MySQLデータベースサーバの設定
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

default-character-set=utf8
skip-character-set-client-handshake

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

赤字の部分を追加(場所も同じように)。サーバを起動。

5.MySQLユーザ:zabbix, DB:zabbixを作成
今回はphpMyAdminで作成しました。

6.初期DBをインポート
[root@rad-xen-vweb10 ~]# mysql -u zabbix zabbix -p < /usr/share/doc/zabbix-server-1.8.5/schema/mysql.sql
Enter password:
[root@rad-xen-vweb10 ~]# mysql -u zabbix zabbix -p < /usr/share/doc/zabbix-server-1.8.5/data/data.sql
Enter password:
[root@rad-xen-vweb10 ~]# mysql -u zabbix zabbix -p < /usr/share/doc/zabbix-server-1.8.5/data/images_mysql.sql
Enter password:

7.Webインターフェースの設定
Webサーバを起動後、一旦設定ファイルを削除します。
# rm /etc/zabbix/zabbix.conf.php

アクセスします。
http://zbx.xxxx.xx/zabbix/
後はナビに従って入力していきます。
終了するとログイン画面がでてきます。
デフォルトでは
ID admin
PASS zabbix
でログインできます。

8.ZABBIXサーバの設定
# vi /etc/zabbix/zabbix_server.conf

DBName=zabbix

### Option: DBSchema
# Schema name. Used for IBM DB2.
#
# Mandatory: no
# Default:
# DBSchema=

### Option: DBUser
# Database user. Ignored for SQLite.
#
# Mandatory: no
# Default:
# DBUser=

DBUser=zabbix
DBPassword=XXXXXXX

赤字の部分を確認、変更します。
# service zabbix-server start
# chkconfig zabbix-server on

9.エージェントの設定
http://sdc.sangi.jp/2011/03/zabbix-agent.html を参考

10.エージェントの登録
メニューから[設定] → [ホスト]をクリックし、右上のプルダウンメニューより[ホスト]が選択されていることを確認し、[ホストの作成]をクリックします。

ホストの表示名を記入します。
zabbix_agentd.confでHostnameに設定した名称を記入してください。
後の項目も設定します。

以上で設定終了です。

2011年8月10日水曜日

NetperfのWindowsサーバ設定


netperfをWindowsサーバに設定するときの設定メモ

1.Netperfの必要なアプリケーションをダウンロード
ftp://ftp.cup.hp.com/dist/networking/benchmarks/netperf/binaries/2.1pl1/win32/x86/
より
・netperf-2.1pl1.exe
・netserver-2.1pl1.exe
をダウンロードし、Cドライブ直下に設定

2.firewall解放
http://sdc.sangi.jp/2011/07/windows2008-ping.html
を参考にプロトコルをTCP指定し、ポート12865を解放

3.タスクスケジューラの設定
管理ツール->タスクスケジューラ を起動
操作->タスクの作成 をクリック
名前->netserver



「全般」のタブで「ユーザがログオンしているかかかわらず実行する」にチェック



「トリガ」タブで新規をクリック
図のように設定
毎時55分、毎時1回起動し無期限に繰り返すタスクを設定する



「操作」タブで「C:\netserver-2.1pl1.exe」を書き込む


これでタスクの設定は終了です。

4.確認
他のサーバ(Linuxでも)から、タスクが起動後
netperf -H XXX.XXX.XXX.XXX
で値が取れるか確認してください。

2011/08/20追記
administratorならば問題ないようですが、ユーザによっては下記のように「最上位の特権で実行する」にチェックしないとうまくいきませんでした(タスクが起動したままにならず、終了してしまう)

2011年8月3日水曜日

netperfがうまくいかないときの対処法

netperfがうまくいかないときの対処法のメモ

[root@sub0000493540 ~]# netserver
Starting netserver at port 12865
Starting netserver at hostname 0.0.0.0 port 12865 and family AF_UNSPEC

と出ていれば、うまくいくようですが、

[root@sub0000493540 ~]# netserver
Starting netserver at port 12865
set_up_server could not establish a listen endpoint for port 12865 with family AF_UNSPEC

となるとうまくいかないようです(2回実行してしまうなど)。

そのときは、netserverを止めますがコマンドがないのでkillします。

1.PIDを確認
# ps alx

F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
1 0 13649 1 18 0 2012 296 389979 Ss ? 0:00 netserver

上記では、13649がPIDです。

2.プロセスを削除
# kill 13649(PID番号)

3.再度netserver 起動
[root@sub0000493540 ~]# netserver
Starting netserver at port 12865
Starting netserver at hostname 0.0.0.0 port 12865 and family AF_UNSPEC

これでうまく接続できると思います。

2011年8月2日火曜日

Windowsのサーバ情報取得

Windowsのサーバ情報取得メモ

コマンドプロンプトで次を発行します。
> systeminfo

ホスト名: 001-AG                    ##hostnameに記述
OS 名: Microsoft® Windows Server® 2008 Enterprise ##os_nameに記述
OS バージョン: 6.0.6002 Service Pack 2 ビルド 6002 ##releaseに記述
OS 製造元: Microsoft Corporation
OS 構成: スタンドアロン サーバー
OS ビルドの種類: Multiprocessor Free
登録されている所有者: Windows ユーザー
登録されている組織:
プロダクト ID: XXXX-XXXX-XXX-XXX
最初のインストール日付: 2010/05/10, 14:58:25
システム起動時間: 2011/07/24, 12:24:42
システム製造元: Microsoft Corporation
システム モデル: Virtual Machine
システムの種類: x64-based PC ##machine_type,hardware_platform両方に記述
プロセッサ: 1 プロセッサインストール済みです。    ##cpu_coresに記述
[01]: Intel64 Family 6 Model 23 Stepping 10   ##cpu_nameに記述
Intel ~2666 Mhz
BIOS バージョン: American Megatrends Inc. 080002 , 2008/05/05 
Windows ディレクトリ: C:\Windows
システム ディレクトリ: C:\Windows\system32
起動デバイス: \Device\HarddiskVolume1
システム ロケール: ja;日本語
入力ロケール: ja;日本語
タイム ゾーン: (GMT+09:00) 大阪、札幌、東京
物理メモリの合計: 2,047 MB         ##memtotal 2,047,000で入力
利用できる物理メモリ: 535 MB
ページ ファイル: 最大サイズ: 4,331 MB
ページ ファイル: 利用可能: 2,684 MB

kernelにはWindowsと入力
cpu_MHZは入力しません

2011年7月30日土曜日

JavaからGoogleカレンダー登録

JavaからGoogleカレンダー登録のメモ

1. http://code.google.com/apis/gdata/client-java.html から Download the Java client library.」をクリックして「gdata-src.java-1.45.0.zip」を取得。解凍し適当なところへ保存。

2.http://code.google.com/p/google-collections/downloads/list より「google-collect-1.0.zip」をダウンロード。。解凍し適当なところへ保存。

3.Eclipseを起動し
プロジェクト名:GoogleCal(なんでもOK)
プロジェクトを右クリック⇒ビルド・パス⇒外部アーカイブの追加から
[1.より]
・gdata-calendar-2.0.jar
・gdata-core-1.0.jar
・gdata-client-1.0.jar
[2.より]
・google-collect-1.0.jar
を追加

新規クラスを作成「GoogleCalMain.java」を作成

############以下ソース##################

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import com.google.gdata.client.Query;
import com.google.gdata.client.calendar.CalendarService;
import com.google.gdata.data.DateTime;
import com.google.gdata.data.Entry;
import com.google.gdata.data.Feed;
import com.google.gdata.data.Person;
import com.google.gdata.data.PlainTextConstruct;
import com.google.gdata.data.calendar.CalendarEventEntry;
import com.google.gdata.data.extensions.EventEntry;
import com.google.gdata.data.extensions.When;
import com.google.gdata.data.extensions.Where;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;

/**
*
* GoogleCalendar APIで実行
* @version 1.0.0
*/
public class GoogleCalMain {

// Google アカウント
private static String GOOGLE_ACCOUNT = "sangi.XXXXX.X@gmail.com";
// Google アカウントのパスワード
private static String GOOGLE_PASSWORD = "XXXXX.XX";
// 送信URL
private static String GOOGLE_CAL_URL = "http://www.google.com/calendar/feeds/default/private/full";

/**
* Google カレンダーAPIを使用して、登録と参照
* @param args
*/
public static void main(String[] args) {

GoogleCalMain main = new GoogleCalMain();
main.googleCalAddAndRef();

}

/**
* Google カレンダーAPIを使用して、
* 登録と登録したデータの参照を行います。
  *ここを変更し、カレンダに書き込む内容を指定します。
*/
private void googleCalAddAndRef() {

String title = "javaからの登録";

String place = "静岡";

String memo = "テスト";

try {
URL postURL = new URL(GOOGLE_CAL_URL);

// イベント登録クラス
CalendarEventEntry myEntry = new CalendarEventEntry();
// スケジュールのタイトル
myEntry.setTitle(new PlainTextConstruct(title));
// スケジュールの詳細
myEntry.setContent(new PlainTextConstruct(memo));
// 作成アプリ名
Person author = new Person("Mashup Sample Test", null, GOOGLE_ACCOUNT);

myEntry.getAuthors().add(author);

DateTime startTime = new DateTime();
startTime.setTzShift(9);
startTime = DateTime.parseDateTime("2011-07-30T08:00:00");//スケジュール開始を指定

DateTime endTime = new DateTime();
endTime.setTzShift(9);
endTime = DateTime.parseDateTime("2011-07-30T17:00:00");//スケジュール終了を指定

// 開始終了日時をWhen型オブジェクトに代入し、イベントクラスに追加
When eventTimes = new When();
eventTimes.setStartTime(startTime);
eventTimes.setEndTime(endTime);
myEntry.addTime(eventTimes);

// 場所をWhere型オブジェクトに代入し、イベントクラスに追加
Where evLocation = new Where();
evLocation.setValueString(place);
myEntry.addLocation(evLocation);

// Google Calendarサービスに接続
CalendarService calService = new CalendarService("Sangi_Ricoh");//これは何?
calService.setUserCredentials(GOOGLE_ACCOUNT, GOOGLE_PASSWORD);

// スケジュールを追加する
CalendarEventEntry insertEntry = calService.insert(postURL, myEntry);

// 特定のスケジュールを操作するリクエストを取得
URL entryUrl = new URL(insertEntry.getSelfLink().getHref());
EventEntry retrievedEntry = calService.getEntry(entryUrl, EventEntry.class);

// 特定のスケジュールを探す
Query myQuery = new Query(postURL);
myQuery.setFullTextQuery(title);
Feed myResultsFeed = calService.query(myQuery, Feed.class);
if (myResultsFeed.getEntries().size() >= 0) {
Entry firstMatchEntry = myResultsFeed.getEntries().get(0);
System.out.println("Titie: " + firstMatchEntry.getTitle().getPlainText());
}

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (AuthenticationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
}
}


カレンダをみるとスケジュールが追加されています。

参考:
http://d.hatena.ne.jp/jawssame7/20091009/1255064509
http://simultechnology.blendmix.jp/blog/archives/495

2011年7月26日火曜日

Ricoh開発環境準備

Ricoh環境の設定手順です。

1.Dropbox中のeclipseをデスクトップに解凍、Eclipseを起動
2.ファイル->インポート->一般->既存プロジェクトをワークスペースへ
3.%Dropbox\Ricoh\2011年度新規追加\2010年度講習会使用資料\ソースコード\配布用ソースコード\GUI - 6.Full Version を選択
*「プロジェクトをワークスペースへコピー」にチェック


4.manifest.xml ⇒ 333333333.xml に名前を変更
5.ファイル->エクスポート->Java->JARファイル-> 図のようにチェックして出力

出力先は「参照」ボタンを押して
C:\Embedded_Software_Architecture_Emulator_4.13d\cdc-dsdk4\mnt\sd2\sdk\dsdk\dist
を開き
「333333333」という名前の新規フォルダを作成
※「333333333」はマニフェストファイルと同様の名前


「333333333」を開き、
ファイル名に「ScreenSample.jar」を記入し、保存


元の画面に戻り、次へをクリック

6.マニフェストファイルを指定
7.出力した「333333333」にFramework_V2.0.3.jarとScreenSample.dalpをいれておく
dalpはアプリ名と同じ




8.ScreenSample.dalpを編集
[id変更]


[パス確認]



これでOK。あとはエミュレータで取り込んで出力できればいいです。

2011年7月22日金曜日

CCNA,CCENT対策

CCNAシミュレーション対策

・VLAN
VLAN間ルーティング+VTP
スイッチの設定をしっかりやっておく(ルータは設定済み)
CCNA3 9.3.6に実習
1.アドレスデザイン
2.VLAN設定(スイッチ2個)
3.VTP設定

・NATまたはPAT
CCNA4 1.1.4aなど

・DHCP
CCNA4 1.2.6


CCENT対策
・スイッチ
ポートセキュリティ
ALSwitch(config-if)#switchport mode access
ALSwitch(config-if)#switchport port-security
ALSwitch(config-if)#switchport port-security mac-address sticky

・showコマンド
# show cdp neighbors
local interfaceが自分のルータと考える
# show cdp neighbors detail
# show interfaces
違いがわかるようにしておく

・フレームリレー
DLCIの意味

・ケーブルの種類
長さとコスト

・アクセスリスト基本を確認
・無線LAN

2011年7月20日水曜日

iPad2セットアップ

1.iPadとPCを接続(PCにはitunesがインストール済み)
Apple IDは後で作成(ここではつくらない)

2.Wifi設定(学内ネットワーク)

3.メール設定
sangi_XXX@sangi.jpで設定

4.Apple ID作成
Apple Storeにアクセスし、新規アカウント作成
ただしクレジットカードを入力しなくて良いように、無料のアプリを選択してから新規IDを作成

メール:sangi_XXX@sangi.jp
パス:SXXXXXXXXXXXXXXX
質問:静岡県静岡市XXX
答え:XXXX
生年月日
月:X
日:X
年:19XX

姓:静岡産業技術専門学校
名:XXX

登録が終わるとメールが来ます。「今すぐ確認」をクリック、ログインします。

5.Dropboxのインストール
メールのアカウントでログインします。

ひとまずここまでです。

2011年7月9日土曜日

Windows2008 ping許可

Windows2008がデフォルトでping不許可だったので、許可をします。

(1)管理ツール->ファイアウォールを選択


(2)受信規則->新規の規則



カスタム選択


そのまま


ICMPv4選択


そのまま


そのまま


そのまま


ICMPv4とつける


pingを実行し、許可になっているか確認

参考:http://www.server-world.info/query?os=Windows_Server_2008&p=first_conf&f=7

AmazonEC2などの海外OSを日本語化(Windows)

AmazonEC2などの海外OSを日本語化(Windows)するときの基本設定

(1)コントロールパネルから、図のアイコンを選択














(2)図のように変更




(3)再ログイン


(4)日本語になりました。

2011年6月24日金曜日

監視基本方針

サーバ監視についてのメモ

監視サーバ⇔クライアント(N台)

方法1.SNMP(エージェント無)での監視
死活監視のみ

方法2.SNMP(エージェント有)での監視
CPU使用率
空きメモリ
回線使用率
・・・
など様々な方面から監視可能

方法3.syslogでの監視
既存情報から不正アクセス等を検出
山中涼輔,水野信也,HMMを用いたサーバセキュリティ,日本経営工学会2009秋季大会予稿集,PP.98-99

1,2はサーバに対する負荷評価済み
3は研究段階
どの方法においてもユーザに対して同意を得てから行う

大学でこれを行うことの意義は
・稼働率、可用性を高める
・外部からの不正アクセス、外部への影響を与える動き
を妨げるのはもちろんのこと
・ユーザの利用状況を把握し、時期の基盤更新や研究データとして利用する
ことがあります。

参考
http://www.atmarkit.co.jp/fnetwork/tokusyuu/monitoring01/01.html
http://www.itmedia.co.jp/enterprise/articles/0705/31/news042.html
http://software.fujitsu.com/jp/manual/manualfiles/M080091/J2X13110/06Z200/inst05/inst0164.html

2011年6月22日水曜日

iozone yum インストール

iozoneをyumでインストールします。

yum --enablerepo=rpmforge install iozone

これでインストールが完了。次に実行します。

iozone -i 0 -i 1 -i 2 -r 128 -s 512m



結果
欲しい結果はread,writeの2つ
現在は1つの結果しかアップロードしてないので、2つ上げるにはちょっと変更しないといけない
ひとまずreadの値のみアップロード

参考
http://kisugon.net/
http://sourceforge.jp/magazine/08/09/05/0759223
http://www.putise.co.cc/stress-test/iozone
http://plaza.rakuten.co.jp/kugutsushi/diary/200710060001/

2011年6月13日月曜日

OpenGL 環境設定

1.glutをダウンロード
http://www.xmission.com/~nate/glut.html
より、「glut-3.7.6-bin.zip」をダウンロード、展開


2.ファイル配置
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL に glut.h をおく
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib に glut.lib をおく
C:\Windows\SysWOW64 にglut32.dll をおく
(32ビット版は\System32におく)

readmeでは

glut32.dll to %WinDir%\System,
glut32.lib to $(MSDevDir)\..\..\VC98\lib, and
glut.h to $(MSDevDir)\..\..\VC98\include\GL.
となっています。

3.サンプルプログラム実行
http://www.opengl.org/resources/code/samples/simple/
からソースをダウンロードしてteapot.cを実行してみました。




注意:stdlibのインクルード宣言をglut.hのインクルードより前に書かないとエラーが出てしまいます。

Cisco授業「アクセスリスト」

Access Control List
(ACL; アクセス コントロール リスト)
トラフィックフィルタリング

・IPアドレス
・プロトコル(ポート番号)

アクセスリストは3種類
・スタンダード(標準)ACL:IPアドレス
・エクステンデッド(拡張)ACL:IPアドレス、プロトコル(ポート番号)
・ネームド(名前付き)ACL(標準ACLや拡張ACLに名前をつけただけ)

アクセスリストは複数条件定義可能
ただし、チェックする順番があるので注意
⇒優先されることからつけていく
上から処理され、対象が見つかったら以降下は見ない

ACL の最後のステートメントは常に暗黙の拒否です。物理的には存在しなくても、このステートメントは ACL の終わりに自動的に挿入されます。暗黙の拒否は、全トラフィックをブロックします。この機能は、不要なトラフィックが不慮に入ってこないようにします。
⇒必ずpermitをいれておく

アクセスリストには
・インバウンド(入ってくるパケットの処理)
・アウトバウンド(出ていくパケットの処理)


8.3.3 標準ACL
・標準 IP ACL は、1 から 99 および 1300 から 1999 の範囲の番号を持ちます。
・標準アクセスリストは宛先の近くに設定
⇒IPアドレスで制御されるので、ブロックされる可能性が大きい(止めたいサービスだけをとめれなくなる,他方向へのルーティングもできなくなる)

設定方法
1.ACL作成
(config)# access-list 番号 [deny|permit] 送信元IP 送信元ワイルドカードマスク
(必要なだけ、優先されるものから設定)
(最後に暗黙のdenyがあるので、必ずpermitをいれる)

2.ACL設置
(config)#interface fastethernet 0/0
(config-if)#ip access-group 5(access-list number) in(またはout)


8.3.4 拡張ACL
エクステンデッド(拡張)ACL は、100 から 199 および 2000 から 2699 の範囲のアクセスリスト番号を使います。
(config)# access-list 番号 permit|deny プロトコル(tcp|udp|icmp) 送信元IP 宛先IP 一致条件


8.3.5 名前付きACL
[作成]
(config)#ip access-list {standard | extended} name(自分でつける)
(config-std-nacl)#
(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 any

[設置]
(config-if)#ip access-group name {in|out}


8.3.6 VTYアクセスの設定
[作成]
標準ACLを作成

[設置]
インターフェースに設置するわけではない。
ルータへの接続の許可、不許可⇒「in」
(config)# line vty 0 4
(config-line)#access-class 番号 in


8.3.4 NAT PAT
NAT:内部アドレス⇔外部アドレスが1:1
PAT:内部アドレス⇔外部アドレスが多:1(ポート番号を利用)

[PATの設定]
1.内部IPアドレスの定義
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255

2.PATを設定
R1(config)#ip nat inside source list 1 interface s0/0/0 overload
s0/0/0のIPアドレス+ランダムなポート番号で内部IPアドレスを変換

3.PATを設置
R1(config)#interface fastethernet 0/0
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#interface serial 0/0/0
R1(config-if)#ip nat outside

2011年6月11日土曜日

ベンチマーク用VPS基本設定

ベンチマーク用VPSの基本設定メモです。

1.SSHでリモートログイン
2.ルートパスワード変更:パスワードは指定
3.ユーザ作成:ユーザ名、パスワードは指定
4.VNCの設定:参考 http://sdc.sangi.jp/2009/08/amazon-ec2-gui.html
5.サーバの基本情報取得⇒DB登録
(i)基本情報を資料を見て登録 (nameのみでよい)
(ii)IPアドレス マスク マックアドレス確認 ifconfig (ipaddress,mask,macaddressを登録)
(iii)ディストリビューション確認 cat /etc/redhat-release (releaseを登録)
(iv)カーネル名を表示 uname -s (kernelを登録)
(v)ホスト名(ノード名)表示 uname -n (hostnameを登録)
(vi)マシンタイプを表示 uname -m (machine_typeを登録)
(vii)ハードウェアプラットフォームを表示 uname -i (hardware_platformを登録)
(viii)OS名称を表示 uname -o (os_nameを登録)
(ix)CPU情報表示 cat /proc/cpuinfo (model_name, cpu_MHz,cpu_coresを登録)
(x)メモリ情報表示 cat /proc/meminfo (memtotalを登録)



ひとまずここまで行います。
6.FTPサーバの設定:参考 「クラウドVPS入門」
7.httpdの設定 参考「クラウドVPS入門」
8.Webminの設定(ポートは指定):参考 http://sdc.sangi.jp/2010/11/webmin.html

この後ベンチマーク設置

以上です。

2011年6月1日水曜日

Cisco授業「Frame-Relay」

7.3.1 フレームリレー
(Non-Broadcast Multi-Access)

フレームリレーでは、識別のためにレイヤ 2 アドレスが必要です。
⇒DLCI
(ローカルルータとフレームリレースイッチ間の論理回路を特定)
5.2.2のように直接ルータでつながっている場合はDLCIを同じにする

設定方法
(config)#int s0
(config-if)#encapsulation frame-relay { ietf | cisco }
非Ciscoルータの場合ietfを利用

[静的にマッピングする場合]
(config-if)#frame-relay map ip 192.168.1.2(接続先) 102(自分のDLCI) ietf broadcast
show frame-relay map ⇒staticと表示

[動的にマッピングする場合]
Invers ARPを利用
show frame-relay map ⇒dynamic

LMI
DTE(ルータ)とDCE(スイッチ)間の状態確認
フレームリレーLMIタイプ
・Q933a
・Cisco
・ANSI
両方のルータで同じLMIを使う必要がある
(config-if)# frame-relay lmi-type {ansi | cisco | q933a}

Cisco授業 「PPP」

7章 WAN

7.1.1-4 回線の種類

56 56kbps
64 64kbps
T1 1.544Mbps
E1 2.048Mbps
E3 34.064Mbps
T3 44.736Mbps

7.2.2 HDLCとPPP
HDLC:ハイレベル データリンク コントロール(標準)
PPP:ポイントツーポイント プロトコル

シリアル回線のレイヤ 2 カプセル化

7.2.4 PPP認証
認証方法:PAP,CHAP
PAP:ID、パスワードが平文で流れる
chap:チャレンジコードを用いる、ID、パスワードが暗号化される

設定方法
(config)# username name password password
(config)# int s0
(config-if)# encapsulation ppp (カプセル化にPPPを指定)
(config-if)# ppp authentication {chap|pap}