はじめに
以前記事にしたように、IIJのFiberAccess/NFではIPoEとPPPoEを両方使うことができます。
家庭用ルーターではどちらか片方しか使えないことが多いのですが、IX2105のような業務用ルーターでは同時に使うことができます。
先日(と言っても結構時間が空いてしまいましたが)その設定をしたので、内容を記録しておこうと思います。
sublimer.hatenablog.com
IPoEの設定
NECのドキュメントどおりに設定すれば接続できます。
jpn.nec.com
設定内容は、ひかり電話の契約の有無で微妙に違います。
ひかり電話契約がない場合は、IPv6 RAでIPv6プレフィックスの払い出しが行われます。
一方で、ひかり電話契約がある場合は、DHCPv6-PDで払い出しが行われます。
私は前者に該当するので、IPv6 RAでの設定を行いました。
設定は、基本的にはドキュメントの内容をコピペでOKです。
AFTR-DOMAINNAME
の箇所はgw.transix.jp
としました。
PPPoEの設定
こちらもマニュアル通りに設定するだけでOKです。
特に複雑なことはなく、既存のIPoEのコンフィグに追記する形でOKです。
一部を抜粋すると、
ppp profile gigaethernet0.1 authentication myname <username> authentication password <username> <password>
こんな感じでPPPのアカウント設定を書き、
interface GigaEthernet0.1 description IIJ encapsulation pppoe auto-connect ppp binding gigaethernet0.1 ip address ipcp ip mtu 1454 ip tcp adjust-mss auto ip napt enable no shutdown
こんな感じでPPPoEのセッションを張るように設定してあげればOKです。
セグメントごとにIPoEとPPPoEを振り分ける
あくまでも一例ですが、
- 172.16.0.0/24→IPoE
- 172.16.1.0/24→PPPoE
のように振り分けたいときは、以下のように設定します。
Tunnel0.0(IPoE)をデフォルト設定にする
ip route default Tunnel0.0
PPPoEを使いたいセグメントを設定
ip access-list server permit ip src 172.16.1.0/24 dest any
設定したセグメントのみPPPoEを使うように設定
route-map server_route_map permit 10 match ip address access-list server set interface GigaEthernet0.1
余談ですが、コンフィグはかなり長くなるので、VS Codeなどで書いて一気にルーターに流し込むと効率的に設定できます。
IXのコンフィグは、書式がCiscoに似ているので、この拡張機能を入れておくと見やすくなります。
marketplace.visualstudio.com
動作確認
一通り設定すればIPoE、PPPoE両方使えるようになっているはずです。
下記のようなサイトでグローバルIPを調べ、ホスト名(FQDN)の末尾が.shared.user.transix.jp
になっていれば、IPoE経由でインターネットに接続できています。
一方、末尾が.iij4u.or.jp
のようになっていれば、PPPoE経由でインターネットに接続していることになります。
www.cman.jp
今後の作業
これらの設定をしたところ、以前はできていたインターネットからルーターに対してのpingに応答ができなくなってしまいました。
原因調査をしっかりしたわけではないのですが、ip route default
でデフォルトをIPoEにしたのが原因と予想しています。
transixはIPv4 over IPv6にDS-Liteを使っているため、NATはVNE側で行われ、我々は手出しできません。(CGNってやつです)
今回はPPPoEも同時に使えるように設定したので、PPPoEのグローバルIPアドレスに対してpingを送れば、ルーターまでは到達できます。
しかし、デフォルトがIPoEなので、結果的にPPPoE→ルーター→IPoEの流れでパケットが送られていると考えています。
これはしっかり検証したわけではないのですが、ip route default GigaEthernet0.1
のようにPPPoEをデフォルトとし、今回の設定とは逆にIPoEを使いたいセグメントを指定してあげることで、きちんとpingの応答ができるのではないかと考えています。
これは要検証なので、今後試してみて正常に動作したら本記事に追記したいと思います。
7/3追記
pingが通らない件ですが、PPPoE経由で来たpingのICMPパケットがIPoE経由で返されていることが原因でした。
logging subsystem icmp debug
で詳細なログを出力するようにしたところ、ICMPパケットが到達していることは確認できました。
jpn.nec.com
この時点で、インターネット→ルーターの経路上は問題がなく、ルーター→インターネットのどこかに原因があることが分かりました。
仮設を検証すべく、以下のように設定を変更しました。
ip route default GigaEthernet0.1 route-map server_route_map deny 10 match ip address access-list server set interface Tunnel0.0
デフォルトをPPPoEとし、サーバーのセグメントにマッチしない場合はIPoE経由にする設定です。
その結果、無事にpingの応答が返るようになりました。
どうやら、route-mapの条件判定にルーター自身から送出されるパケットは引っかからないようです。