トップページunix
1001コメント377KB

FreeBSDでBBルータを作ろう互助会 3Gbps

■ このスレッドは過去ログ倉庫に格納されています
0001名も無きfxp25NGNG
高い金出して最近のへぼなブロードバンドルータ買うより全然いいと思うぞ。
「PPPoEの方法」
「NATにする方法」
「NICを2枚使う方法」
「ファイヤーウォール設定・セキュリティ対策」
その他なんでもいいからここで質問&アドバイスして輪を広げてこう。
悪質ブロードバンドルーター製品逝ってよし!

最近のブロードバンドルータは安くて速いぞ。遅くてヘボいルーター作るなよ。

前スレ
 FreeBSDでBBルータを作ろう互助会
 http://pc.2ch.net/test/read.cgi/unix/1038060563/
FreeBSDでBBルータを作ろう互助会 2Mbps
http://pc5.2ch.net/test/read.cgi/unix/1060660932/

関連サイト
pf:http://www.openbsd.org/faq/pf/ja/index.html
0743名無しさん@お腹いっぱい。2006/07/11(火) 23:42:17
man pf.conf
07447412006/07/12(水) 23:18:40
>>743
一応pf,pf.conf,ftp-proxyは全て目を通したのですが、
私の目が節穴なんだと思うんですが解決に至っていません。

リスト取得の際にnat内のipでデータを取得しにいっているのではないかと
思っているのですが、どうすればいいのかわかりません。

ftp-proxyがうまく動かせていない気がします。
ftp-proxyはinetd.confのにかかれているもののコメントアウトを外して動作させていますが、なにかオプションをつけて起動させないと行けないのでしょうか?
0745名無しさん@お腹いっぱい。2006/07/12(水) 23:50:07
>>741
FreeBSDの現行のftp-proxyはしょぼいから、ftp/pftpxを利用おすすめする。
OpenBSD3.9ではこっちに変更になってる。
設定方法はmanなりPF User's Guideを参考に。
0746名無しさん@お腹いっぱい。2006/07/13(木) 00:01:12
>>744
ftp-proxy って IP 付け替えやってくれないんじゃなかったっけ?

>>742 みたいにデータ接続の送信元IP が違うって怒られる場合は
ftp-proxy 使っても意味無いと思ってたんだけど。
07477412006/07/13(木) 12:04:56
>>745
pftpxですね。入れてみます。

>>746
ftpの動作自体あまり詳しくわかっていたいので、
みなさんから見ればおかしなことを言っているのだと思います。

私の頭の中ではlsでのデータ取得する場合の動作は
1.postコマンドでサーバーに情報を送る(nat内pcの情報)
2.listコマンドをサーバーに送る
3.サーバーから接続される(pfが動いているゲートウェイ)
4.postコマンドで送ったipと接続したipが違うのでサーバ側が切断
という感じで動いているのではないかと思っています。
この認識で間違いないでしょうか?
0748名無しさん@お腹いっぱい。2006/07/13(木) 13:45:32
>>747からは3,4の段階の実際を理解してるのかがいまいち読み取れない。
07497412006/07/14(金) 00:22:58
>>748
うまく説明できなくてすいません。

3をもう少し詳しく書くと
3-1.ftpサーバーの21番ポートからゲートウェイに接続が来る
3-2.ftp-proxyがnat内のftpクライアントに通知(passive接続ができているのでこれは通っていると予想)
3-3.ftpサーバーの20番ポートからゲートウェイの1で通知したポートに接続が来る
こんな感じなのではないかと思っています。

参考として下記の説明と図をみて考えました。
http://www.jp.freebsd.org/QandA/HTML/2073.html
http://slacksite.com/other/ftp.html
0750名無しさん@お腹いっぱい。2006/07/14(金) 01:11:04
>>749
たしか、
1-1 クライアントが制御接続で PORT を送出。
1-2 ftp-proxy がクライアントの PORT を握りつぶす。
1-3 ftp-proxy がサーバへ制御接続で自前の PORT を送出。
1-4 サーバが制御接続でコマンド成功だったかをクライアントに返信。

2 クライアントが制御接続で LIST を送出。

3-1 サーバがデータ接続で ftp-proxy によって示された IPアドレス、port に接続
3-2 ftp-proxy がデータ接続でクライアントによって示された IPアドレス、port に接続

4-1 クライアントはサーバからの接続を期待したのに
ftp-proxy から接続されたので詐称っぽいと警告を出す。

WindowsXP SP1 だったか SP2 だったかの
パーソナルファイアーウォールも ftp-proxy の中継だとブロックする。
そんときに調べた記憶だと、こんな感じだったかと。
PASV使えば、一応解決するんだけどね。
07517412006/07/14(金) 08:39:58
>>750
詳細な解説ありがとうございます。
確かにpassiveだと大丈夫です。

ただ、私の管轄外のftpサーバーがactiveでしか接続を受け付けない
仕様になっているのでほとほと困っています。
とりあえずこの接続だけpfのゲートウェイを介さず
接続することにします。

あとはftp/pftpxを入れてみます。
0752名無しさん@お腹いっぱい。2006/07/14(金) 08:52:02
ソース見ただけだけど、pftpxはPORTが来たときにちゃんとrdrのルールつっこんでるのかあ。
これなら文句言われずに動きそう。
0753名無しさん@お腹いっぱい。2006/07/17(月) 20:28:59

ftp使うのを止める方が先だと思う
0754名無しさん@お腹いっぱい。2006/07/19(水) 13:55:52
ブリッジにしたNIC2枚のところでDHCPサーバをうまく動かす事は出来ないっぽいですね。
0755名無しさん@お腹いっぱい。2006/07/19(水) 17:15:08
日本語でおk
0756名無しさん@お腹いっぱい。2006/07/19(水) 17:54:39
ifconfigで作ったbridge0をdhcpd_ifacesに指定してisc-dhcpd起動、これでうまく行ってるけどそういう話じゃなくて?
0757名無しさん@お腹いっぱい。2006/07/19(水) 22:58:31
できますよ
0758名無しさん@お腹いっぱい。2006/07/20(木) 00:49:25
×ブリッジにしたNIC2枚のところでDHCPサーバをうまく動かす事は出来ないっぽいですね。
○ブリッジにしたNIC2枚のところでDHCPサーバをうまく動かす事は私には出来ないっぽいですね。
07597542006/07/20(木) 02:49:31
いや、動いてるように見えるんだ。しかし、
rl0: inet 192.168.1.1, rl1: アドレスなし, rl0とrl1をブリッジ
としてisc-dhcp-serverを起動した時に
Listening on BPF/rl0/02:xx:xx:xx:xx:d5/bridge
Sending on BPF/rl0/02:xx:xx:xx:xx:d5/bridge
と出る環境でWindows XPなクライアントを接続した場合、
rl0の方につなげた時は問題ないんだが、rl1の方につないだ場合
MACアドレスがrl1の192.168.1.1に対して再取得を試みるが応答が得られない。
で数回リトライしているうちにarpの期限が切れたのか、
再取得を試みる相手をMACアドレスff:ff:ff:ff:ff:ff、IPアドレス255.255.255.255の
ブロードキャストに切り替えてリトライをする。
で、その時はrl1からrl0のブリッジが利くのかアドレスを取得できる。

この無駄っぽいリトライが気持ち悪かったりするけどいいのかな?
0760名無しさん@お腹いっぱい。2006/07/20(木) 10:06:36
スイッチが腐ってるんじゃないの?
07617542006/07/20(木) 12:33:26
腐ってるかもしれないスイッチを取り外してクロスケーブル直結にして試してみたけど、
やはり>>759と同じ挙動でリース期限内で最後にあたるリトライ(?)でブロードキャストに切り替えて
何とか更新するって感じになります。

Multiple interfaces match the same 〜な警告が出たままだとDDNSが
うまく動かなかったりするし、うーんうーん。
0762名無しさん@お腹いっぱい。2006/07/26(水) 16:06:01
IPv6 over PPPoEができないんですが誰か教えてください。
環境はこんなかんじです。

PC_A --- ルータ --- FreeBSD4.9 --- PC_B

ルータ:PPPoEクライアント
FreeBSD:PPPoEサーバ

ルータ〜FreeBSDのリンクローカルアドレス(IPv6CP InterfaceIDで生成)でのping6は可能。
PC_AからPC_Bにping6を実行すると、FreeBSDまで届くが、FreeBSDがPC_Bに転送してくれない。

PPPoEを使用しない場合は、PC_AからのパケットをPC_Bに転送してくれるんですが…

ちなみにサーバとクライアントを入れ替えても、やはりFreeBSDから先に転送してくれません。

どうすればPPPoEトンネルで受信したIPv6パケットを転送してくれるようになりますか??
0763名無しさん@お腹いっぱい。2006/07/27(木) 00:28:32
>>762
質問の仕方をどこかで学習してから出直してください。
0764名無しさん@お腹いっぱい。2006/07/27(木) 08:07:48
>>763
質問への答え方をどこかで学習してから出直してください。
07657622006/07/27(木) 09:50:05
もう一度、762を踏まえて質問し直します。

PPPoEカプセルされたIPv6パケットをFreeBSDがルーティングしてくれません。
しかし、PPPoEカプセルされていないパケット(Ether+IPv6)は、ちゃんとルーティングしてくれます。

PPPoE+IPv6をルーティングする方法を教えてください。
0766名無しさん@お腹いっぱい。2006/07/27(木) 11:16:05
どこまでパケットが届いてるのか、各マシン上で tcpdump とかで確認してみては?
07677622006/07/27(木) 12:40:57
>>766
>762の接続でPC_AからPC_B宛にパケットを出したら、FreeBSDまでは届いて、PC_B側に出してませんでした。
FreeBSDの左側のI/Fをfxp0として、fxp0にPPPoEをbind(?)してます。

fxp0でパケットキャプチャすると、PC_AからのパケットをPPPoEで受信しています。
PPPoEセッションが張られた際にできるtunXのI/Fでパケットキャプチャすると、tunXには届いていませんでした…

PPPoEで受信したパケットが処理される時は、tunXを通過しますよね?
0768名無しさん@お腹いっぱい。2006/07/30(日) 18:59:09
IBM ThinkPad600E Pen2-333もらっちゃった FreeBSDインスコしてルータに出来るかな?
0769名無しさん@お腹いっぱい。2006/08/25(金) 11:05:14
http://security.freebsd.org/advisories/FreeBSD-SA-06:18.ppp.asc
mpd(ng_ppp)でも利用しているので、バージョンアップ必要。
07706952006/08/30(水) 18:44:31
6.1-RELEASE-p5上でmpdを使ってルータを作ろうとしているのですが,
PPPoEではまっています.ISPはnifty,キャリアはフレッツ光プレミアムです.
どなたか助けていただけないでしょうか...
mpdをフォアグラウンドで動かすと下記のようになります.

# mpd
Multi-link PPP for FreeBSD, by Archie L. Cobbs.
Based on iij-ppp, by Toshiharu OHNO.
mpd: pid 11484, version 3.18 (root@example.com 14:54 31-Jul-2006)
[nifty] ppp node is "mpd11484-nifty"
[nifty] exec: /sbin/ifconfig fxp0 up
[nifty] using interface ng0
[nifty] IPCP: peer address cannot be zero
[nifty] IFACE: Open event
[nifty] IPCP: Open event
[nifty] IPCP: state change Initial --> Starting
[nifty] IPCP: LayerStart
[nifty:PPPoE0] [nifty] bundle: OPEN event in state CLOSED
[nifty] opening link "PPPoE0"...
[PPPoE0] link: OPEN event
[PPPoE0] LCP: Open event
[PPPoE0] LCP: state change Initial --> Starting
[PPPoE0] LCP: LayerStart
[PPPoE0] device: OPEN event in state DOWN
[PPPoE0] device is now in state OPENING
[PPPoE0] PPPoE connection timeout after 9 seconds
[PPPoE0] device: DOWN event in state OPENING
[PPPoE0] device is now in state DOWN
[PPPoE0] link: DOWN event
[PPPoE0] LCP: Down event
07717702006/08/30(水) 18:49:42
mpd.confとmpd.linksを晒します.よろしくお願いします.

# cat mpd.conf
default:
load nifty
nifty:
new -i ng0 nifty PPPoE0
set iface route default
set bundle authname hogehoge@nifty.com
set iface up-script /usr/local/etc/mpd/mpd.linkup.nifty
set iface down-script /usr/local/etc/mpd/mpd.linkdown.nifty
load client_standard
client_standard:
set bundle disable multilink
set iface disable on-demand
set iface idle 0
set link no acfcomp protocomp
set link disable pap chap
set link accept chap
set link mtu 1438
set link mru 1438
set ipcp yes vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
open iface
# cat mpd.links
PPPoE0:
set link type pppoe
set pppoe iface fxp0
set pppoe service "nifty"
set pppoe disable incoming
set pppoe enable originate
0772エスパー2006/08/31(木) 00:30:17
大野俊治?
authnameは?
0773名無しさん@お腹いっぱい。2006/08/31(木) 06:46:55
マルチはスルーで
http://pc8.2ch.net/test/read.cgi/isp/1156408831/
0774名無しさん@お腹いっぱい。2006/08/31(木) 07:37:09
8月13日からフレッツ・光プレミアムにPPPoE機能が追加されたのですねぇ。
ttp://flets-w.com/hikari-p/topics/060813_topics.html

PPPは詳しくないので勘ですが、mpdのログを見た感じではCTUでPPPoEを
使う為の設定変更がうまく行ってないような。
CTUガイドブック第5版(2006年8月13日)のP101、PPPoE機能設定はやりましたか?

一般のFTTH回線の場合、運用予定が無くてもWin(or Mac)でのPPPoE接続が可能か
チェックしておいた方が良いかと思います。
FreeBSDの設定なのか他の問題なのかの切り分けにもなるし、
仮に今後、電話サポートに問い合わせる事になった場合、@niftyは
Win(or Mac)での結果を言わないと話を聴いてくれませんから……(^^;

家の6.1-RELEASE-p5, mpd + pf, nifty Bフレッツ・ファミリー100では
光プレミアムの検証はできませんが、771のmpd.confとmpd.linksをコピーして
mtuとmruを1454に、authnameとifaceを家の環境に修正した物では繋りました。
0775名無しさん@お腹いっぱい。2006/08/31(木) 10:32:40
パケットキャプチャくれ>695
07767702006/08/31(木) 11:43:51
>>774
>CTUガイドブック第5版(2006年8月13日)のP101、PPPoE機能設定はやりましたか?

はい.ですからWindowsXPからのPPPoEは問題なくできてます.
なので,なぜmpdでのPPPoEができないのかが謎なんです.
0777名無しさん@お腹いっぱい。2006/08/31(木) 12:38:35
>>776
>なぜmpdでのPPPoEができないのかが謎なんです.

BフレとプレミアムじゃPPPoEサーバの仕様が違うんだからそのままで繋がるとは限らない。
プロトコルに『謎』なんてないんだから自分で調べる気(能力)がないならキャプチャ。
07787702006/08/31(木) 16:23:10
キャプチャ結果を晒します.PPPoEサーバから何の反応も返ってきてない感じです.

# tcpdump -i fxp0
tcpdump: WARNING: fxp0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on fxp0, link-type EN10MB (Ethernet), capture size 96 bytes
12:55:40.907460 PPPoE PADI [Host-Uniq 0x40C6BAC3] [Service-Name "nifty"]
12:55:42.906706 PPPoE PADI [Host-Uniq 0x40C6BAC3] [Service-Name "nifty"]
12:55:46.906606 PPPoE PADI [Host-Uniq 0x40C6BAC3] [Service-Name "nifty"]
12:55:54.910944 PPPoE PADI [Host-Uniq 0x00C5BAC3] [Service-Name "nifty"]
12:55:56.910375 PPPoE PADI [Host-Uniq 0x00C5BAC3] [Service-Name "nifty"]
12:56:00.910286 PPPoE PADI [Host-Uniq 0x00C5BAC3] [Service-Name "nifty"]
12:56:09.912701 PPPoE PADI [Host-Uniq 0x40C0BAC3] [Service-Name "nifty"]
12:56:11.912034 PPPoE PADI [Host-Uniq 0x40C0BAC3] [Service-Name "nifty"]
12:56:15.911939 PPPoE PADI [Host-Uniq 0x40C0BAC3] [Service-Name "nifty"]
12:56:24.915262 PPPoE PADI [Host-Uniq 0xC0DB98C3] [Service-Name "nifty"]
12:56:26.914692 PPPoE PADI [Host-Uniq 0xC0DB98C3] [Service-Name "nifty"]
0779名無しさん@お腹いっぱい。2006/08/31(木) 16:41:43
>>778
Service-Nameなんて使うのかYo!!

> set pppoe service "nifty"

を消すか、""だけにしてみ
07807702006/08/31(木) 19:06:23
>>779

set pppoe service ""

にしたら繋がりました.ありがとうございます!!
ただ,フレッツスクウェアとのマルチセッションをやろうとして
下記のようなmpd.linksにすると,niftyの方だけ繋がって
フレッツの方には繋がりません.いちおうng1というインタフェースは
現れるのですが.

PPPoE0:
set link type pppoe
set pppoe iface fxp0
set pppoe service ""
set pppoe disable incoming
set pppoe enable originate

PPPoE1:
set link type pppoe
set pppoe iface fxp0
set pppoe service ""
set pppoe disable incoming
set pppoe enable originate
0781名無しさん@お腹いっぱい。2006/08/31(木) 21:17:28
>>780
つながりましたかぁ。良かったですね。
マルチセッションもFreeBSD使わないのでdと見当が付きません。
というわけでキャプチャ・・・
0782名無しさん@お腹いっぱい。2006/08/31(木) 22:27:54
>>780
繋がらないって、どういう状況ですか?
PPPoEに失敗するとか
PPPに失敗するとか
成功してるっぽいけどアドレス付いてないとか、
デバイスがダウンしたままとか、
いろいろ確認してみることはあるだろ。

そもそもPCでマルチセッションでフレッツスクエアと共存しようとしたら
ルーティングとかDNSまわりとか色々しなきゃいけないんじゃないかな?

そのへんはどうなのよ。
0783名無しさん@お腹いっぱい。2006/08/31(木) 22:37:42
ttp://flets-w.com/hikari-p/omoushikomi_goriyou/ryuuijikou/pppoe/index.html
(1)複数のPCで接続先を使い分ける場合の制限事項
フレッツ・スクウェアPPPoEを利用してインターネット接続等を行っているPCでは利用できません。

に該当すると思うのだが。
0784名無しさん@お腹いっぱい。2006/08/31(木) 23:01:02
CTUの設定でPPPoE可能なセッション数が1とかってことはないよな?

ちなみに光プレミアムでPPPoEモードで市販ルータ使って
マルチセッション(ISP・速度測定・フレッツスクウェア)使用中。
0785名無しさん@お腹いっぱい。2006/08/31(木) 23:05:03

>>1
「最近のブロードバンドルータは安くて速いぞ。遅くてヘボいルーター作るなよ。 」

いいことかいてあるなぁ。
わかったか>>780
07867702006/09/01(金) 01:34:16
接続時のtcpdumpとmpdのログを晒すのでよろしくお願いします.
長いのでサーバにアップしました.
ログを見る限り,PPPoEはEstablishして,アドレスも付いているっぽいの
ですが,実際にはng1にはアドレスは付きません.

tcpdumpの結果
http://casper.dyndns.org/~pppoe/tcpdump-log.txt

mpdのログ
http://casper.dyndns.org/~pppoe/mpd-log.txt

>>782
ルーティングはset ifaceで,名前解決はルータPCでbindを上げて
解決してます(というかプレミアムにする前はしてました).

>>784
それはないです.PPPoEセッション数は3に設定しています.

>>785
うーん,耳の痛い話で...
0787名無しさん@お腹いっぱい。2006/09/01(金) 01:49:35
>>786
なあ、おい。
もう少し自分で考えろよ。

> mpdのログ
> http://casper.dyndns.org/~pppoe/mpd-log.txt

おまえはログを見たのか?
接続できている方と、できていない方の違いは何だかわからんのか?
それともわかっていて書いていないのか?

おれはログを見てスクエアが通信できないのはわかったが、
回避の方法はわからんなぁ。

じゃ、がんばれ。
0788名無しさん@お腹いっぱい。2006/09/01(金) 02:46:02
>>779
>> set pppoe service "nifty"
>を消すか、""だけにしてみ
「消す」なんて嘘教えるなよ。
CTUとやらは知らんが、Fletsの仕様書では空文字列を指定することになっている。
07897792006/09/01(金) 15:07:10
>>788
BSDなんてしらねーから、うそ書いて悪かったな。もうこねーYo
0790名無しさん@お腹いっぱい。2006/09/01(金) 16:16:32
大体、なんでいつもいつもLinux厨がこの板にまぎれてるんだ?
0791名無しさん@お腹いっぱい。2006/09/01(金) 19:42:07
>>790
BSDも大好きだからww
Linuxならできるんじゃないのwww
0792名無しさん@お腹いっぱい。2006/09/05(火) 11:22:04
明後日、うちもBフレッツからフレッツ光プレミアムに移行するんだけど、>780 人柱乙。
これはハマるよな。

>786

フレッツ光プレミアムの PPPoE 仕様はよく知らないけど、

>[nifty] exec: /sbin/ifconfig ng0 125.1.126.223 210.247.16.1 netmask 0xffffffff -link0

↑これやった後で、

>[flets] exec: /sbin/ifconfig ng1 10.183.9.179 210.247.16.1 netmask 0xffffffff -link0
>[flets] exec: command returned 256

↑やっても、リモートIP同じで失敗してるんでは。

マルチセッションで、なんで両方のセッションに同じリモートIP 210.247.16.1 が渡されてるんだろ。
うちのBフレッツ環境のマルチセッションでは、プロバイダ別に違うIPが渡されてるけど。…と思ったら、

|% whois 210.247.16.1
|
|inetnum: 210.247.16.0 - 210.247.16.31
|netname: CHIIKI-IP-NW
|descr: NIPPON TELEGRAPH AND TELEPHONE WEST CORPORATION
|country: JP

プロバイダじゃなくて、NTT西の地域IP網のアドレスですね…。
0793名無しさん@お腹いっぱい。2006/09/05(火) 20:23:11
>>792
そもそも論だが、リモート側のアドレスなんて、P-t-Pなんだから必要ない。
ルーティングに頼るからだめなんじゃないかな。
mpdは
ifconfigとrouteの書式が決め打ちだから、リモート側アドレスが同じだとダメなんだな。

さて、
mpd.confの
set iface up-script /usr/local/etc/mpd/mpd.linkup.nifty
の外部スクリプトは実行されている。

> [nifty] exec: /usr/local/etc/mpd/mpd.linkup.nifty ng0 inet 125.1.126.223 210.247.16.1 example@nifty.com
> [flets] exec: /usr/local/etc/mpd/mpd.linkup.flets ng1 inet 10.183.9.179 210.247.16.1 flets@flets

引数に必要な情報は全てあるんだから、外部スクリプトで頑張れば
なんとかなるかもしれんのう。

ポイントは
デバイスにアドレスを付けること、
routeコマンドのゲートウェイ指定をmanをよく読んでなんとかすること。
インタフェースが point to point 接続の場合、インタフェースをその名前で指定でき ます。
って書いてあるけど、ちゃんと動くのかな?

まあ、頑張れ。

ん?俺?NTT東エリアなんだよwww
0794名無しさん@お腹いっぱい。2006/09/06(水) 00:16:42
なんとも不思議なネットワークだな。
fletsスクエアへのPPPoE接続なくてもそのままつながりそうな気がするのは俺だけ?
07957922006/09/06(水) 13:51:18
>793
その手で回避できると思うけど、
mpd で ifconfig とか route コマンド叩いてるところを、
根本的にリモートIP使わないようにしたほうがいいような気がしてきた。

ちと試しにやってみます。というか、やらないとうちも明日からマルチセッション張れなくなるw

>794
不思議っていうか、頭悪すぎのネットワークだと思う。
身内(OCN)から突き上げ食らう糞仕様ってどうよ?
NTT東がうらやましい。
0796名無しさん@お腹いっぱい。2006/09/06(水) 14:19:29
point-to-point なインタフェースって、ifconfig でアドレス付けるときは
両端のアドレスが必要っぽいから、むしろ ng0 と ng1 にアドレス付けずに
routing でがんばるほうがよさそうな気が……

いずれにしても、両方のリンク確立できたら、今度は policy routing の
ルール書かないといけなそうだなあ。
0797名無しさん@お腹いっぱい。2006/09/06(水) 16:50:56
>>792=795

ウチも光プレミアムに乗り換えてハマってる。
対処報告期待してるよ。
0798 ◆adkvDzVRv6 2006/09/06(水) 20:05:11
イーサーネットの口が1つある、店で買った普通のウィンドーズマシンで
BBルータを作りたいです。(もちろんBSD入れて)
 
自分が思うに、あともう1枚NICをつけて、スイッチングハブを買えば
有線ルータを構築できるのかなと思うのですが。
あと機材は何を用意すればいいのでしょうか?
0799名無しさん@お腹いっぱい。2006/09/06(水) 20:34:40
調べる能力
08007932006/09/06(水) 20:38:51
>>795
mpdのソース見たけど、ふーんな感じ。


OCNに何かいわれたの?

>>796
ifconfigリモートアドレス必須なのかorz
でもng0とng1にアドレスは必要と思う。
考えてみれば、必要の無いリモートアドレスが同じなのが問題なのだから、
違うアドレスを適当に付けちゃえば良いような気がする。
ng0 のリモートは192.168.254.253
ng1 のリモートは192.168.254.254
とか。適当といってもLAN内に無いプライベート空間で。

route設定はデバイス指定でやってみる、と。

あとは、当然ですが、ポリシルーティング設定とDNS設定をどうするか....。

うーん、やっぱり市販ブロードバンドルータは一生懸命やってるんだなぁ。
0801名無しさん@お腹いっぱい。2006/09/06(水) 23:10:56
natでソースアドレス書き換えることになるので、ng[01]にアドレスは不要。
ただし、パケットフィルターのルールからインターフェースアドレスを参照
できないので、アドレスを直接指定する必要がある。
pfは単独ルールだけの削除が出来ないので、ipfの方がこの用途には向いている。

ポリシールーティングは210.247.16.1が頑張るといってるので気にしないでいいでしょ。
08027922006/09/06(水) 23:29:48
うーむ、驚くほどあっさりと mpd 改造できてしまったかもしれない。
明日、フレッツ光プレミアムに移行して問題なければ、patch 公開します。

現状、Bフレッツ環境でリモートIPを一切使わないようにして、↓こんな風に繋がるようになった。
(ifconfig と netstat -nr の抜粋)

|ng0: flags=88c3<UP,BROADCAST,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1438
| inet aaa.bbb.ccc.ddd netmask 0xffffffff broadcast aaa.bbb.ccc.ddd
|ng1: flags=88c3<UP,BROADCAST,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1438
| inet eee.fff.ggg.hhh netmask 0xffffffff broadcast eee.fff.ggg.hhh

|Destination Gateway Flags Refs Use Netif Expire
|default ng0 US 0 16569 ng0
|xx.yy.zz/24 ng1 US 0 0 ng1
0803名無しさん@お腹いっぱい。2006/09/06(水) 23:29:58
>>801
>ポリシールーティングは210.247.16.1が頑張るといってるので気にしないでいいでしょ。
PPPのセッションとしては別なんだから、気にしなくて大丈夫かどうかは、
やってみるまでわからないのでは。
0804名無しさん@お腹いっぱい。2006/09/06(水) 23:39:34
BROADCASTで医院か? POINTOPOINTじゃなくて本当に委員か?
08057922006/09/06(水) 23:49:51
>796
>800
ng_iface には point-to-point mode だけじゃなく broadcast mode もあった (ng_iface(4)参照)ので、
そっちに切り換えるようにしてみたつもり。

>OCNに何かいわれたの?
自分が言われたんじゃなくて、NTT西がOCNから突き上げくらったらしいという話。
PPPoEサポートするようにしたのも、OCNからの文句が大きかったみたいよ。知らんけどw
(PPPoEなしだと、プロバイダから払い出されるグローバルIPをCTU配下のマシンに直接割り振るのが難しくなるので、
IP16/IP8等の固定IPサービスの自由度がかなり下がる)

>804
知らんw

不具合出てから考えるよ。
今のところ、Bフレッツでは incoming も outgoing もどっちも通信できてて不具合なし。
0806名無しさん@お腹いっぱい。2006/09/07(木) 02:21:35
>>805
IP16とかIP8のためのunnumbered接続と思ってたけど違うのかな?
高いメニューには縁がないからわかんないけど。

パッチ頑張ってください。
0807名無しさん@お腹いっぱい。2006/09/07(木) 02:24:17
>>805
NOARPだからBROADCASTでもいいのかもしれないけど、
かなり気持ち悪いですねぇ。
まあ、へんなネットワークだからしょうがないか。
0808名無しさん@お腹いっぱい。2006/09/08(金) 10:57:55
で、結局792氏はうまくいったのかな?
08097922006/09/08(金) 11:38:52
>808
うまくいきました。
現在、PPPoEで3セッション(プロバイダA、プロバイダB、フレッツ・スクウェア)が繋がっています。

patch 捨てておきます。(gzip+b64encode)
>804 >807 のごもっともなご指摘がありますし、不具合があるかもしれませんので、自己責任でどうぞ。

begin-base64 644 patch-mpd-for-Flets-HIKARI-Premium-PPPoE.gz
H4sICEjVAEUAA3BhdGNoLWZvci1GbGV0cy1ISUtBUkktUHJlbWl1bQDlVF1v2jAUfS6/4ipStaRJ
2kCBIrp2MJpSNCAVpdrDNEVp4qQRwUZ20NpN/PddOwHK2mlIfZyVxLJ9v84517FtGwQPT2gSL2l4
HB4zniYHX0kEo+AZoAFOtV2ttWstqDlOvWKa5o65srwjC4Am1NCs2q6fSstmpdMBu15rWE0w5VSt
Q6dTATk4yZec6nbVOJcbqwpUTICTI4yTQ/5IIKU54XEQEsgZPHAWRGEgcpiziMDRiTROY9DHyR2h
0Ugk+oN9GQoWziyYuqPbG8/7YkkjOcb9kT+47vZcv4fbA9d6sfN54nWvet27KW7eD4cWOAZ8lJ9f
hfeQJfqw77uTiQW69u1QfIdD0cZXswBT0mBOLNDeiIfnIueEc8Z1/FJmGAhVxeQ5hQuwq+UyYYgw
YpSo9apiSkKQiX7JBCU/gCLsDwJkOoke9kEPW/R9d+xOBr0d/GPvyh2Mr73XwO2yHVJJ/97dUFrv
NMNp22lgP2ybodGoWy0wi0n2QolVqh5EESdCEAEBjVDylCYvumC5KIELusCjPNYfUyFdkOf0J2Gb
tYF6KHlSSnKf5izQVWn25YIQ7isTVMIGcJ9I2JtHUl8lnnKEzYPu80DMwHmKy4G7WUpnjmZJd4Db
7vQGXXve+HrQx4RFmjQuuuJVfkGy2C9LXBcvJf9rHTLCPysx31fJ+joG0TN8As3WoA2aVtzK0ro4
vCiM8EAp2XROrTMwi0kqeaCBvS300GllTyiCvvQzRhMDsz9mOscbU5gci40SqoAVkEyQdc8e0fnD
MsaUznnB9EZ0qSEebUQv13uKbu4by1bexTXfIXNdLyJhMyxQf1s8TFh0kYywRqVEmnj3U/dlnRgp
IiLHrJt6FHoDLhD/+vcoKT9rnUnKi+n/o/xtpiOSkZy8m+w/ZEUSfgPtP/CXFQcAAA==
====
0810名無しさん@お腹いっぱい。2006/09/08(金) 12:14:25
>>809
ちなみにプロバイダAとBの使い分けってどのようにしているの?
08117972006/09/09(土) 00:30:44
>>809

ウチでもマルチセッション成功しました。サンクス!!
0812名無しさん@お腹いっぱい。2006/09/09(土) 02:33:25
>>809
お疲れさまです。
はまっている人には、スゲーありがたいと思います。

で、
そもそも、P-t-Pでリモートアドレスが重なるとifconfigで失敗するってのは
いかがなものかって思いませんか?
kernelがエラーにしてるのかな?
本質的にはエラーにする必要はないと思う。
ルーティングもP-t-Pならデバイス指定でやるべきだし。
Windowsでは問題ないみたいだし。

mpdがいまいちなのかkernelがいまいちなのか?
08137922006/09/09(土) 12:28:35
>810
外部公開サーバ用の固定IP8と、動的IPで使い分け。

内から外への default route は固定IP8にしてありますが、
特定のネットワークへのアクセスだけ個別に route add して動的IPのほうに振り分け。

>811
おめ。
FreeBSDルータの内側からフレッツ・スクウェアのv6コンテンツにアクセスする設定がわかったら教えてくださいw
(IPv6まで設定してる暇がないので諦めました。ってか、うちの kernel は IPv6 外してある…)

>812
現状の P-t-P インタフェースはIPアドレスベースでルーティングするようになっていて、
ifconfig したとき、自動的にリモートIP宛のルーティング情報をルーティングテーブルに追加します。
そこで ng0 と ng1 で同じリモートIPが割り当てられてしまうと、
ルーティング情報が ng0 と ng1 で重複するので kernel としてはエラーにするしかないです。
(エラーにしないようにしたとしても、ng0 と ng1 のどっちに振り分けて良いのかわからなくなる)

P-t-P インタフェースの ifconfig で、リモートIPの指定を省略できるようにして
省略時はデバイスベースでルーティングするようになれば良いと思いますが…。
そういう意味では kernel がいまいちなのかなぁ。
0814名無しさん@お腹いっぱい。2006/09/09(土) 13:25:19
>>796にも書いてあるけど、ng*をupだけしてアドレスを付けず、ルーティングエントリをインタフェース指定でつっこめってことなんじゃないの?
0815名無しさん@お腹いっぱい。2006/09/09(土) 16:10:17
インターフェースにアドレス振らないでも動く
# ifconfig ng1 inet #the Internet
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1454
# ifconfig ng2 inet #フレッツスクエア
ng2: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1454
# netstat -rn -f inet |grep ng
default ng1 US 0 455 ng1
220.210.194 ng2 US 0 1165 ng2
220.210.195 ng2 US 0 0 ng2
220.210.195.64 ng2 UHS 0 0 ng2
220.210.197 ng2 US 0 0 ng2
220.210.199 ng2 US 0 0 ng2
220.210.199.32 ng2 UHS 0 0 ng2
220.210.199.128 ng2 UHS 0 0 ng2
220.210.199.160 ng2 UHS 0 0 ng2
220.210.199.176 ng2 UHS 0 0 ng2

pfの変換ルールは
nat on ng1 inet from any to any -> <external_addr>
とかしておいてlinkupで
echo "$addr" |pfctl -t external_addr -Tr
注意点はルータ上ではソースアドレスが0.0.0.0になるので、変換ルールも
0.0.0.0を変換するようにしなければいけない。
0816名無しさん@お腹いっぱい。2006/09/13(水) 22:04:47
チラシの裏

6.1-STABLE使っていて、なんか重いプロセス走らせたりすると
たまに↓みたいなエラーが発生して、実際通信が止まる(ttyが詰まる)。
で、ぐぐってみたら他でも似たような現象が起きてるそうで、
/boot/loader.confにdebug.mpsafenet=0を書いて回避出来た。

Sep 11 09:26:21 hoge kernel: em0: watchdog timeout -- resetting
Sep 11 09:26:21 hoge kernel: em0: link state changed to DOWN
Sep 11 09:26:25 hoge kernel: em0: link state changed to UP
Sep 11 09:26:52 hoge kernel: em0: watchdog timeout -- resetting
Sep 11 09:26:52 hoge kernel: em0: link state changed to DOWN
Sep 11 09:26:55 hoge kernel: em0: link state changed to UP
0817名無しさん@お腹いっぱい。2006/09/14(木) 05:44:13
>>816
re(4)で同じようなことが起こっていたので、kernelオプションに、
options DEVICE_POLLING
options HZ=1000
を書いて、ifconfigにpollingをつけてる。
ちょっと前の、6.1-STABLE。

パフォーマンスはどうなのかわからんが、この現象は起こらなくなった。
0818名無しさん@お腹いっぱい。2006/09/14(木) 15:31:25
>>816
なんかこんなcommit logがsys/dev/em/if_em.cにあった。
まだRELENG_6には入ってなさそう。

revision 1.133
date: 2006/08/22 02:32:48; author: yongari; state: Exp; lines: +12 -0
It seems that em(4) misses Tx completion interrupts under certain
conditions. The cause of missing Tx completion interrupts comes from
Tx interrupt moderation mechanism(delayed interrupts) or chipset bug.
If Tx interrupt moderation mechanism is the cause of false watchdog
timeout error we should have to fix all device drivers that have Tx
interrupt moderation capability. We may need more investigation
for this issue. Anyway, the fix is the same for both cases.

This should fix occasional watchdog timeout errors seen on a few
systems.
0819名無しさん@お腹いっぱい。2006/09/14(木) 16:09:08
792氏のpatchのおかげで光プレミアムにおけるマルチセッションにも
対応できるようになったが、792氏がいうとおり,v6コンテンツは
どうすべかねぇ。

巷の市販ルータには「v6ブリッジ機能」なるものが実装されているらしいが、
これはBSDでいうところのなんだろう?
08207922006/09/14(木) 17:49:21
>819
全く役に立たない情報ですが…

偉い人から聞いた話だと、CTU は DHCPv6-PD を喋ってるらしいので、
WAN側インタフェースに v6 のアドレスを割り振りたいときは ports/net/dhcp6 を使うのかなと。

CTU側に繋がるWAN側インタフェースと、Windows端末側に繋がるLAN側インタフェースの間で、
IPv6 をパススルーできるブリッジを組めるかどうかは、やったことがないので全くわかりません。
(netgraph の bridge とかで組めないのかな?)

あと、プロバイダとフレッツ・スクウェアのマルチセッションを組む場合、
FreeBSD 上で両方の名前を解決できる named を動かすというのが一般的だと思いますが、
フレッツ・スクウェアの IPv6 アドレスも解決できるように設定しないといけないかと。
(どうすりゃいいんだ?)

以上が解決すれば、速度測定サイトが FreeBSD ルータの内部からも利用できるようになるかな…?

しかし最大の問題は、v6コンテンツの動画配信は MLDv2 (IPv6 のマルチキャスト) を使って配信されているらしく、
これを FreeBSD 上でリレーするかプロキシするかしないといけないようです。
(さっぱりわからん…)
0821名無しさん@お腹いっぱい。2006/09/14(木) 21:45:49
>820
v6うんぬんはともかくとして、速度測定サイトはv4オンリーでいけるよ。
うちではISP、Fletsスクウェア、速度測定サイトの3本のセッションを
同時に張ってる。
08227922006/09/20(水) 21:41:46
>821
あ、v4オンリーでいけるんですね。(てっきり、速度測定のサーバがv6ネットワークにあるものと)

FreeBSD 上で動かしている named の設定で、
*.fletsnet.com の DNS 順引きを CTU (192.168.24.1) に forward することで、
fletsnet.com ドメインの名前解決もできるようになって、
FreeBSDルータの内部から

ttp://www.speedtest.fletsnet.com/

で速度測定できるようになりました。
0823名無しさん@お腹いっぱい。2006/09/24(日) 13:50:02
mpd4は全然ダメだね。
libpdelがpthread使うのに、mpd本体はマルチスレッドを
全然考慮していないからまともに動くはずが無い。
0824名無しさん@お腹いっぱい。2006/09/24(日) 21:25:42
自分でhackできないんだったら素直にmpd3使えばええやん
0825名無しさん@お腹いっぱい。2006/09/24(日) 22:58:51
ここに書いとけば、無駄に格闘するのが1人くらいは減るだろ。
08267922006/10/10(火) 01:02:48
>819
その後、「ひかり電話」とv6コンテンツもOKになりました。
「ガンダムonフレッツ」の動画も見られるようになり、CTU設定もできるようになりました。
一筋縄ではいきませんでしたが。疲れた。

自分が >820 で書いたことはあまり正確ではなかったようです。スルーしてください。

>巷の市販ルータには「v6ブリッジ機能」なるものが実装されているらしいが、
>これはBSDでいうところのなんだろう?

FreeBSD の kernel で INET6 を有効にし(自分はこれまで無効にしてた)、
network interface のCTU側とLAN側を、if_bridge(4) でブリッジすることで、うまくいきました。

注意事項:
・CTU上で動作するDHCPサーバ機能はOFFにすべきではない。(特に「ひかり電話」利用時は必須)
・CTU配下のネットワークは 192.168.24.0/24 なので、ブリッジするFreeBSDの LAN側IPアドレスにも 192.168.24.x を割り当てる
・「ひかり電話」のVoIPアダプタには 192.168.24.2 が割り当てられ、
CTUのDHCPサーバ機能は192.168.24.51〜192.168.24.100を割り当てるので、
FreeBSDが自由に使ってもいいIPアドレスは、192.168.24.101以降か?
・FreeBSDのLAN側インタフェース上で DHCPサーバを動かす場合、CTUのDHCPサーバ機能と衝突するので(ブリッジしているから)
FreeBSDのパケットフィルタリング機能(私はpf(4)を使用)で CTU側とLAN側の間でお互いのDHCPパケットが流れ込まないようにフィルタリング。

あと、必要に応じて >822 の named の設定や、http proxy を動かしている場合は squid + www6to4 の設定なども必要かと。
0827名無しさん@お腹いっぱい。2006/10/12(木) 00:31:30
すみません。
mpdを使ってルータを構築しようとしているのですが、dnsサーバのアドレスを自動取得するためにはどのように設定すればいいのでしょうか?

OSはfreebsd6.1を使っています。
0828名無しさん@お腹いっぱい。2006/10/12(木) 00:39:15
送られてきていれば、upscriptに6,7番目で渡される。
08298272006/10/12(木) 22:30:10
やっぱりDNSキャッシュサーバをたててそのサーバのアドレスをDHCPで配布することにして、プロバイダのDNSサーバを使わないことにしました。
回答ありがとうございました。
0830名無しさん@お腹いっぱい。2006/10/13(金) 06:23:44
>>792

if_bridgeか。なるほど。
でも地域IP網のv6って外に出て行けないんだよね?

うちではfeel6使って家庭内LANをv6 readyにしてるんだけど、
これとNTTのv6コンテンツの両立は無理かな。
08317922006/10/13(金) 14:03:11
>830
外には出ていけません。

どうすれば両立できるんでしょうなぁ…。
せっかく INET6 を有効にしたことだし、OCNのIPv6オプション申し込んで試してみようかな。
0832名無しさん@お腹いっぱい。2006/10/18(水) 17:57:42
pfSense 1.0出てるね。
期待してたMulti SessionがPPPoEではできないくさいのがちょっとなあ。
0833名無しさん@お腹いっぱい。2006/10/20(金) 09:16:35
>>832
これって、FreeBSDにルータをさせる話じゃなくて、
FreeBSDをベースにしたルータ?
0834名無しさん@お腹いっぱい。2006/10/21(土) 13:10:49
>>833
ルータとして使うためにカスタマイズされたFreeBSD6系パッケージというか。
んでPCは専業ルータになる。
0835名無しさん@お腹いっぱい。2006/10/27(金) 18:24:47
pfSence 1.0 RELEASE は -p10になっているのね
ふむふむ
0836エスパー2006/10/27(金) 22:47:53
子路が死んじゃった。。
0837名無しさん@お腹いっぱい。2006/11/10(金) 19:40:48
保守
0838名無しさん@お腹いっぱい。2006/11/14(火) 13:02:51
どうせならあげれば?
mpdっていいね
0839名無しさん@お腹いっぱい。2006/11/18(土) 02:46:36
661 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2006/11/17(金) 10:42:31
>>659-660
書き方が拙くてすみません。という訳で補足。

Bフレなら2セッション使えて、mpdもマルチセッションに対応してる事から
BBExciteとso-netの両方と契約して

鯖 (FreeBSD 6.xR)

em0
└ ng0---->BBExcyte (210.x.x.x)
└ ng1---->so-net (224.x.x.x)

て感じで構築した上で、ipnatで上記の設定を行う事で、外から 210.x.x.x:443
に繋いだときはhttps、224.x.x.x:443に繋いだときはstone経由でssh、という
事が出来ないカナと思ったのです。まあ、場合によっては

鯖 (FreeBSD 6.xR)

└ em0 ─ ng0---->BBExcyte (210.x.x.x)
└ em1 ─ ng1---->so-net (224.x.x.x)

になるかも知れませんが、別に最初の構築案で問題ないかと思ってます。


あっちのスレにあった話題。
思ったんだが、これってルーティングはどうなンの?
入ってくる分にはいいとして、出て行く時にng1に投げるかng0に投げるか判断
つかない気がするんだけど?
0840名無しさん@お腹いっぱい。2006/11/18(土) 10:05:04
普通のルーティングだけではだめだね。
ipnatはあまり深く使ったことがないので知らないけど、
pfならreply-toでコントロールできる。

元のスレを読んだけど、入ってくる方、
単にインタフェースごとにbindするものを変えるだけの話じゃないの。
0841名無しさん@お腹いっぱい。2006/11/20(月) 00:12:55
>>840
>>単にインタフェースごとにbindするものを変えるだけの話じゃないの。

普通にやってそんなまね出来るの?
0842名無しさん@お腹いっぱい。2006/11/20(月) 11:24:17
>>841
とりあえず、bind時点でIPも指定しておけば、
複数IPで同じポートを別のfd割り付けは出来た。
なので、後はhttps鯖とstone鯖がbind時にIP指定
出来るか次第ぽ。

pfでのやり方は、てっきりrdrで別ポートで
動かした2つの鯖に飛ばすもんかと思ったよ。
reply-toとかいう物、お勉強しないと。
■ このスレッドは過去ログ倉庫に格納されています