2013年2月16日土曜日

Aipo7 インストール手順

0. 前提条件

 CentOS5.5 がインストールされておりネットワークの設定が終了していること。


1. 必要パッケージのインストール

 Aipo7の動作に必要な下記パッケージをインストールする。


   # yum install -y make
   # yum install -y gcc
   # yum install -y readline-devel
   # yum install -y zlib-devel
   # yum install -y nmap
   # yum install -y sudo



2. Aipo7 のインストール

 /usr/local へダウンロードしたtar.gzを置く。


   # mv aipo7020ja_linux32.tar.gz /usr/local/
   # tar -xvzf aipo7020ja_linux32.tar.gz
   # tar -xvzf aipo7020ja_linux/aipo7020.tar.gz
   # cd /usr/local/aipo/bin
   # sh installer.sh



3. Aipo7 の起動

 サーバ起動時に自動起動するように 「/etc/rc.local」へ追記してやろう。


   # echo "/usr/local/aipo/bin/startup.sh" >> /etc/rc.local



4. iptablesの設定

 Redhat系のディストリビューションはデフォルトでiptablesが有効になっている。
 適宜ポリシーにあわせて設定をしてくれ。(下記は無効にしている)


   # iptables -F



5. 確認

 サーバ再起動を実施した後に Aipo へアクセスできることを確認しよう。


   http://*.*.*.*/aipo/


CentOS5 初期設定

0. 前提条件

 CentOS5 を 最小構成(パッケージチェックをすべてはずした状態)でインストールが
 完了していること。

1. 設定用ネットワーク設定

 パッケージダウンロード用に一時的にネットワークを設定する。


   # ifconfig eth0 *.*.*.* netmask *.*.*.*
   # route add default gw *.*.*.*
   # echo "nameserver 8.8.8.8" > /etc/resolv.conf
   # yum install -y openssh-server



2. SELinuxの無効化

 プロセスやファイルにラベリングしてセキュリティゾーンの定義をするもの。
 使いこなせないのであれば不要のため、無効にする。


   # sed -i".bak" -e "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config



3. 使用しないサービスの停止

 リソースには限りがあるので、使わないサービスは停止してしまう。
 必要な際に別途起動しよう。


   # chkconfig --level 2345 ip6tables off
   # chkconfig --level 2345 mcstrans off
   # chkconfig --level 2345 restorecond off
   # chkconfig --level 2345 netfs off
   # chkconfig --level 2345 rawdevices off



4. Networkの設定

 ネットワークの設定をする。Linuxはeth0とeth1が入れ変わることもあるため、
 そこもudevを使って固定すること。
 ※複数ポートある場合ってベースメモリから割り出すらしいんだけどベースメモリと
 物理ポートの割り当てってどうやれば判るんだ?
 最終手段として実際にケーブルを接続してどのポートがLinkUPするかどうかを確認している、、

■ eth0の固定

   # lspci | grep Ether
   00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)

   # dmesg | 00:03.0
   ACPI: PCI Interrupt 0000:00:03.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10
   e1000: 0000:00:03.0: e1000_probe: (PCI:33MHz:32-bit) **:**:**:**:**:**

   # echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"**:**:**:**:**:**\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"eth0\"" > /etc/udev/rules.d/70-persistent-net.rules


■ ネットワーク全体の設定

   # (echo "NETWORKING=yes";
   echo "NETWORKING_IPV6=no";
   echo "HOSTNAME=*"; ) > /etc/sysconfig/network


■ eth0の設定

   # (echo "DEVICE=eth0";
   echo "BOOTPROTO=static";
   echo "ONBOOT=yes";
   echo "IPADDR=*.*.*.*";
   echo "NETMASK=*.*.*.*"; ) > /etc/sysconfig/network-scripts/ifcfg-eth0


■ IPv6の無効化

   # (echo "alias ipv6 off";
   echo "alias net-pf-10 off";
   echo "options ipv6 disable=1"; ) > /etc/modprobe.d/ipv6.conf

2013年2月14日木曜日

ブログ再構築

■再構築作業日時(予定)
2013年2月14日 15:00 ~ 22:00

■作業中の影響
このブログが表示できなくなります。

よし、きれいにするぞ。

2012年11月26日月曜日

KVMと仮想スイッチ

Cです。KVMとVLANの話。

最近は用途にもよるけど、サーバ仮想化の検討が当たり前になっている。
1仮想化基盤の中に、別のネットワークセグメントが存在したりすることもよくある。
その場合には、仮想化基盤を分けるべきなんだけど金と仮想化対象サーバの数によっては
1台に収めたい場合もあるだろう。

4ネットワークセグメントが混在する場合の設定を。
KVMとCatlyst2950を使ってやってみた。

■作るもの 画像はみ出た




bondingの設定とcatlyst側のEtherChannelの設定いらないんじゃない?と
疑問に思った人がいるかもしれない。
bondingを組まずに各仮想ブリッジ(br)にVLANつけたサブインターフェイスを
そのまま割り当ててればいいと思うかもしれない。

しかしそれだとパケットの流れがだいぶ変わる。
ほんとにスイッチの動きとなってしまい
仮想マシンからのパケットを転送するだけの動きとなる。
L2ブロードキャストやMACテーブルに覚えていない場合、
「eth0 - eth3」の全部のポートからパケットが出て行くのだ。
いらんだろ。

画像ではcatlyst同士繋がっていないが
それをするとL2ループがおきちゃうこともある。
仮想スイッチでSTPは組むのはネットワークが複雑になりすぎるし嫌だ。
(各メーカーや技術者も「仮想ネットワークでSTPを組むな」と言っている。)
↑これに関して技術的な観点でなく管理的な面で言っている。
仮想スイッチでSTPを有効にしてやればできないことも無い。
いらんだろ。

bonding mode 0 でEtherchannelを組んで、
そのポートを仮想ブリッジに参加させた場合は
ちゃんと使えるインターフェイスを判断して
そこからパケットを転送してくれる。

※設定するときは通信が途切れないように工夫せよ

■いるもの

# yum install bridge-utils


■VLAN有効

# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hostname
NETWORKING_IPV6=no
GATEWAY=xxx.xxx.xxx.xxx
LVAN=yes


■VLANタグのついたサブインターフェイス作成


# vi /etc/sysconfig/network-script/ifcfg-eth0.10
DEVICE="eth0.10"
MASTER="bond10"
SLAVE="yes"
BOOTPROTO="none"
ONBOOT="yes"

# vi /etc/sysconfig/network-script/ifcfg-eth0.20
DEVICE="eth0.20"
MASTER="bond20"
SLAVE="yes"
BOOTPROTO="none"
ONBOOT="yes"

# vi /etc/sysconfig/network-script/ifcfg-eth0.30
DEVICE="eth0.30"
MASTER="bond30"
SLAVE="yes"
BOOTPROTO="none"
ONBOOT="yes"

# vi /etc/sysconfig/network-script/ifcfg-eth0.40
DEVICE="eth0.40"
MASTER="bond40"
SLAVE="yes"
BOOTPROTO="none"
ONBOOT="yes"

~長いし省略~ 
他のインターフェイスにもVLANタグのついたサブインターフェイスを
同じように作っていく。


■仮想ブリッジの設定

# vi /etc/sysconfig/network-script/ifcfg-br10
DEVICE=br10
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
DELAY=0

# vi /etc/sysconfig/network-script/ifcfg-br20
DEVICE=br20
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
DELAY=0

# vi /etc/sysconfig/network-script/ifcfg-br30
DEVICE=br30
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
DELAY=0

# vi /etc/sysconfig/network-script/ifcfg-br40
DEVICE=br40
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
DELAY=0


■bondingのalieas設定

# vi /etc/modprobe.d/bonding.conf
alias bond10 bonding
alias bond20 bonding
alias bond30 bonding
alias bond40 bonding


■bondインターフェイスの作成

# vi /etc/sysconfig/network-scripts/ifcfg-bond10
DEVICE="bond10"
ONBOOT="yes"
BOOTPROTO=static
TYPE="Ethernet"
BRIDGE="br10"

BONDING_OPTS="mode=0 miimon=100"

~長いし省略~ 
bond40まで作成しよう。


ここまできたら勇気をもって/etc/init.d/network restart だ。
※eth0にでもIP振っておいたほうがいいぞ。

■確認しとこう

# brctl show
# ifconfig


あとは仮想マシンのNIC設定でどの仮想スイッチ(br)の中に属するかを設定すればOKだ。

設定はややこしいかもしれない、
もっと設定を簡単にして「動く」だけのものを作っても
思うように転送速度が出なかったり、障害時の原因特定が困難になったり
良いことは無いだろう。

以上

NTPサーバの設定

Cです。NTPの話。

NTPって他のプロトコルとちょっと変な感じだ。
NTP時刻参照先(上位)とNTPクライアント(下位)が
お互いserverとclientになりあって時刻を調整している。
下位になるほうにも上位NTPからのアクセス許可ルールを書かないといけない。

■設定

# driftfileの指定(上位NTPとの差を記録するファイル)
driftfile /var/lib/ntp/ntp.drift

# デフォルトですべてのNTPアクセス拒否
restrict default ignore

# ローカルホストからはNTPアクセス許可
restrict 127.0.0.1

# 各クライアントからのリクエスト許可
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap

# 各上位NTPからのNTPアクセス許可
restrict 133.243.238.163 mask 255.255.255.255 nomodify notrap noquery
restrict 133.243.238.164 mask 255.255.255.255 nomodify notrap noquery
restrict 133.243.238.243 mask 255.255.255.255 nomodify notrap noquery
restrict 133.243.238.244 mask 255.255.255.255 nomodify notrap noquery
restrict xxx.xxx.xxx.xxx mask 255.255.255.255 nomodify notrap noquery
restrict 210.173.160.27 mask 255.255.255.255 nomodify notrap noquery
restrict 210.173.160.57 mask 255.255.255.255 nomodify notrap noquery
restrict 210.173.160.87 mask 255.255.255.255 nomodify notrap noquery

# 上位NTPサーバの指定
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
server プロバイダのNTP
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp

# RTC
server 127.127.1.0
fudge 127.127.1.0 stratum 10

# 認証の指定
authenticate no