[FreeBSD-users-jp 96714] Re: 「v6プラス 固定IPサービス」でのIPIPトンネルの設定の仕方

tomocha tomo-ml @ gyojya.jp
2021年 3月 9日 (火) 10:47:00 UTC


tomocha です。

渡邊さんより個別に連絡を貰って、助け船を出していたのですが、
MLで直接やった方がよさそうなので、こちらに投稿させていただき
ます。

まず、前提条件として、

 - Transix 固定IPサービス (Interlinほか)
 - JPNE v6プラス(kamomeほか、etc...)固定IPサービス
 - v6connect 固定IPサービス

いずれも、MAPでもDS-Liteでもなく、純粋にLightweigt
4over6(RFC7596)を使われた物だと思います。これは、IPIP tunnel
の応用です。すなわち、DS-Liteとは異なり、NATはCPE側(=この場
合はFreeBSD側)で行う必要があります。

参考にですが、Softbankはこれに近いけど、MAPベースだったかな?
でポートの共有はしていません(v6方面で出された6rd/4rdの資料は
トライアルの時代のものなので、現在の実装とは異なります。)。

その為、FreeBSDでもLinuxでもMacでも、固定IPサービスは簡単に
動きます。

なお、以前検証した際には、とある大手ベンダー機器の
Lightweight 4o6で、policyを定義して、1:1で通信、tunnelで動
作するのを確認しています。なお、Mac, Linux, FreeBSD 13 RC1で
も動作しました。v6プラスも実環境で固定IPについては動作確認し
ています。

> 1. IPv6プレフィックス          :  aaaa : bbbb :cccc : dddd : eeee : ffff : gggg : hhhh / 56
> 2. IPv4アドレス                     :  192. 168. 100. 119 / 32
> 3. インターフェースID           :  iiiii : jjjjj : kkkk : llll
> 4. Border Relay アドレス    :  mmmm : nnnn : oooo : pp :: 65

基本的には、IPIP tunnel は、Prefix + InterfaceIDを付与された
決められたアドレス と BR(AFTR endpoint) が固定で決め打ちさ
れた1対1のIPトンネルです。

ただ、NGNのアドレスは固定が保証されているわけではなく、非固
定若しくは半固定といわれています。

その為、NTTのNGNメンテナンス、統廃合、機器更改(リプレース)な
どで、prefixが変わる可能性があるため、それを追尾するため、DDNS
など、BR装置のpolicyを更新するための手法が用意されています。
(NEC IXルータなどのサイトに設定事例があるので、その辺から推
測可能です)
https://jpn.nec.com/univerge/ix/Support/ipv6/v6plus-staic/ver9.7.html

登録情報と、実際に割り当てられたprefixに違いがなければDDNSの
処理はスキップ出来る物と思われます。
とはいえ、ここの挙動は確認していませんが、開通処理にDDNSで接
続することが要件になっているか、そこの仕様については、知らな
いので、個別に試してみてください。

この当たりの前提条件を元に、NGNでは2種類の回線があります。
一般的には

 ネクスト系
   ひかり電話有りDHCPv6 PD ... /56
     NGN側のgateway ::ffee
   ひかり電話無し RA ... /64
     NGN側のgateway ::fffe

 クロス系
   ひかり電話未提供
   DHCPv6 PD /56
     NGN側のgateway ::ffee でいいかな?


となります。
上記の登録通知から、ひかり電話あり 若しくは、フレッツ光クロ
スであると考えられます。

すなわち、FreeBSD で 直接ONUの口に直接刺している物と考えられ
ますが、この場合は、DHCPv6(prefix delegation)により、まずは
NGNからprefixを受け取る必要があります。

このあたりは、hiroo さんが記載されているとおりです。
FreeBSD + IPoE での参考事例があまりないようですが、PPPoEv6
の情報がいくつか参考になるかと思います。その辺もあわせて探し
てみてください。interfaceがpppoeではなく、物理interfaceに読
み替えれば良いかと。

https://www.soum.co.jp/misc/flets-ipv6-pppoe/1/

渡邊さんは、v6の方で色々と勘違いされているようですが、

> 1. IPv6プレフィックス          :  aaaa : bbbb :cccc : dddd : eeee : ffff : gggg : hhhh / 56
> 2. IPv4アドレス                     :  192. 168. 100. 119 / 32
> 3. インターフェースID           :  iiiii : jjjjj : kkkk : llll

1. のprefix では、この表記はあり得ません。
通常では、2001:db8::/32 といった形であり、 /56 であれば、
2001:db8:aaaa:bb00::/56 のようになるかと思います。
JPNEだと、240b:250:xxxx:xxx::/56 でしょうか。
interface ID の数がおかしいですが、prefix+interface id を組
み合わせると、

240b:250:aaaa:bb00:iiii:jjjj:kkkk:llll/64 になるのが正解です。

これを、ixl0 に addressを付けてください。

 # 別に、net.inet6.ip6.forwarding=1 を有効にして、prefixは、
 ixl0に付与、v6 addressを別のinterfaceに付けても良いです。

NGNのgatewayは、::ffee で良いはずですが、
  ping6 ff02::1%<interface>

で探してみてください。
そうすれば、外部とIPv6 で疎通が取れるはずです。

# わが家、 /56 の DHCPv6-PD環境がないので、
# これ以上は説明厳しいデス。

あとは、IPv6そのものの疎通が正しく取れれば、

root @ freebsd-test1:~ # ifconfig gif1000 create inet6 tunnel 240b:250:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx \
                       2001:db8:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx up
root @ freebsd-test1:~ # ifconfig lo0 inet xxx.xxx.xxx.xxx netmask 255.255.255.255 alias
root @ freebsd-test1:~ # route add -inet default -interface gif1000

こんな感じで、tunnel はれば、v4の疎通は出来ます。

loopback に グローバルを付与していますが、pf なりで、NAT す
ればLAN側端末から繋がるでしょう。

以上、参考になれば。





   DATE : Mon, 08 Mar 2021 19:25:22 +0900 
Subject : [FreeBSD-users-jp 96712] Re:  「v6プラス 固定IPサービス」でのIPIPトンネルの設定の仕方
   NAME : Hiroo Ono <hiroo @ oikumene.net>  wrote:

> 小野寛生です。
> 
> > 1. IPv6プレフィックス          :  aaaa : bbbb :cccc : dddd : eeee : ffff : gggg : hhhh / 56
> > 2. IPv4アドレス                     :  192. 168. 100. 119 / 32
> > 3. インターフェースID           :  iiiii : jjjjj : kkkk : llll
> > 4. Border Relay アドレス    :  mmmm : nnnn : oooo : pp :: 65
> 
> 1. を見ると IPv6 の prefix長が /56 のようなので、DHCPv6 で取得するのかもしれません。
> dhcp6 パッケージを入れて、
> 
> dhcp6 -dD -i ixl0
> 
> でどういう情報が出てくるか見てください。
> DHCPv6 で設定する場合、
> 
> https://vladvasiliu.com/post/20180827-0922-ipv6_prefix_delegation_freebsd/
> 
> ここが参考になると思います。
> DHCPv6 での設定を行わない場合は rtsol(d) で設定しますが、
> 
> rtsol -DF ixl0
> 
> でOフラグがついているかどうか確認した方がよいでしょう。
> こちらで設定する場合は NAT 以外は
> 
> https://people.allbsd.org/~hrs/FreeBSD/sato-FBSDW20170825.pdf
> 
> に書いてあるようにできると思います。
> 
> _______________________________________________
> freebsd-users-jp @ freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe @ freebsd.org"




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