« routerをSRT100からLinux PCサーバに入れ替えたよ | ホーム | LinuxルータでOCN IPv6設定をやったよ 〜その1 xl2tpdの巻〜 »
2010年4月 7日
routerをSRT100からLinux PCサーバに入れ替えたよ その2
さて。どんな設定したかって話なんですが、びっくりするくらいあっさりしてた。いい世の中になったものですな。
sysctl: ip_forward
/etc/sysctl.confに以下の設定を有効化。IPv6まわりの設定はまだこれからですけど、一応含めました。
net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 net.ipv6.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_ra = 0
iptables(firewall+NAT)
一番戸惑ったのはiptablesをどこで設定するのかというところ。前に見た時は/etc/init.d/iptablesとか何とかあったと思ったんですが、lenny以降は無くなったみたいですね。というわけでこちらに倣って/etc/network/if-pre-up.d/iptablesにスクリプトを置いてみました。えいやで作ったので甘いかもしんないですがとりあえずINPUTとFORWARDはDROPにしとかなきゃだぜぜぜ。
#!/bin/sh IPTABLES='/sbin/iptables' LOCAL_IF=eth0 LOCALNET='x.x.x.x/yy' ########## # initialize $IPTABLES -F $IPTABLES -X $IPTABLES -Z $IPTABLES -t nat -F POSTROUTING $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT ACCEPT ########## $IPTABLES -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED $IPTABLES -A INPUT -j ACCEPT -i lo $IPTABLES -A INPUT -j ACCEPT -s $LOCALNET $IPTABLES -A INPUT -j ACCEPT -p tcp --dport 1723 $IPTABLES -A INPUT -j ACCEPT -p 47 $IPTABLES -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED ########## $IPTABLES -N outer_local ########## $IPTABLES -N local_outer $IPTABLES -A local_outer -j ACCEPT -s $LOCALNET ########## # nat $IPTABLES -t nat -A POSTROUTING -j MASQUERADE -s $LOCALNET -o ! $LOCAL_IF ########## # main table $IPTABLES -A FORWARD -j outer_local -i ! $LOCAL_IF -o $LOCAL_IF $IPTABLES -A FORWARD -j local_outer -i $LOCAL_IF $IPTABLES -A INPUT -j outer_local -i ! $LOCAL_IF
PPPoE周り
pppoeconfっていうパッケージがあるみたいで、これを使ったら本当にあっけなく設定できたんですけど、Bフレッツのマルチセッションを使ってたので結局自分でファイルをいじるしかなかったみたいです。
というわけで、BフレッツONUをeth1側に繋げたことを確認しつつ、まずはデフォルトセッション側に"defaultroute"を付けて。(/etc/ppp/peers/session1)
noipdefault defaultroute hide-password lcp-echo-interval 20 lcp-echo-failure 3 connect /bin/true noauth persist mtu 1492 noaccomp default-asyncmap plugin rp-pppoe.so eth1 user "aaa@bbb" usepeerdns
デフォルトじゃない側では"nodefaultroute"として"usepeerdns"を付けずに、また"noproxyarp"も指定。(/etc/ppp/peers/session2)
noipdefault nodefaultroute noproxyarp hide-password lcp-echo-interval 20 lcp-echo-failure 3 connect /bin/true noauth persist mtu 1492 noaccomp default-asyncmap plugin rp-pppoe.so eth1 user "xxx@yyy"
さらに/etc/ppp/chap-secretsおよび/etc/ppp/pap-secretsに次のようにパスワードを設定。どっちも同じ書式でいいのね。
"aaa@bbb" * "ccc" "xxx@yyy" * "zzz"
あとはこれを自動接続にするように、/etc/network/interfacesに追記。
allow-hotplug eth1 iface eth1 inet static auto ppp0 iface ppp0 inet ppp pre-up /sbin/ifconfig eth1 up provider session1 auto ppp1 iface ppp1 inet ppp pre-up /sbin/ifconfig eth1 up provider session2
で、マルチセッションというからには、destinationによって振り分けてroutingをちゃんと指定しておきたいよね、と。最初/etc/network/interfacesのppp1にup/down行を追加してみたんですが、うまくいかなかったです。代わりに/etc/ppp/ip-up.d/routeというスクリプトを置いてchmod +xしました。
#!/bin/sh if [ "x$PPP_IFACE" = "xppp1" ]; then ip route add a.a.a.a dev $PPP_IFACE ip route add b.b.b.b dev $PPP_IFACE fi
他には...
BINDとかIPv6の設定分とかは次回に続く。
トラックバック(0)
トラックバックURL: http://foursics.jp/cgi-bin/mt/mt-tb.cgi/287
コメントする