[FreeBSD-users-jp 95612] Re: IPF+IPNAT+MPD5の設定で通信が途切れる

KIRIYAMA Kazuhiko kiri @ kx.openedu.org
2015年 10月 3日 (土) 12:53:10 UTC


At Sat, 03 Oct 2015 17:26:07 +0900,
centrum at snow.plala.or.jp wrote:
> 
> 粟飯原と申します。
> ここに質問を投げるのは久し振りなので緊張してます
> 
> 昨日からFreebsd10.2-REALEASE-p4を
> インストールしたマシンで
> IPF+IPNAT+mpd5を組み合わせて
> ルーター機をセッティングしています。
> 
> イメージとしてはこのルーター機が
> ゲートウェイになっており、
> 下位にWebサーバが1つだけ
> ぶら下がっている構成です。
> ※イーサネットハブが間に入ってて、それが原因かと思い
> 取り外して直接マシン同士繋いでいますが
> 変化が見られませんでした。
> 
> 
> NICはIntelR PRO/1000 PT DualPortを
> 使用してem0をLAN側に、em1をmpd5を
> 使用してpppoeを喋らせて、ng0として
> 機能させています。
> 
> ルーティングもIPFilterの設定も
> 何度も見直したのですが、とうとう自分で
> 解決出来ない雰囲気が出てきたので
> 諸先輩方に解決のヒントでも頂ければと思い
> メールを出させて頂きました。
> 
> 
> 症状としては、現状ではWebの閲覧も
> メールの送受信も問題ありませんので
> ルーティングもスムーズに行われていると
> 認識していたのですが、ふとした拍子に
> メール送信時にタイムアウトが頻繁に発生したり、
> webが表示されなくなったりしています。
> 
> webに関してはリロードを繰り返すと
> 正常に表示されるようになり、
> メールについてはしぶとく中断と受信を
> 繰り返すと受信出来たりします。
> 
> 特に5アカウントほどのメールを一気に受信する
> とほぼ3個目のアカウントぐらいでタイムアウトし、
> 停止したアカウントに問題があるのかと思い
> 単独で送受信させると、アッサリ受信出来たり。
> 
> なにが何やら頭が混乱してきますw
> 
> 
> コンソールでipmon -a としてリダイレクト等の
> NAT処理に問題でもあるのかと眺めていましたが
> 問題となるような事も発見出来ずです。
> 
> 
> このルーター機は古いルーター機の
> 代替機として準備した物で、設定などは
> ほぼ旧機の設定を丸コピーしてあります。
> 
> 
> パケットが途中で破棄されている様な
> そんな感じかなと自分では思っているのですが。。。
> 
> 
> 
> 以下rc.confの内容です。
> 
> ////////////////////////////////
> 
> hostname="+++++.-----.jp"
> keymap="jp.106.kbd"
> ifconfig_em1="UP"
> gateway_enable="YES"
> 
> ifconfig_em1="mtu 1492"
> ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0 mtu 1492"
> 
> natd_enable="NO"
> 
> ntpd_enable="YES"
> ntpd_config="/etc/ntp/ntp.conf"
> dumpdev="AUTO"
> 
> ipnat_enable="YES"
> ipnat_rules="/etc/ipnat.rules"
> firewall_enable="YES"
> firewall_type="OPEN"
> ipfilter_enable="YES"
> ipfilter_rules="/etc/ipf.rules"
> ipfilter_flags=""
> 
> mpd_enable="YES"
> 
> ipmon_enable="YES"
> ipmon_flags="-D /var/log/ipf.log"
> portmap_enable="no"
> 
> sendmail_enable="NONE"
> sendmail_submit_enable="NO"
> sendmail_outbound_enable="NO"
> sendmail_msp_queue_enable="NO"
> 
> webmin_enable="YES"
> inetd_enable="YES"
> 
> //////////////////////////////////
> 
> 以下ipnat.rulesの内容です
> 
> map ng0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp mssclamp 1414
> map ng0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto mssclamp 1414
> map ng0 192.168.1.0/24 -> 0/32 mssclamp 1414
> 
> rdr ng0 0.0.0.0/0 port 80 -> 192.168.1.3 port 80 tcp
> rdr ng0 0.0.0.0/0 port 110 -> 192.168.1.3 port 110 tcp
> rdr ng0 0.0.0.0/0 port 587 -> 192.168.1.3 port 25 tcp
> rdr ng0 0.0.0.0/0 port 21 -> 192.168.1.3 port 21 tcp
> rdr ng0 0.0.0.0/0 port 50022 -> 192.168.1.3 port 50022 tcp
> rdr ng0 0.0.0.0/0 port 10000 -> 192.168.1.3 port 10000 tcp
> rdr ng0 0.0.0.0/0 port 143 -> 192.168.1.3 port 143 tcp
> 
> //////////////////////////////////
> 
> 
> 因みに、IPFilterの内容もIn/Out全て
> passする設定にしても変化がありません。
> 
> 途中で通信が途切れるような感じです。
> 
> 
> 宜しくお願いします。
> 
> 
> 粟飯原
> _______________________________________________
> freebsd-users-jp at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe at freebsd.org"
> 

昔,mpd5 を使ってたとき,{ipfw_nat,pf}+mpd でうまくいかなかっ
たので mpd の nat に切り替えたことがありました.随分前(9.1-*)
なのでアレですが,/usr/local/etc/mpd5/mpd.conf で

startup:
	set user admin * *
	set console self 127.0.0.1 5005
	set console open
	set web self 0.0.0.0 5006
	set web open

default:
	load pppoe

pppoe:
	create bundle static B1
	set iface route default
	set ipcp ranges 0.0.0.0/0 0.0.0.0/0
	set iface mtu 1454
	set iface enable tcpmssfix
	set iface enable nat
	set nat enable log
	set nat disable incoming
	set nat enable unreg-only
	set nat red-port tcp	*.*.*.* 25		192.168.1.3  25 
	set nat red-port tcp	*.*.*.* 80		192.168.1.4  80
	set nat red-port tcp	*.*.*.* 21		192.168.1.5  21
	set nat red-port tcp	*.*.*.* *	192.168.1.254 *
	set nat red-port tcp	*.*.*.* *	192.168.1.1   22
	set nat red-port tcp	*.*.*.* *	192.168.1.2   22
	set nat red-port tcp	*.*.*.* *	192.168.1.3   22
	set nat red-port tcp	*.*.*.* *	192.168.1.4   22
	set nat red-port tcp	*.*.*.* *	192.168.1.5   22
	set nat red-port tcp	*.*.*.* *	192.168.1.7   *
	create link static L1 pppoe
	set link action bundle B1
	set auth authname "*@*.*.*.*"
	set link max-redial 0
	set link mtu 1454
	set link mru 1454
	set link keep-alive 10 60
	set link no acfcomp protocomp
	set link accept chap
	set pppoe iface em0
	set link enable incoming
	set pppoe service ""
	log
	open

とかすればとりあえず nat できると思います(`*' はサイト固有の
情報です).ただ,ng_* を追加ロードしないといけませんが,私は
面倒なので

--- /usr/local/etc/rc.d/mpd5.org	2014-03-18 22:15:39.000000000 +0900
+++ /usr/local/etc/rc.d/mpd5	2014-10-05 22:31:04.000000000 +0900
@@ -28,6 +28,7 @@
 pidfile="/var/run/${name}.pid"
 command="/usr/local/sbin/${name}"
 required_files="/usr/local/etc/${name}/mpd.conf"
+required_modules="netgraph ng_socket ng_iface ng_ppp ng_bpf ng_vjc ng_pppoe ng_ether ng_nat"
 
 case "${mpd_flags}" in
 *-p\ *)

してました.

---
KIRIYAMA Kazuhiko


freebsd-users-jp メーリングリストの案内