Vyatta でインターリンクの ZOOT NEXT IP4

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 を想定しています。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です