11月になりました。今年も残すところあと2か月ですが、月初めということはインターリンクの無料体験期間を最大限に使えるということです!(笑)ということで、ためしに ZOOT NEXT の IP4 を契約してみました。
無料体験・即日ID発行のプロバイダ インターリンク
さてこの IP4 は、使い方としてはどうやら Static NAT して使ってあげるのが良いみたいですが、はたして Vyatta でうまくできるのか謎でした。結論から言うと、たぶんできています。
まず条件としては、既存の ISP は今まで通り IP マスカレードを用いて通常のインターネット接続に使用する。そして新たに配布された IP4 はそれぞれ内部の IP アドレスと 1:1 で対応させる。すなわち、固定 IP アドレスで通信しない(既存の ISP を使う)マシンが固定 IP アドレスで通信することは絶対になく、また固定 IP で通信するマシンは既存の ISP や他の固定 IP アドレスで通信することは絶対にない、という状態です。
で、とりあえず Vyatta に設定。まずは PPPoE から。
pppoe 0 { default-route auto name-server auto password PASSWORD user-id USERID@a.example.com } pppoe 1 { default-route none name-server auto password PASSWORD user-id USERID@b.example.com }
pppoe0 が既存 ISP 、 pppoe1 がインターリンクを想定しています。次に NAT です。
rule 11 { destination { address A.B.C.0 } inbound-interface pppoe1 inside-address { address X.Y.Z.12 } type destination } rule 12 { outbound-interface pppoe1 outside-address { address A.B.C.0 } source { address X.Y.Z.12 } type source } rule 13 { destination { address A.B.C.1 } inbound-interface pppoe1 inside-address { address X.Y.Z.13 } type destination } rule 14 { outbound-interface pppoe1 outside-address { address A.B.C.1 } source { address X.Y.Z.13 } type source } rule 15 { destination { address A.B.C.2 } inbound-interface pppoe1 inside-address { address X.Y.Z.14 } type destination } rule 16 { outbound-interface pppoe1 outside-address { address A.B.C.2 } source { address X.Y.Z.14 } type source } rule 17 { destination { address A.B.C.3 } inbound-interface pppoe1 inside-address { address X.Y.Z.15 } type destination } rule 18 { outbound-interface pppoe1 outside-address { address A.B.C.3 } source { address X.Y.Z.15 } type source } rule 1000 { outbound-interface pppoe0 type masquerade }
こんな感じです。状態としては、インターリンクから示された固定 IP アドレスが A.B.C.0 から A.B.C.3 までの4つで、それらをそれぞれ X.Y.Z.12 から X.Y.Z.15 の4つのプライベート IP アドレスに割り当てます。なぜこの4つのプライベート IP アドレスなのかというと、 X.Y.Z.11 に既存のサーバがあったからというだけですが、後々役立ちました(笑)。
後々・・・ってあるってことはここで終わりじゃないのですが、とりあえず、外から固定 IP へアクセスし NAT が正常に作動しているのは確認できました。しかし、内部から発生した通信は全て既存の ISP を通っていきます。これはなんだかなぁって感じなので、どうにかしなければいけません。結局、以下のファイルを追加で落ち着きました。
/etc/ppp/ip-up.d/staticip-route
#!/bin/sh ip rule add from X.Y.Z.12/30 table 1 prio 10000 ip route add table 1 I.J.K.0/24 via I.J.K.1 ip route add table 1 default via $PPP_REMOTE
/etc/ppp/ip-down.d/staticip-route
#!/bin/sh ip route del table 1 ip rule del table 1
これで、うまくパケットが流れていくはずです。なんと固定 IP 用のプライベート IP アドレスを X.Y.Z.12 から当てたおかげで、 /30 を付けるだけで万事OKです!(笑)ちなみに、 ip route add table 1 I.J.K.0/24 via I.J.K.1 は我が家のネットワークは DMZ(X.Y.Z.0/24) と内部ネットワーク (I.J.K.0/24) を分けているため、こうしないと内部ネットワークから DMZ にある固定 IP 用のマシンとの通信ができなくなるためです。
これで快適なインタリンク ZOOT NEXT IP4 生活ができるはずです!ではでは。
追記(’10/5/8)
上の設定ファイルでは、今回のように pppoe が 2 つ以上ある場合におかしくなってしまうので、若干変更しました。
/etc/ppp/ip-up.d/staticip-route
#!/bin/sh if [ "$PPP_IFACE" = "pppoe1" ]; then ip rule add from X.Y.Z.12/30 table 11 prio 10000 ip route add table 11 I.J.K.0/24 via I.J.K.1 ip route add table 11 default via $PPP_REMOTE fi
/etc/ppp/ip-down.d/staticip-route
#!/bin/sh if [ "$PPP_IFACE" = "pppoe1" ]; then ip route del table 11 ip rule del table 11 fi
これは pppoe1 が interlink を想定しています。