Pro/1000 MT Dual が動いた

投稿日: Leave a comment

昨日、ふともう一度挿してみようと思い、半分ダメもとでPro/100Sと入れ替えてみたら、何事なかったかのように動作した。

dmesgもこんな感じ。中古で買ったものだけど、MACアドレスからHewlett-Packardのサーバにでもささってたのだろう。

em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd000-0xd03f mem 0xe20a0000-0xe20bffff
,0xe2000000-0xe203ffff irq 20 at device 0.0 on pci3
em0: [FILTER]
em0: Ethernet address: 00:02:a5:xx:xx:7a
em1: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd100-0xd13f mem 0xe2080000-0xe209ffff
,0xe2040000-0xe207ffff irq 19 at device 0.1 on pci3
em1: [FILTER]
em1: Ethernet address: 00:02:a5:xx:xx:7b

というわけで、またもオンボードGbEのre0を止めて、各サーバの設定を変えて再起動して、再び安定動作中。

Pro/1000 MT Dual 動かず

投稿日: Leave a comment

Pro/1000 MT Dual port adapterを入手して昨日ゴニョゴニョやってみたけど、なぜか動作せず。かなりショボン。

em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd000-0xd03f mem 0xe2120000-0xe213ffff
,0xe2000000-0xe207ffff irq 20 at device 0.0 on pci3
em0: Hardware Initialization Failed
em0: Unable to initialize the hardware
device_attach: em0 attach returned 5
em1: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd100-0xd13f mem 0xe2100000-0xe211ffff
,0xe2080000-0xe20fffff irq 19 at device 0.1 on pci3
em1: Hardware Initialization Failed
em1: Unable to initialize the hardware
device_attach: em1 attach returned 5

ハードの初期化に失敗したと出ているけど、となりのマシン(Core 2 duo / Windows vista) ではちゃんと認識して動作もしていたので壊れているわけではなさそう。

GA-D510UDに載っているチップセットとの相性なのか、FreeBSDとの相性なのか、PCIバスの設定か。

仕方ないのでGbEになったLAN側はオンボードのカニを活かして使うことにする。100Mbpsなfxp0は将来的にWAN側にでもしようかな。

re0: <RealTek 8168/8111 B/C/CP/D/DP/E PCIe Gigabit Ethernet> port 0xb000-0xb0ff
mem 0xe3004000-0xe3004fff,0xe3000000-0xe3003fff irq 16 at device 0.0 on pci1
re0: Using 1 MSI messages
re0: Chip rev. 0x28000000
re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus0
rgephy0: 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000ba
seT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-ma
ster, auto, auto-flow
re0: Ethernet address: 6c:f0:49:xx:xx:xx
re0: [FILTER]

まぁ、今時のカニなら大丈夫なのかな。

秋葉原ぶらぶら

投稿日: Leave a comment

今月はじめにも秋葉原に行ったけど、今日も都内に行く用事があったのでまた寄ってみた。

前回は電子部品のお店周りでタイムオーバーになってしまったので、今回はパソコンパーツ関連のお店周り。

toby用にGbEのNICを買おうと思ったけど、ふとDual portの方がいいような気がしたのと、Pro/1000のバリエーションの違いがよく分からず保留。

久々に愛三電機に入ってみて、NETGEARのGbEスイッチングハブが安いような気がして、8ポートのものを購入。そういえば、最近、スイッチングハブは会社でもNETGEARしか買っていない気がする。

そして、早速接続。とりあえず家庭内LANはGbEになった。でも、GbEのNICが刺さっているのはメインで使っているPCのみ。tobyもGbEにしたいのでちょっと考える。(オンボードはカニのGbEなので使えばいいという話もあるが...)

tobyのNICをPro/1000のDual portにして、PPPoE喋らせてブロードバンドルータ化しようかなと考え中。

L2TP/IPsec サーバ

投稿日: Leave a comment

以前のL2TPサーバに続き、IPsecを加えて通信を保護する作戦。結論的にはまだうまくいっていない。

ipsec-tool、いわゆるracoonをportsからインストール。そのとき、

「How to setup L2TP/IPSec VPN on FreeBSD」

を参考にして、ipsec-toolを少し修正してからmake allとmake installを実行。

次に、

Android OS 2.3 用 VPN(仮想プライベートネットワーク) 展開ガイド

を見ながらsetkey.conf、racoon.conf、psk.txtを適宜記入して、racoonを(とりあえず)フォアグラウンドで実行。この状態で、Androidから、ローカルのWiFiでL2TP/IPsecを繋ぎに行くとOK。でも、spmodeから繋ぎに行くとうまくいかない。

デバッグ情報を見ているとセキュリティポリシーの設定がうまくいかない。setkeyでesp/transportの設定をしているけど、toby側を0.0.0.0/0[1701]としてみたり、192.168.1.2[1701]としてみても、なぜか自動設定されたWAN側のIPアドレスが設定されてしまう。これだと、L2TPのパケットが外に出て行かない。

サーバがNATの内側にいるとダメなのか?でもIPsecのコネクション自体はspmodeからでもうまく言っているっぽいので、NAT-Tの設定が足りていないのか。もうちょっと継続して調べなきゃ。

L2TPサーバ(改)

投稿日: Leave a comment

ここのをちょっと修正。

proxy arpしてるんだから、ルーティング設定する必要ないよな、と思って、以下のように修正したら普通につながるようになった。

l2tp_server:
    #set ippool add pool1 192.168.16.0 192.168.16.255
    set ippool add pool1 192.168.1.128 192.168.1.254
    create bundle template B1
    set iface idle 1800
    set iface enable proxy-arp
    set iface enable tcpmssfix
    set ipcp ranges 192.168.2.1/24 ippool pool1
    set ipcp dns 192.168.1.1
    create link template L1 l2tp
    set link action bundle B1
    set link enable multilink
    set link keep-alive 10 60
    set link disable chap eap
    set link enable chap-msv2
    set link mtu 1376
    set link mru 1376
    set auth authname l2tp@toby
    set link enable incoming

ippoolのアドレスをひかり電話のルータ側のサブネット192/168.1.0/24のアドレス範囲に変更。

さて、今日から海外逃亡しますです。ホテルはインターネット完備らしいので、VPN+SIPで電話代(ローミング代)を少しうかそうという目論見。そんなに電話すること無い気もするけど。

L2TPサーバ

投稿日: Leave a comment

IPv6のトンネルに使ったmpdでL2TPのサーバを組んでみた。

あまり頭を使わず、ググッてこんな設定にしてみた。

l2tp_server:
    set ippool add pool1 192.168.16.0 192.168.16.255
    create bundle template B1
    set iface idle 1800
    set iface enable proxy-arp
    set iface enable tcpmssfix
    set ipcp ranges 192.168.2.1/24 ippool pool1
    set ipcp dns 192.168.1.1
    create link template L1 l2tp
    set link action bundle B1
    set link enable multilink
    set link keep-alive 10 60
    set link disable chap eap
    set link enable chap-msv2
    set link mtu 1376
    set link mru 1376
    set auth authname l2tp@toby
    set link enable incoming

トンネルの相手側が192.168.16.0-192.167.16.255がわりあたり、サーバ側は192.168.2.1/24が割当たるようになる。

で、この状態で、kernelがパケット転送してくれないと困るので、

# sysctl net.inet.ip.forwarding=1

を実行。これは、rc.confにgateway_enable=”YES”とかいておけばboot時にやってくれるはず。

さらに、ひかり電話のルータで、192.168.16.0/24のゲートウェイを192.168.1.2(サーバのひかり電話ルータ側のアドレス)に設定してあげれば、トンネルの先からひかり電話のルータを経由して通信ができる。本当はroutedで経路を広めるほうがいいのかな。

最後に、ひかり電話のルータでUDP/1701に穴を開けて、Xperia arcからL2TPトンネルを張ってみる。

見事成功。サーバ側にはng1が出来た。

SIPでひかり電話の内線にもなれる。webで外にもつながっている。ただしwebはちょっと遅い。

ただ、spmodeのメールだけはダメ。tcpdump -i ng1 でトンネルから出てきたパケットを見てみたら、auth.spmode.ne.jpにhttpsでつなぎに行っている。spmodeってhttpsで最初につなぐらしい。

tcpdump -i ng1 して眺めていたら、たまにspmodeのAPNからもらったIPアドレスで通信している。こいつはさすがにルーティングできない。

出来れば、IPSecでトンネルを強化したいところだけど、こちらはまた今度。

ちなみに、トンネルからやってくる通信がL2TPサーバ自身がしゃべっている様に周りに見せてあげれば、ルーティングとか気にしなくていいはずで、それをやろうと思って、IPDIVERTとかIPFIREWALL_NATとかを入れてカーネルを再構築してみた。こちらもまた今度。

pam_af 導入

投稿日: Leave a comment

外からsshdにたくさんアクセスが来ていて気持が悪いので、pam_afを入れてブロックすることにした。

まず、portsからインストール

# cd /usr/ports/securty/pam_af
# make build
# make install

pam_af.soを使うように/etc/pam.d/sshdに追加

# access control (pam_af)
auth   requisite   /usr/local/lib/pam_af.so

pam_af_toolで15分間で5回認証に失敗したらロックするようにルールを追加 (manそのまま)。ついでに、localhostからはロックしないようにするルールも追加。

# pam_af_tool ruleadd -h '*' -a 5 -t 15M
# pam_af_tool ruleadd -h localhost -a unlimited -t 0

リモートのPCからわざとパスワードを間違えたらちゃんとロックが掛かったので、ちゃんと動いてそう。とりあえず、これでしばらく様子を見てみる。

dhcp6s自動設定

投稿日: 2 Comments

またまたここの続き。dhcp6cで入手したIPv6のDNSサーバをdhcp6sで配るようにここを参考に設定してみた。

/usr/ports/net/mpd-l2tp-ipv6pd-client を入れると、mpd5に加えてdhcp6cの設定スクリプトを設定してくれるのだけど、このスクリプトで呼ばれる設定ファイルのテンプレート dhcp6c.conf.in にdnsサーバを聞きに行く設定と、それで得られたdnsサーバアドレスをresolv.confとdhcp6s.confに書く設定を追加。

ついでに、dhcp6cのstart/stopに同期して、dhcp6sも動くように設定。止める方はdhcp6c_pd.shのstopのスクリプト内に記載。

#!/bin/sh

mv /etc/resolv.conf /etc/resolv.conf.bak
cp /etc/resolv.conf.in /etc/resolv.conf

mv /usr/local/etc/dhcp6s.conf /usr/local/etc/dhcp6s.conf.bak

for nameserver in $new_domain_name_servers; do
      echo nameserver $nameserver >> /etc/resolv.conf
      echo option domain-name-servers $nameserver \; >> /usr/local/etc/dhcp6s.conf
done

/usr/local/etc/rc.d/dhcp6s start

L2TPでIPv6をつなぐ (2)

投稿日: Leave a comment

ここの続き。

rtadvdのpidにSIGUSR1を投げて状態をダンプさせてみると、RAにプレフィックスが入っていないことが判明。rtadvdのマニュアルを見ると

設定ファイル中でインタフェースに対する記述が存在しない、または設定ファイルが存在しない場合には、rtadvd は全てのパラメータに対してデフォルト値を設定します。特に、rtadvd は全てのインタフェースの経路を経路表より取得し、リンク上のプレフィックスとして通知します。

とあるので、経路表(ルーティングテーブル)がおかしいと考えて、アドレスとにらめっこしてみた。

普通IPv6アドレスのプレフィックス長は64ビットのはずだけど、fxp0に割り当てられたアドレスは56になっている。もしかしたら、dhcp6cが付けたアドレスがおかしいのかもと思い、sla-lenを64-56=8に設定し、ついでにsla-idをここにあるように1に変更した。ちなみに、デフォルトではsla-id, sla-lenともに0になっていた。

すると、RAがプレフィックスを流すようになったので、rtadvd.confでMフラグを指定してIPv6アドレスをdhcp6sで配るようにしていたのを、Oフラグに変えてdhcp6sからはDNSサーバ情報だけを流すように変更したら、VistaでIPv6アドレスを自動生成してくれるようになった。もちろん亀も踊っている。

dhcp6sで配るDNSサーバ情報は相変わらず決め打ちにしちゃっているので、何とかdhcp6cで受け取ったアドレスを配るようにしたいところ。dhcp6c.confでscriptを実行できるっぽいので、もう少し調べてみようと思う。