1枚のLANカードに複数のIPを振ってみた

httpsの通信ではネームベースのバーチャルホストでは鍵の識別ができなくなるので、複数IPを振ってみることにしました。その他の利用法としてLAN内のみで開発する場合に複数のサブネットを作成することでLAN用サブネットではウェブアクセス、エイリアスの新サブネットではDB接続等の構成が可能になります。

ではやり方。
# ee /etc/rc.conf (一部抜粋)
ifconfig_fxp0=”inet xxx.yyy.zzz.11 netmask 255.255.255.248″
ifconfig_fxp0_alias0=”inet xxx.yyy.zzz.12 netmask 255.255.255.255″

rc.confにこのように設定します。
netmaskが255.255.255.255なのは同じカードで同じネットマスクの場合に、同じサブネットですよ~という意味らしい。これを255.255.255.248のように設定すると同じIP帯のサブネットを別途生成することになり後々わかわからない傷害に悩まされる可能性がある。

次に、増設したLAN側(CardBus)の設定も多重化します。こちらはIPだけでなくサブネットも多重化してみます。

# ee /etc/devd/rl0.conf (一部抜粋)

device-name “rl0”;
action “ifconfig $device-name inet 192.168.0.11 netmask 255.255.255.0”;
action “ifconfig $device-name inet 192.168.0.12 netmask 255.255.255.255 alias”;
action “ifconfig $device-name inet 192.168.3.11 netmask 255.255.255.0 alias”;
action “ifconfig $device-name inet 192.168.3.12 netmask 255.255.255.255 alias”;
action “route add default 192.168.0.1”;
action “route add default 192.168.3.1”;

追加サブネットについては2台とも設定してお互いに通信できるようにしました。(念のため片方だけ設定したときに、もう片方からpingが通らないことを確認)

あとは新規に追加したグローバルIPの方はファイヤーウォールの穴あけないと接続できない。(出来た方が問題なのでこれ良い)。ウェブとメールだけは空ける必要があるので後で空けておこう。

USBメモリでFreeBSDをインストール

実は昨日、ThinkPad X24をFreeBSD用に購入。先週ThinkPad一台潰してFreeBSD入れたばかりなのにと思われそうですが、今度はサーバ用途ではなくクライアントとして使うということで軽いものが欲しかった。流石に1.5kg程度になると軽くてカバンの中に入れても平気だ。

それに最近のUNIX系ソフトも充実しているので、ネットワークプログラマーという職業柄、別にWindowsである必要もないんじゃない?と思うようになり、そしてリナザウが限界来てたりとUNIXノートの理由ができてしまいました。

ただし今までと違うのはFDDもCD-ROMも無いという条件でのインストールです。
ドライブ無しのインストール方法はいろいろありますが、今回のX24にさらに付け加えるとシリアルポートなし、パラレルポートもなしです。一応ネットワークブートは可能ですがサーバ側になるFreeBSDの環境構築とルータから切り離す必要とさらにイメージCDと負担が大きかったので不可。

その条件でいろいろググってたら面白い情報を発見。『USBのFDDでブートできるPCであればUSBメモリからブート可能』らしい。おまけに不要になった1GBのUSBメモリの処分にも悩んでたし丁度良い。

おまけに先週立ち上げたサーバはusbdを生かしたままなのでこのサーバでUSB起動フラッシュメモリを作ってみた。

準備したもの:
・USBメモリ(1GB)
・FreeBSD6.2のサーバ(ThinkPad A21p)
・これからインストールするThinkPad X24

参考にしたサイト:たーくんずろぐ – USBメモリからのOS起動

参考サイトとの相違点としてはFreeBSD6.2は起動ディスクがboot含めて4枚なので次のように4枚目のディスクの作業が増える。

# mdconfig -a -t vnode -f /tmp/kern3.flp

# mount /dev/md3a /mnt
# cd /mnt
# cp kernel.gz.ac /usb/
# cd /
# umount /mnt
# mdconfig -d -u 3

これからはFDD/CD無しのPCでもある程度安心できそうだ。
因みに出来たUSBメモリの中身はこちら
# cd /usb
# ls
.snap boot kernel.gz.ab kernel.gz.boot mfsroot.gz
acpi.ko.gz kernel.gz.aa kernel.gz.ac kernel.gz.split

FreeBSDにCardBusを認識させる

前回、自動認識に失敗したCardBusタイプのLANカードですが、これを認識させることができましたので設定メモ。

まず、自動認識を行おうとしているときに何が起きていたか次のコマンドで確認

# dmesg | egrep ‘cbb|pccard|cardbus’
cbb alloc res fail
cardbus0: Can’t get memory for IO ports
cbb alloc res fail
cbb alloc res fail
cbb alloc res fail
cbb alloc res fail
cardbus0: <network, ethernet=””>at device 0.0 (no driver attached)

どうも割り込みに失敗している模様。
次にデフォルトの割り当てアドレスを確認。
# sysctl -a | grep hw.cbb
hw.cbb.start_memory: 2281701376
hw.cbb.start_16_io: 256
hw.cbb.start_32_io: 4096
hw.cbb.debug: 0

ググッた内容だと
hw.cbb.start_memory=”0x40000000″
hw.cbb.start_32_io=”0x2000″
とすることで動作した報告があるので(PCによって変わるそうです)/boot/loader.confに下記を加えます。

# ee /boot/loader.conf
hw.cbb.start_memory=”0x40000000″
hw.cbb.start_32_io=”0x2000″

ここで一旦rebootして自動認識に成功したか確認。

ll /dev/net/
total 0
crw——- 1 root wheel 0, 32 Feb 20 07:59 fxp0
crw——- 1 root wheel 0, 76 Feb 20 07:59 lo0
crw——- 1 root wheel 0, 40 Feb 20 07:59 plip0
crw——- 1 root wheel 0, 81 Feb 20 07:59 rl0

rl0として認識されました。

この後は認識されたLANの設定ですが、LAN側として個別に設定したいのでdevdを使います。
devd(8)を有効にするためrc.confにdevd_enable=”YES”を追記。

# ee /etc/rc.conf
devd_enable=”YES”

/etc/devdディレクトリが存在しなかった為作成してrl0用の設定ファイルを作成。
# mkdir /etc/devd
# ee /etc/devd/rl0.conf

attach 100 {
device-name “rl0”;
action “ifconfig $device-name inet 192.168.0.10 netmask 255.255.255.0”;
action “route add default 192.168.0.1”;
};

detach 100 {
device-name “rl0”;
};

以上の作業を完了して再度rebootして2台とも正しく設定完了しました。
ちゃんと100Mbpsで動作していることもifconfigで確認できました。

rl0: flags=8843<up,broadcast,running,simplex,multicast> mtu 1500
options=8<vlan_mtu>
inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::290:ccff:fec5:d73%rl0 prefixlen 64 scopeid 0x4
ether 00:90:xx:xx:xx:xx <- MACアドレスはメーカコード以外伏字
media: Ethernet autoselect (100baseTX )
status: active

[動作実績]
PC:IBM A22m,A21p
LAN:Planex FNW-4000-TX
OS:FreeBSD6.0,FreeBSD6.2
設定内容:上記
関連:LAN構築用にFNW-4000-TX買いました。