前書き
今回はIPv6-Mostly Networkに挑戦します。
それ何ぞやと言う方は参考サイト様をご覧くださいませ!(丸投げ)
参考サイト様:https://qiita.com/matagawa/items/2d5fb97d6c9201c5fde1#qiita-ipv6-mostly-network-%E3%81%A8%E3%81%AF
さて、私のお家回線はNURO光なので、ONUとルータ機能(笑)が一体化された「NSD-G1000T」という型番のホームゲートウェイ(以降ホムゲ)が置かれています。
ルータ機能(笑)と書いたのは、この機器なぜか経路登録できないんですよね…
スタティックルートすら書けないということは、このホムゲ配下に別のルータを置いてブロードキャストドメインを切っても先のネットワークに到達できないと言うことです。
ルーティング機能がないだけならルータ機能を無効化して配下の自前ルータでRAやDHCPv6を受ければいいだけなのですが、どうやらルータ機能を無効化してブリッジすることもできないようです…
つまり完全に邪魔者です😇
とはいえインバウンドの通信はipv6もフィルタリングしてくれてるのでセキュリティ面は大丈夫だ思います。
ということで、今回の課題は経路情報が書けないホムゲ配下にIPv6-Mostly Networkで好きなネットワークを構築し、疎通性を持たせるところになります。
経路が書けないと言うことはホムゲのブロードキャストドメイン内だけで疎通性を持たせる必要があるので、NATプールに代理応答させた上でネットワークを中継させるしかありません。
先に断っておきますが今回の構成はNATだらけで、登場する機器は少ないにも関わらず経路が少し複雑になっていますので、ダーティハックだということをご承知おきください。
では早速始めましょうか、カオスネットワーキングを😈
環境
まずは環境の説明です。
NURO光 NSD-G1000T
QNAP QSW-M408-2C(1.3.2)
FortiNet FGT-50E(6.2.16)
Cisco ISR-4321(17.12.3 K9 SEC バンドル)
Mac OS(15.0)
構築
今回の構成図はこちらです。

実際のネットワークなのとmodified eui-64を使っているので一部ipv6アドレスは隠してますが、NURO光ではホムゲから/64のプレフィックスが通知されます。
今回はRAでプレフィックスを受け取ってますが、DHCPv6でも受け取れるはずです。
とりあえず、配下に移譲する場合は/65以下で分割することになりますね。
今回はmodified eui-64使う際のデメリットであるセキュリティを担保するためにもグローバルユニキャストアドレス(以後GUA)ではなくユニークローカルアドレス(以後ULA)で構築します。
とはいえ前書きで記載した通りフィルタリングされてるので、あまり神経質になる必要もないと思います。
IPv6-Mostly Networkなので、本来下の三つが共存できる環境を作りますが、今回はDNS64も追加して、CLAT非対応の機器がステートフルNAT64でシングルスタックできるようします。
DNS64の参考サイト様:https://enog.jp/wordpress/wp-content/uploads/2016/10/enog41-sato.pdf
【通常のIPv6-Mostly Network】
・IPv4 シングルスタック(IPv4有効、IPv6非対応)
・デュアルスタック(IPv4有効、IPv6有効、CLAT非対応)
・IPv6 シングルスタック(IPv4ダミーで有効、IPv6有効、 CLAT対応)
【今回】
・IPv4 シングルスタック(IPv4有効、IPv6非対応) ⇨①
・デュアルスタック(IPv4有効、IPv6有効、CLAT非対応) ⇨②
・IPv6 シングルスタック(IPv4無効、IPv6有効、 CLAT非対応) ⇨③
・IPv6 シングルスタック(IPv4ダミーで有効、IPv6有効、 CLAT対応) ⇨④
※後々使うのでナンバリング
ただし③のCLAT非対応のステートフルNAT64によるシングルスタックには注意点として、以下のような通信ができないことがデメリットとして挙げられます。
その時はDNS64の変換を無効にして、IPv4を有効化すればデュアルスタックとして正常に通信できます。
(実はCLATを有効にする場合はDNS64は使うべきでないとIETFには記載されてます。1)
【NAT64全般の欠点】
・FQDN宛でないIPv4アドレス (以後IPv4リテラル)への疎通ができない
・IPv4ソケットしか持たないアプリケーションが利用できない
・システムに設定されたDNSサーバを使わずに、アプリケーション独自のDNSサーバを使う場合にDNS64の回答を受けられないため、疎通できない
・DNSSECによる検査が受けられない
・マルチキャスト非対応
【ステートフルNAT64の欠点】
・ユニキャストがICMP,TCP,UDP以外非対応
ちなみにWindowsはInsider Program含めて2025年4月時点でまだCLAT非対応なのでMacやLinuxを使って検証することになります。2
今回の構成でほとんどの機能はFortigateが担っています。
Source NAT64(以後SNAT)はISR4321(以後ISR)で実施していますが、これはSNAT64をFortigateで実施しないのはFortigate側のSNAT66と干渉してしまうためです。
また後程言及しますがDNAT66を使うにはスタティックでNDテーブルを記載してやる必要があります。
最後に今回の宛先と通信経路のパターンをDNS64が有効な場合、無効な場合で分けて記載します。(×=疎通不可)
【DNS64有効】
①のIPv6 FQDN&リテラル⇨×
①のIPv4 FQDN&リテラル⇨Fortigate経由
③のIPv6 FQDN&リテラル⇨ Fortigate経由
③のIPv4 FQDN⇨ISR経由
③のIPv4 リテラル⇨×
④のIPv6 FQDN&リテラル⇨Fortigate経由
④のIPv4 FQDN&リテラル⇨ISR経由
【DNS64無効】
①のIPv6 FQDN&リテラル⇨×
①のIPv4 FQDN&リテラル⇨Fortigate経由
②のIPv6 FQDN&リテラル⇨Fortigate経由
②のIPv4 FQDN&リテラル⇨Fortigate経由
④のIPv6 FQDN&リテラル⇨Fortigate経由
④のIPv4 FQDN&リテラル⇨ISR経由
ということです前置きが長くなってしまいましたがコンフィグの紹介に移ります。
コンフィグ
★Fortigate
config system virtual-switch
edit "lan"
config port
delete "lan1"
next
end
next
end
config system interface
edit "wan1"
config ipv6
set autoconf enable
end
next
edit "lan1"
set ip 172.16.1.254 255.255.255.0
set allowaccess ping https ssh http
config ipv6
set ip6-address fc00::1/64
set ip6-allowaccess ping https ssh http
end
next
end
config system dns-server
edit "lan1"
set mode forward-only
next
end
config firewall ippool
edit "SNAT44"
set type one-to-one
set startip 192.168.1.151
set endip 192.168.1.200
next
end
config firewall ippool6
edit "DNAT66用SNAT66プール"
set startip fc00::ffff:0:0
set endip fc00::ffff:ffff:ffff
next
end
config firewall vip
edit "DNAT44"
set extip 192.168.1.101-192.168.1.151
set extintf "wan1"
set mappedip "172.16.1.1-172.16.1.51"
next
end
config firewall vip6
edit "DNAT66"
set extip xxxx:xxxx:xxxx:xxxx:ffff:ffff::-xxxx:xxxx:xxxx:xxxx:ffff:ffff:ffff:ffff
set mappedip fc00::be24:11ff:0:0-fc00::be24:11ff:ffff:ffff
next
end
config firewall policy
edit 1
set name "nat44_lan1_to_wan1"
set srcintf "lan1"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set ippool enable
set poolname "SNAT44"
set nat enable
next
edit 2
set name "nat44_wan1_to_lan1"
set srcintf "wan1"
set dstintf "lan1"
set srcaddr "all"
set dstaddr "DNAT44"
set action accept
set schedule "always"
set service "ALL"
next
end
config firewall policy6
edit 1
set name "nat66_lan1_to_wan1"
set srcintf "lan1"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set nat enable
next
edit 2
set name "nat66_wan1_to_lan1"
set srcintf "wan1"
set dstintf "lan1"
set srcaddr "all"
set dstaddr "DNAT66"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set nat enable
set fixedport enable
set ippool enable
set poolname "DNAT66用SNAT66プール"
next
end
config router static
edit 1
set gateway 192.168.1.1
set device "wan1"
next
end
config system nat64
set status enable
set nat64-prefix fd00:ff9b::/96
set always-synthesize-aaaa-record disable
end
※GUAの部分は「xxxx:xxxx:xxxx:xxxx:」で置換していますのでご利用の環境に書き換えてください。また、今回このコンフィグはバックアップコンフィグから必要部分のみを切り出して作成したため、恐れ入りますが抜け漏れがある可能性もありますことご承知おきください。
基本的にGUIのみで設定可能です。
古いバージョンに比べてGUIで操作できる項目が増えましたよね。
CLIでの設定が必要なのは、IPv6のアドレス自動設定である「set autoconf enable」とDNS64のオプション設定である「config system nat64」の3行のみです。(FortiOS7.x台だと前者はGUIで操作できた気がします。)
後者は権威DNSサーバからの回答をDNS64で変換する際にAAAAレコードが含まれている場合も対象にするかどうかの設定で、デフォルトはenableです。
disableにすることでAレコードのみの回答の場合に自身の持つNAT64用のアドレスプールである64:ff9b::/96 (以降WKP)に変換してエンド端末側に回答します。※今回はWKPを使わず、「fd00:ff9b::/96 」を指定して使っています。WKPや指定したプレフィックス二つを総称して以降はPREF64と記載します。
Fortigateでは以下の4つの役割を担っています。
・SNAT44
・SNAT66
・DNAT44
・DNS64
DNS64を使うことでCLAT非対応の機器でIPv6シングルスタックが可能になります。
IPv4 FQDN通信が発生した際にDNSサーバをDNS64実行機器に向けておくことで、DNS64側に名前解決を中継してもらいます。
この時、権威DNSサーバからの回答にAAAAレコードがなく、Aレコードのみの場合にWKPまたは指定したプレフィックスを付け加えてエンド機器に回答します。(set always-synthesize-aaaa-record disableが有効時)
次にSNAT44とSNAT66に関してですが、先ほど記載したいくつかのパターンでFortigate経由で通信させる必要があるため、ホムゲのブロードキャストアドレスへ出る際にSNAT44とSNAT66を実施する必要があります。
SNAT66でアドレスプールを利用せずにインターフェースに割り当てられたIPv6アドレスのみで変換しているのは、FortigateでSNATされたホムゲに送られたパケットが返ってこないからです。
アドレスプールで変換すると変換されるログおよびwan1から送出されるログは確認できるもののパケットが返ってこないように見えています。
ホムゲより先でデバッグしたわけではないので原因を絞り切れないですが、おそらく以下の二つのどちらかかなと思っています。
- ホムゲが持っている/64のプレフィックスの中でもRAで受け取ったプレフィックスしかアウトバウンドに通さない制約がある
- ホムゲが帰りのパケットの宛先になったFortigateのSNAT66プール宛てに対してNSを出さない
とまぁ、理由は深追いしてませんがホスト数が多くなった時に65535ポート上限を気にすること以外は特に問題ないかと思います。
DNAT44はホムゲのブロードキャストドメイン発の172.16.1.0/24宛の通信に到達性を持たせるために実施しています。(宛先ポート番号が重複できるように一対一変換)
最後に問題のDNAT66に関してですが、こちらもDNAT44同様にホムゲのブロードキャストドメインからの疎通目的で有効化するつもりでしたが、FortigateでIPv6のDNAT66設定を入れても、DNATアドレスプールへのNSに対してNAを返してくれず、通信元の機器側でスタティックでNDPエントリを登録する必要がある状況です。
※IPv4ではDNATプールのARPリプライを返すため、不具合か仕様か現地点では不明なものの、以下の三つで同事象を確認
FGT-50E v6.2.16
Fortigate VM v7.4.7(評価版)
Fortigate VM v7.6.3 (評価版) ⇨2025年4月時点最新版
これは運用負荷がかなり高いので、何とか回避しようとVyOSを建ててみたり、ndppdを使ってみたりしましたがどれも失敗に終わっています。
- VyOS→DNAT66を設定したところFortiと同じ事象でNAを返さない。(VyOSでSNATやるとfc00::/64側のセグメントでNAを返してくれるので、NA全般に問題があるのではなさそう)
- SONiC NOS→そもそもNAT66非対応
- ndppd→ndpの応答をするインターフェースを待ち受けるプログラムなので、他の機器のMACアドレスをスタティックで書くことが出来ず、NDPのなりすましができない。(とはいえ、NAを返してくれるかどうかの検証は可能なので、やってみたところfc00::/64側のセグメントでやると成功し、GUA側でやると失敗したのでNA全般に問題があるのではなさそう)
1と3の結果から環境起因な気がしてきましたが、調査に2週間ほど費やしてるのでもう疲れました…🙃
しばらくは送信元にスタティックでNDP登録しようと思います。
★ISR
ipv6 unicast-routing
!
ip dhcp pool ipv4-dhcp-pool
network 172.16.1.0 255.255.255.0
default-router 172.16.1.254
dns-server 172.16.1.254
option 108 hex 00000708
!
ip dhcp excluded-address 172.16.1.1 172.16.1.100
ip dhcp excluded-address 172.16.1.250 172.16.1.255
!
bridge-domain 1
!
bridge-domain 10
!
interface GigabitEthernet0/0/0
no ip address
no shutdown
service instance 1 ethernet
encapsulation untagged
bridge-domain 1
exit
exit
!
interface GigabitEthernet0/0/1
no ip address
no shutdown
service instance 10 ethernet
encapsulation untagged
bridge-domain 10
exit
!
interface bdi 1
ip address 192.168.1.254 255.255.255.0
nat64 enable
no shutdown
!
interface bdi 10
ip address 172.16.1.253 255.255.255.0
ipv6 address fc00::ffff/64
ipv6 enable
nat64 enable
ipv6 nd ra dns server fc00::1
ipv6 nd ra nat64-prefix FD00:FF9B::/96
no shutdown
!
ipv6 access-list acl-allow-nat64
sequence 10 permit ipv6 FC00::/64 any
!
nat64 v4 pool nat64-pool 192.168.1.201 192.168.1.250
nat64 v6v4 list acl-allow-nat64 pool nat64-pool overload
nat64 prefix stateful FD00:FF9B::/96
!
ip route 0.0.0.0 0.0.0.0 192.168.1.1
!
ipv6 route ::/0 fc00::1
!
end
赤字の部分は参考サイト様では誤ったコンフィグになっておりましたので注意が必要です。
ISRでは以下の役割を担っています。
・SNAT64
・RA
・DHCPv6
まずNAT64の流れを記載すると、CiscoではまずPREF64宛の通信を受信するとルーティングテーブルに自動登録されたNAT用の仮想インターフェース(以後NVI)にパケットが送られます。その後ACLによる送信元IPv6アドレスの検査が行われて、一致した場合宛先と送信元がIPv4に変換されます。
今回でいうと宛先がPREF64でかつ送信元がfc00::/64に当てはまる場合はNAT64の対象になり、DstをIPv4(最終宛先)にSrcをIPv4(変換アドレスとして設定したプールアドレス)に変換して送るため、透過型プロキシと似たような動きになります。
そのためDNS64とNAT64はPREF64で紐付けされているイメージですが、異なる機器でも動作するため、今回のようにDNS64はFortigateで設定し、NAT64はISRで実施するように分けることができます。
ただし、エンド端末のIPv6デフォルトルータはNAT64の機器に向ける必要があるため、今回はISRからエンド端末に対してRAを出すことでデフォルトルータがISRを向くようにしています。(CCOを見るとPREF64のルートをエンド機器にアドバタイズするって書いてる気がするけどデフォルトルータに向けないとダメだった気がする…。というかアドバタイズどうやってやるんですか🤔)
またRAオプションでRDNSSとPREF64を有効にしています。
RDNSSはRAの標準ではできなかったDNSサーバの通知を行います。
PREF64を配ることでCLAT対応端末でNAT46を行う際に生成するIPv6プレフィックスを指定することができ、ISR側のNAT64に対応させます。確かFortigate v6.2.15だとRAオプションのPREF64アドバタイズができなかったかと思います。
CLAT対応端末でNAT46を行い、ISRでNAT64を行う2重変換のことを464XLAT3と呼びます。これはもともとIPv4アドレスの節約のために回線事業者などで使われてきた技術です。
ちなみに464XLATの中でNAT64を行う機器のことをCLAT(Customer-side translator)と対になるものとしてPLAT(Provider-side translator)と呼ぶようです。4
ISRにDHCPv4サーバの役割を持たせているのは、Fortigateでは現状DHCPオプション108のアドバタイズができないためです。(DHCPオプション108はIPv6優先)5
CCOのDHCPオプションの記法がわかりずらかったので参考サイトを用意しておきます。
こちらはオプション43のサイトですが記法は他のオプションと共通しているはずです。
疎通確認
今回のメインはCLAT対応の④なのでこちらをメインに確認していこうと思いますが、冒頭で記載した通りCLAT対応の端末は現状Android,iOS,Mac OSなどに限られています。6
何とかLinuxでできないかと思い、有志で作られたTAYGA7とclatd8を使ってみましたが、うまくいきませんでした。
後書きの最後に詰まった個所を記載するので有識者の皆さま、解析よろしくお願いします。(丸投げ)
この解析にも3日くらい費やしてるのでもう疲れました🙃(二度目)
NAT64のツールであるJoolを使ってLinux上でCLATを実装されている方もいらっしゃいますので、紹介させていただきます。
自分はもうMacに逃げました🙄
とは言うものの、実はMacのPCは持っていないのでProxmoxで「にゃ~ん9」なことをしてデプロイしています。
ただツールですんなりデプロイできるのはVenturaまでだったので、Sonoma以降のMac OSをデプロイする場合は、ツールを使わずに手動でデプロイしてください。10
一旦CLATの検証に話を戻して、Macで検証していこうと思います。
まずMacでのifconfigの結果です。

en0インターフェースの下の方にclat46で終わる行がありますが、これがclatによってNAT46が行われた際に送信元になるIPアドレスになります。
次にその一行下がnat64 prefixつまりPREF64でアドバタイズされてきたプレフィックスになります。
これがCLATでNAT46された際の宛先になります。
それでは以下の4つの方法で検証していきます。(DNS64は有効化した状態です)
A: IPv6 FQDN → ping6 google.com
B: IPv6 リテラル → ping6 2001:4860:4860::8888
C: IPv4 FQDN → ping yahoo.co.jp
D: IPv4 リテラル → ping 8.8.8.8
意外かもしれませんが、yahoo.co.jpは現状ipv6対応していないので今回の検証にもってこいです。
【検証結果】
■Macのping結果

■ProxmoxVEのブリッジインターフェースのパケットキャプチャ

■Fortigateのlan1インターフェースのパケットキャプチャ

この結果からわかることとしては、Macからのすべてのicmp通信が成功していることと、AとBがFortigateのlan1インターフェースを通っておりCとDは通っていない、つまりISR経由だということがわかります。
PVEのブリッジインターフェース側のパケットキャプチャにある以下のパケットがyahoo.co.jp宛ての通信になります。
送信元:fc00::8d6:cc63:6bf2:c425(Macのclatインターフェースのアドレス)
宛先:fd00:ff9b::b616:1f7c(PREF64で変換されたアドレス「0xb6=182,0×16=22,0x1f=31,0x7c=124」=182.22.31.124)

以下のパケットが8.8.8.8宛ての通信になります。
送信元:fc00::8d6:cc63:6bf2:c425(Macのclatインターフェースのアドレス)
宛先:fd00:ff9b::808:808(PREF64で変換されたアドレス「0x08=8,0×08=8,0×08=8,0×08=8」=8.8.8.8)

ISRでパケットキャプチャを取るのは構成的に厳しかったので代わりに「show nat64 translations」を取りました。
isr4321#sho nat64 translations
Proto Original IPv4 Translated IPv4
Translated IPv6 Original IPv6
----------------------------------------------------------------------------
icmp 8.8.8.8:18711 [fd00:ff9b::808:808]:18711
192.168.1.201:18711 [fc00::8d6:cc63:6bf2:c425]:18711
icmp 182.22.31.124:18455 [fd00:ff9b::b616:1f7c]:18455
192.168.1.201:18455 [fc00::8d6:cc63:6bf2:c425]:18455
これでIPv4に関してはPREF64に変換されてISR経由で通信していることが分かるかと思います。
ちなみにDNS64が有効化でも無効化でもMacの経路は変わりません。
こちらがDNS64有効化時のMac(CLAT対応端末)のnslookupの結果です。

そしてこちらがDNS64有効化時のWindows11(CLAT非対応端末)のnslookupの結果です。
nslookup yahoo.co.jp
サーバー: UnKnown
Address: fc00::1
権限のない回答:
名前: yahoo.co.jp
Addresses: fd00:ff9b::b74f:f97c
fd00:ff9b::7c53:b97c
fd00:ff9b::b74f:dbfc
fd00:ff9b::b616:187c
fd00:ff9b::7c53:b8fc
fd00:ff9b::7c53:b87c
fd00:ff9b::b616:1f7c
fd00:ff9b::b616:19fc
fd00:ff9b::b616:107b
fd00:ff9b::b74f:db7c
fd00:ff9b::b616:1ffc
fd00:ff9b::7c53:b9fc
fd00:ff9b::b616:18fc
fd00:ff9b::b616:1cfc
fd00:ff9b::b616:10fb
fd00:ff9b::b74f:f9fc
fd00:ff9b::b74f:fafb
fd00:ff9b::b616:197c
182.22.16.251
183.79.219.124
182.22.24.124
182.22.24.252
182.22.25.124
182.22.28.252
182.22.31.124
182.22.31.252
182.22.25.252
124.83.184.252
183.79.249.124
183.79.250.251
182.22.16.123
183.79.219.252
183.79.249.252
124.83.185.124
124.83.185.252
124.83.184.124
同じブロードキャストドメイン内にもかかわらず、DNSの回答内容が異なります。
この謎を解くヒントはDNSのクエリにありそうなので、Fortigateのlan1インターフェースでdnsのパケットをキャプチャしてみました。

MacからのクエリにはAレコードの問い合わせしかありませんが、Window11からのクエリにはAレコードとAAAAレコードがあります。
つまり、MacではIPv6の回答を受け取る余地がないということになりますが、これがCLATの仕様なのかもともとMacの仕様なのかはわかっていません。
まぁ少なくともAレコードの取得に失敗したらAAAAレコードを再度聞きに行く動作になっているのだろうとは思います。
ついでにDHCP108オプションが機能しているかどうかも確認します。
■ProxmoxVEのブリッジインターフェースのパケットキャプチャ


ということで、DHCPディスカバーのあとにオファーがありますが、オプション108の内容を受けてMac側がリクエストを出していないので、うまく動作しているように見えます。
ちなみに、Systemd-NetworkdでもDHCPオプション108に対応でき、デフォルトではOFFになっている以下の項目をtrueにすることで有効化できます。
[DHCPv4]
IPv6OnlyMode=true
どうやらこのコード自体は2年ほど前に日本人が実装したものの、端末側のCLAT対応が追い付いていない状態でリリースすると影響が大きいことを受けてデフォルトは無効に改修されたようです。11
補足が続きますが、現在ホットな話題として3か月前にNetworkManagerでのCLAT対応のプルリクエストが出されています。
海外勢も大喜びです。12
え?Windowsはまだなのかって?やだなー。そんなOSありましたっけ🙄
後書き
本当はMacのCLATで行われている変換の様子を観測できればよかったのですが、少なくともMacのwiresharkでは厳しそうでした。(en0をキャプチャしても表示されない)
それからCiscoのIOS-XEにおけるNAT64 ALGはどうやらFTPのみサポートされているようですね。(一部のアプリケーション層プロトコルではメッセージ内にもIPアドレス情報を持っているため、IPヘッダの書き換えと同時にメッセージ内も書き換えが必要)
他に有名なものとしてはSIPですがこちらは464XLAT前提なんですかね、知らんけど。
今回clatdは上手くいっていませんが、OSSの改修をする人たちには本当に頭が上がりません。
ネットワーク、サーバ、プログラムの知識すべてを持っていなければできない作業なので自分のようなペーペーの無力エンジニアにはまぶしい存在です…
いつかツールを使う側から作る側になれたらと思い、これからも勉強し続けたいと思います!
最後に詰んでしまったclatdの件について記載します。
簡潔に言うと問題個所はわかっていますが、原因はわからないという感じです。
PVE内に作成したvmbr2に接続したubuntuにclatdを入れて検証を実施したところ、clatdは問題なく動き、vmbr2からパケットが送出されているところまで確認できました。
同じブロードキャストドメイン内でもプロミスキャスモードでパケットが見えるのでL2も問題なく転送されているはずです。
にもかかわらずISRにパケットが渡ったあと、NAT64で変換されないという状況です。
■clatdを入れたubuntu(25.04)のclatdのデバッグ結果とip addrコマンドの結果とping 8.8.8.8の結果
root@ubuntu-VM211:~# clatd -d &
Configuration successfully read, dumping it:
clat-dev=clat
clat-v4-addr=192.0.0.1
clat-v6-addr=shared
cmd-ip=ip
cmd-nft=nft
cmd-tayga=tayga
cmd-ufw=ufw
ctmark=<undefined>
debug=1
dns64-servers=<undefined>
forwarding-enable=1
plat-dev=<undefined>
plat-fallback-prefix=<undefined>
plat-prefix=<undefined>
proxynd-enable=<undefined>
quiet=0
route-table=49575
script-down=<undefined>
script-up=<undefined>
tayga-conffile=<undefined>
tayga-v4-addr=192.0.0.2
v4-conncheck-delay=10
v4-conncheck-enable=1
v4-defaultroute-advmss=0
v4-defaultroute-enable=1
v4-defaultroute-metric=2048
v4-defaultroute-mtu=1260
v4-defaultroute-replace=0
Starting clatd v2.0.0 by Tore Anderson <tore@fud.no>
Performing DNS64-based PLAT prefix discovery (cf. RFC 7050)
Looking up 'ipv4only.arpa' using system resolver
check_wka(): Testing to see if fd00:ff9b:0:0:0:0:c000:aa was DNS64-synthesised
Inferred PLAT prefix fd00:ff9b::/96 from AAAA record fd00:ff9b:0:0:0:0:c000:aa
check_wka(): Testing to see if fd00:ff9b:0:0:0:0:c000:ab was DNS64-synthesised
Inferred PLAT prefix fd00:ff9b::/96 from AAAA record fd00:ff9b:0:0:0:0:c000:ab
Using PLAT (NAT64) prefix: fd00:ff9b::/96
get_plat_dev(): finding which network dev faces the PLAT
get_plat_dev(): Found PLAT-facing device: ens18
get_plat_dev(): Found PLAT-facing device source IP: fc00::be24:11ff:fef2:5b32
Device facing the PLAT: ens18
Using CLAT IPv4 address: 192.0.0.1
Using CLAT IPv6 address: fc00::be24:11ff:fef2:5b32
Checking if this system already has IPv4 connectivity in 10 sec(s)
Reading sysctl /proc/sys/net/ipv6/conf/all/forwarding
/proc/sys/net/ipv6/conf/all/forwarding is set to '0'
Enabling IPv6 forwarding
Reading sysctl /proc/sys/net/ipv6/conf/default/accept_ra
/proc/sys/net/ipv6/conf/default/accept_ra is set to '1'
Changing /proc/sys/net/ipv6/conf/default/accept_ra from 1 to 2 to prevent connectivity loss after enabling IPv6 forwarding
Setting sysctl /proc/sys/net/ipv6/conf/default/accept_ra=2
Reading sysctl /proc/sys/net/ipv6/conf/ens18/accept_ra
/proc/sys/net/ipv6/conf/ens18/accept_ra is set to '0'
Reading sysctl /proc/sys/net/ipv6/conf/lo/accept_ra
/proc/sys/net/ipv6/conf/lo/accept_ra is set to '1'
Changing /proc/sys/net/ipv6/conf/lo/accept_ra from 1 to 2 to prevent connectivity loss after enabling IPv6 forwarding
Setting sysctl /proc/sys/net/ipv6/conf/lo/accept_ra=2
Reading sysctl /proc/sys/net/ipv6/conf/nat64/accept_ra
/proc/sys/net/ipv6/conf/nat64/accept_ra is set to '1'
Changing /proc/sys/net/ipv6/conf/nat64/accept_ra from 1 to 2 to prevent connectivity loss after enabling IPv6 forwarding
Setting sysctl /proc/sys/net/ipv6/conf/nat64/accept_ra=2
Setting sysctl /proc/sys/net/ipv6/conf/all/forwarding=1
Increasing prio of default local ip rule to 1
cmd(ip -6 rule add prio 1 table local)
cmd(ip -6 rule del prio 0 table local)
Creating and configuring up CLAT device 'clat'
cmd(tayga --config /tmp/w1VvbJxT2o --mktun -d)
Created persistent tun device clat
cmd(ip link set up dev clat)
cmd(ip -4 address add 192.0.0.1 dev clat)
cmd(ip -6 route add fc00::be24:11ff:fef2:5b32 dev clat table 49575)
cmd(ip -6 rule add prio 0 from fd00:ff9b::/96 to fc00::be24:11ff:fef2:5b32 fwmark 49575 table 49575)
Adding clatd nftable, using conntrack mark 49575
Adding IPv4 default route via the CLAT
cmd(ip -4 route add default dev clat metric 2048 mtu 1260 advmss 1220)
Starting up TAYGA, using config file '/tmp/w1VvbJxT2o'
cmd(tayga --config /tmp/w1VvbJxT2o --nodetach -d)
starting TAYGA 0.9.2
Using tun device clat with MTU 1500
TAYGA's IPv4 address: 192.0.0.2
TAYGA's IPv6 address: fd00:ff9b::c000:2
NAT64 prefix: fd00:ff9b::/96
root@ubuntu-VM211:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:24:11:f2:5b:32 brd ff:ff:ff:ff:ff:ff
altname enp0s18
altname enxbc2411f25b32
inet6 fc00::be24:11ff:fef2:5b32/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 2591831sec preferred_lft 604631sec
inet6 fe80::be24:11ff:fef2:5b32/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: nat64: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 500
link/none
5: clat: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 500
link/none
inet 192.0.0.1/32 scope global clat
valid_lft forever preferred_lft forever
inet6 fe80::f3ed:1457:e449:16c3/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
root@ubuntu-VM211:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2066ms
■PVEのブリッジインターフェースでのパケットキャプチャ結果

ちなみにNAT64のフィルタはちゃんと追加してます。
ipv6 access-list acl-allow-nat64
sequence 10 permit ipv6 FC00::/64 any
sequence 20 permit ipv6 FD00::/64 any
というかTAYGAで設定されたIPv6アドレスがCLAT変換後の送信元になるのですがこのIPをclatd上で変更できないんですよね、普通にclatインタフェースのIPに変換されてほしいのですが…
あと、試したこととしては、PREF64のプレフィックスをfc00:ff9b::/96にしてみたこともありますがこちらもISRの同じインターフェースが原因で疎通不可です。
なので送信元のIPがfd00:ff9b::/96だとNGというわけではないことがわかります。
■ISRのnat64ログ
isr4321#sho platform hardware qfp active feature nat64 datapath statistics
non-extended 0 statics 0 ext_binds 0
v6v4 xlated pkts 65776
v4v6 xlated pkts 82518
NAT46 v4v6 xlated pkts 0
NAT46 v6v4 xlated pkts 0
generated tcp csum 0
generated udp csum 0
Proxy Stats ipc retry fail 0
Alias: add 5 del 4 add_fail 0 del_fail 0
nat64_v6tov4_pkts 0 nat64_v4tov6_pkts 0 nat64_fbd_hits 0
v6v4 xlated pkts 0
NAT64_DROP_SC_PROCESS_V6_ERR 45
NAT64_DROP_SC_NO_N64_SB 37
このログを見る限りNAT64でエラーになっていることはわかります。
NAT64 statistics debugging is on
isr4321#
*May 9 16:57:17.949: NAT64 (stats): Received stats update for IDB(BDI10)
*May 9 16:57:17.949: NAT64 (stats): Updating pkts_dropped from 311777 to 311787 (is_delta(TRUE) value(10))
*May 9 16:57:17.949: NAT64 (stats): Received global stats update
*May 9 16:57:27.949: NAT64 (stats): Received stats update for IDB(BDI10)
*May 9 16:57:27.949: NAT64 (stats): Updating pkts_dropped from 311787 to 311797 (is_delta(TRUE) value(10))
*May 9 16:57:27.949: NAT64 (stats): Received global stats update
*May 9 16:57:37.950: NAT64 (stats): Received stats update for IDB(BDI10)
*May 9 16:57:37.950: NAT64 (stats): Updating pkts_translated_v6v4 from 532277 to 532278 (is_delta(TRUE) value(1))
*May 9 16:57:37.950: NAT64 (stats): Updating pkts_dropped from 311797 to 311807 (is_delta(TRUE) value(10))
*May 9 16:57:37.951: NAT64 (stats): Received stats update for IDB(BDI1)
*May 9 16:57:37.951: NAT64 (stats): Updating pkts_translated_v4v6 from 714288 to 714289 (is_delta(TRUE) value(1))
*May 9 16:57:37.951: NAT64 (stats): Received global stats update
*May 9 16:57:37.951: NAT64 (stats): Updating sessions_found from 1236520 to 1236522 (is_delta(TRUE) value(2))
*May 9 16:57:37.951: NAT64 (stats): Updating pkts_translated_v4v6 from 713194 to 713195 (is_delta(TRUE) value(1))
*May 9 16:57:37.951: NAT64 (stats): Updating pkts_translated_v6v4 from 531200 to 531201 (is_delta(TRUE) value(1))
*May 9 16:57:47.950: NAT64 (stats): Received stats update for IDB(BDI10)
*May 9 16:57:47.950: NAT64 (stats): Updating pkts_translated_v6v4 from 532278 to 532279 (is_delta(TRUE) value(1))
*May 9 16:57:47.950: NAT64 (stats): Updating pkts_dropped from 311807 to 311816 (is_delta(TRUE) value(9))
*May 9 16:57:47.950: NAT64 (stats): Received stats update for IDB(BDI1)
*May 9 16:57:47.951: NAT64 (stats): Updating pkts_translated_v4v6 from 714289 to 714290 (is_delta(TRUE) value(1))
*May 9 16:57:47.951: NAT64 (stats): Received global stats update
*May 9 16:57:47.951: NAT64 (stats): Updating sessions_found from 1236522 to 1236524 (is_delta(TRUE) value(2))
*May 9 16:57:47.951: NAT64 (stats): Updating pkts_translated_v4v6 from 713195 to 713196 (is_delta(TRUE) value(1))
*May 9 16:57:47.951: NAT64 (stats): Updating pkts_translated_v6v4 from 531201 to 531202 (is_delta(TRUE) value(1))
*May 9 16:57:57.954: NAT64 (stats): Received stats update for IDB(BDI10)
*May 9 16:57:57.954: NAT64 (stats): Updating pkts_dropped from 311816 to 311826 (is_delta(TRUE) value(10))
*May 9 16:57:57.954: NAT64 (stats): Received global stats update
*May 9 16:57:57.954: NAT64 (stats): Updating dynamic_sessions from 9 to 7 (is_delta(FALSE) value(7))
*May 9 16:57:57.954: NAT64 (stats): Updating extended_sessions from 9 to 7 (is_delta(FALSE) value(7))
*May 9 16:57:57.954: NAT64 (stats): Updating expired_sessions from 7754 to 7756 (is_delta(TRUE) value(2))
*May 9 16:57:57.954: NAT64 (stats): Received stats update for dmapping, direction(v6v4) ACL(acl-allow-nat64) vrf_name ()
*May 9 16:57:57.954: NAT64 (stats): Updating ref_count from 9 to 7 (is_delta(FALSE) value(7))
CRCなどのエラーもなさそうです。
isr4321#sho interfaces
GigabitEthernet0/0/0 is up, line protocol is up
Hardware is ISR4321-2x1GE, address is e00e.da99.e490 (bia e00e.da99.e490)
Description: *** WAN ***
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive not supported
Full Duplex, 1000Mbps, link type is auto, media type is T
output flow-control is off, input flow-control is off
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output 00:00:04, output hang never
Last clearing of "show interface" counters never
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 1000 bits/sec, 1 packets/sec
5 minute output rate 2000 bits/sec, 1 packets/sec
7227243513 packets input, 604855920084 bytes, 0 no buffer
Received 733864 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
258769 input errors, 0 CRC, 0 frame, 258769 overrun, 0 ignored
0 watchdog, 2930792080 multicast, 0 pause input
629155 packets output, 149012014 bytes, 0 underruns
Output 815 broadcasts (0 IP multicasts)
0 output errors, 0 collisions, 1 interface resets
0 unknown protocol drops
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 pause output
0 output buffer failures, 0 output buffers swapped out
GigabitEthernet0/0/1 is up, line protocol is up
Hardware is ISR4321-2x1GE, address is e00e.da99.e491 (bia e00e.da99.e491)
Description: *** LAN ***
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive not supported
Full Duplex, 1000Mbps, link type is auto, media type is RJ45
output flow-control is on, input flow-control is on
ARP type: ARPA, ARP Timeout 04:00:00
Last input 1w0d, output 00:00:31, output hang never
Last clearing of "show interface" counters never
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 17000 bits/sec, 4 packets/sec
5 minute output rate 12000 bits/sec, 3 packets/sec
7242586303 packets input, 622880223065 bytes, 0 no buffer
Received 72507 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
50812964 input errors, 0 CRC, 0 frame, 50812964 overrun, 0 ignored
0 watchdog, 2931079964 multicast, 78 pause input
152101467 packets output, 30529261817 bytes, 0 underruns
Output 1162 broadcasts (0 IP multicasts)
0 output errors, 0 collisions, 2 interface resets
78 unknown protocol drops
0 babbles, 0 late collision, 0 deferred
1 lost carrier, 0 no carrier, 99540238 pause output
0 output buffer failures, 0 output buffers swapped out
GigabitEthernet0 is administratively down, line protocol is down
Hardware is RP management port, address is e00e.da99.e51f (bia e00e.da99.e51f)
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Auto Duplex, Auto Speed, link type is auto, media type is RJ45
output flow-control is unsupported, input flow-control is unsupported
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
0 packets input, 0 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 0 multicast, 0 pause input
0 packets output, 0 bytes, 0 underruns
Output 0 broadcasts (0 IP multicasts)
0 output errors, 0 collisions, 0 interface resets
0 unknown protocol drops
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 pause output
0 output buffer failures, 0 output buffers swapped out
BDI1 is up, line protocol is up
Hardware is BDI, address is e00e.da99.e513 (bia e00e.da99.e513)
Internet address is 192.168.1.254/24
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive not supported
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:45, output 00:00:07, output hang never
Last clearing of "show interface" counters never
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 2000 bits/sec, 1 packets/sec
5 minute output rate 4000 bits/sec, 1 packets/sec
7226868464 packets input, 604824190782 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
594459 packets output, 137732902 bytes, 0 underruns
Output 0 broadcasts (0 IP multicasts)
0 output errors, 0 interface resets
413983 unknown protocol drops
0 output buffer failures, 0 output buffers swapped out
BDI10 is up, line protocol is up
Hardware is BDI, address is e00e.da99.e513 (bia e00e.da99.e513)
Internet address is 172.16.1.253/24
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive not supported
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:01, output 00:00:01, output hang never
Last clearing of "show interface" counters never
Input queue: 0/375/561/974357 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 17000 bits/sec, 4 packets/sec
5 minute output rate 13000 bits/sec, 3 packets/sec
7242210971 packets input, 622853186691 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
152074189 packets output, 30521891227 bytes, 0 underruns
Output 0 broadcasts (0 IP multicasts)
0 output errors, 0 interface resets
0 unknown protocol drops
0 output buffer failures, 0 output buffers swapped out
NVI0 is up, line protocol is up
Hardware is NVI
MTU 9216 bytes, BW 56 Kbit/sec, DLY 5000 usec,
reliability 255/255, txload 27/255, rxload 31/255
Encapsulation UNKNOWN, loopback not set
Keepalive not set
Last input never, output 02:41:20, output hang never
Last clearing of "show interface" counters 1w1d
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 0
5 minute input rate 7000 bits/sec, 2 packets/sec
5 minute output rate 6000 bits/sec, 1 packets/sec
1559033 packets input, 618919107 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
1246939 packets output, 582073257 bytes, 0 underruns
Output 0 broadcasts (0 IP multicasts)
0 output errors, 0 collisions, 0 interface resets
0 unknown protocol drops
0 output buffer failures, 0 output buffers swapped out
こちらもエラーらしきものはありませんね。
isr4321#debug interface bdi 10
Condition 1 set
isr4321#Output intf BD10 matches debug filer
*May 9 17:00:54.189: IOSXE-INJECT: set pak datagramstart(from 0x757AFB89F470 to 0x757AFB89F470), datagramsize(from 72 to 72);
*May 9 17:00:54.189: IOSXE-INJECT: add L3 inject hdr
*May 9 17:00:54.189: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:00:54.189: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:00:54.189: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 86, total len 138, inject type adjacency, seqnum 138513043
*May 9 17:00:54.189: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:00:54.189: send out the l3 packet to cpp:
757AFB89F420: 0102 ..
757AFB89F430: 0000000E 0056008A 14002004 00000000 .....V.... .....
757AFB89F440: 00000000 000B0100 00010010 07000104 ................
757AFB89F450: 00000000 00000000 00000000 00000000 ................
757AFB89F460: 0000BC24 11D58430 E00EDA99 E51386DD ..<$.U.0`.Z.e..]
757AFB89F470: 6E000000 00203AFF FE800000 00000000 n.... :.~.......
757AFB89F480: E20EDAFF FE99E513 FC000000 00000000 b.Z.~.e.|.......
757AFB89F490: 04CEC3DC 2B920FE2 8700386A 00000000 .NC\+..b..8j....
757AFB89F4A0: FC000000 00000000 04CEC3DC 2B92 |........NC\+.
*May 9 17:00:54.192: IPv6 next hdr ICMPV6 type 135, code 0...
*May 9 17:00:54.192: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513043
*May 9 17:00:54.192: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:00:59.255: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8B0E28 to 0x757AFB8B0E28), datagramsize(from 64 to 64);
*May 9 17:00:59.255: IOSXE-INJECT: add L3 inject hdr
*May 9 17:00:59.255: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:00:59.255: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:00:59.255: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 78, total len 130, inject type adjacency, seqnum 138513049
*May 9 17:00:59.255: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:00:59.255: send out the l3 packet to cpp:
757AFB8B0DE0: 0102 0000000E 004E0082 .......N..
757AFB8B0DF0: 14002004 00000000 00000000 000B0100 .. .............
757AFB8B0E00: 00010010 07000104 00000000 00000000 ................
757AFB8B0E10: 00000000 00000000 0000BC24 11D58430 ..........<$.U.0
757AFB8B0E20: E00EDA99 E51386DD 6E000000 00183AFF `.Z.e..]n.....:.
757AFB8B0E30: FE800000 00000000 E20EDAFF FE99E513 ~.......b.Z.~.e.
757AFB8B0E40: FE800000 00000000 0CFA6E7F 32B0641F ~........zn.20d.
757AFB8B0E50: 88006867 C0000000 FE800000 00000000 ..hg@...~.......
757AFB8B0E60: E20EDAFF FE99 b.Z.~.
*May 9 17:00:59.258: IPv6 next hdr ICMPV6 type 136, code 0...
*May 9 17:00:59.258: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513049
*May 9 17:00:59.258: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:00:59.618: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8AD5D0 to 0x757AFB8AD5D0), datagramsize(from 64 to 64);
*May 9 17:00:59.618: IOSXE-INJECT: add L3 inject hdr
*May 9 17:00:59.618: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:00:59.618: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:00:59.618: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 78, total len 130, inject type adjacency, seqnum 138513051
*May 9 17:00:59.618: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:00:59.618: send out the l3 packet to cpp:
757AFB8AD580: 0102 ..
757AFB8AD590: 0000000E 004E0082 14002004 00000000 .....N.... .....
757AFB8AD5A0: 00000000 000B0100 00010010 07000104 ................
757AFB8AD5B0: 00000000 00000000 00000000 00000000 ................
757AFB8AD5C0: 0000BC24 11F25B32 E00EDA99 E51386DD ..<$.r[2`.Z.e..]
757AFB8AD5D0: 6E000000 00183AFF FE800000 00000000 n.....:.~.......
757AFB8AD5E0: E20EDAFF FE99E513 FE800000 00000000 b.Z.~.e.~.......
757AFB8AD5F0: BE2411FF FEF25B32 88005067 C0000000 >$..~r[2..Pg@...
757AFB8AD600: FE800000 00000000 E20EDAFF FE99 ~.......b.Z.~.
*May 9 17:00:59.622: IPv6 next hdr ICMPV6 type 136, code 0...
*May 9 17:00:59.622: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513051
*May 9 17:00:59.622: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:01:04.170: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8A3F90 to 0x757AFB8A3F90), datagramsize(from 72 to 72);
*May 9 17:01:04.170: IOSXE-INJECT: add L3 inject hdr
*May 9 17:01:04.170: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:01:04.171: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:01:04.171: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 86, total len 138, inject type adjacency, seqnum 138513056
*May 9 17:01:04.171: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:01:04.171: send out the l3 packet to cpp:
757AFB8A3F40: 0102 ..
757AFB8A3F50: 0000000E 0056008A 14002004 00000000 .....V.... .....
757AFB8A3F60: 00000000 000B0100 00010010 07000104 ................
757AFB8A3F70: 00000000 00000000 00000000 00000000 ................
757AFB8A3F80: 0000906C ACED6B91 E00EDA99 E51386DD ...l,mk.`.Z.e..]
757AFB8A3F90: 6E000000 00203AFF FE800000 00000000 n.... :.~.......
757AFB8A3FA0: E20EDAFF FE99E513 FC000000 00000000 b.Z.~.e.|.......
757AFB8A3FB0: 00000000 00000001 870040A6 00000000 ..........@&....
757AFB8A3FC0: FC000000 00000000 00000000 0000 |.............
*May 9 17:01:04.174: IPv6 next hdr ICMPV6 type 135, code 0...
*May 9 17:01:04.174: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513056
*May 9 17:01:04.174: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:01:04.302: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8AB040 to 0x757AFB8AB040), datagramsize(from 72 to 72);
*May 9 17:01:04.302: IOSXE-INJECT: add L3 inject hdr
*May 9 17:01:04.302: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:01:04.302: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:01:04.302: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 86, total len 138, inject type adjacency, seqnum 138513057
*May 9 17:01:04.302: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:01:04.302: send out the l3 packet to cpp:
757AFB8AAFF0: 0102 ..
757AFB8AB000: 0000000E 0056008A 14002004 00000000 .....V.... .....
757AFB8AB010: 00000000 000B0100 00010010 07000104 ................
757AFB8AB020: 00000000 00000000 00000000 00000000 ................
757AFB8AB030: 0000BC24 11D58430 E00EDA99 E51386DD ..<$.U.0`.Z.e..]
757AFB8AB040: 6E000000 00203AFF FE800000 00000000 n.... :.~.......
757AFB8AB050: E20EDAFF FE99E513 FE800000 00000000 b.Z.~.e.~.......
757AFB8AB060: 0CFA6E7F 32B0641F 87001716 00000000 .zn.20d.........
757AFB8AB070: FE800000 00000000 0CFA6E7F 32B0 ~........zn.20
*May 9 17:01:04.305: IPv6 next hdr ICMPV6 type 135, code 0...
*May 9 17:01:04.305: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513057
*May 9 17:01:04.305: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:01:09.178: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8A9D78 to 0x757AFB8A9D78), datagramsize(from 64 to 64);
*May 9 17:01:09.178: IOSXE-INJECT: add L3 inject hdr
*May 9 17:01:09.178: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:01:09.178: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:01:09.178: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 78, total len 130, inject type adjacency, seqnum 138513063
*May 9 17:01:09.178: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:01:09.178: send out the l3 packet to cpp:
757AFB8A9D30: 0102 0000000E 004E0082 .......N..
757AFB8A9D40: 14002004 00000000 00000000 000B0100 .. .............
757AFB8A9D50: 00010010 07000104 00000000 00000000 ................
757AFB8A9D60: 00000000 00000000 0000906C ACED6B91 ...........l,mk.
757AFB8A9D70: E00EDA99 E51386DD 6E000000 00183AFF `.Z.e..]n.....:.
757AFB8A9D80: FE800000 00000000 E20EDAFF FE99E513 ~.......b.Z.~.e.
757AFB8A9D90: FE800000 00000000 926CACFF FEED6B91 ~........l,.~mk.
757AFB8A9DA0: 8800D0C4 C0000000 FE800000 00000000 ..PD@...~.......
757AFB8A9DB0: E20EDAFF FE99 b.Z.~.
*May 9 17:01:09.181: IPv6 next hdr ICMPV6 type 136, code 0...
*May 9 17:01:09.181: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513063
*May 9 17:01:09.181: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:01:14.182: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8CAB58 to 0x757AFB8CAB58), datagramsize(from 72 to 72);
*May 9 17:01:14.182: IOSXE-INJECT: add L3 inject hdr
*May 9 17:01:14.182: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:01:14.182: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:01:14.182: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 86, total len 138, inject type adjacency, seqnum 138513069
*May 9 17:01:14.182: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:01:14.182: send out the l3 packet to cpp:
757AFB8CAB10: 0102 0000000E 0056008A .......V..
757AFB8CAB20: 14002004 00000000 00000000 000B0100 .. .............
757AFB8CAB30: 00010010 07000104 00000000 00000000 ................
757AFB8CAB40: 00000000 00000000 000050EB F6823AC1 ..........Pkv.:A
757AFB8CAB50: E00EDA99 E51386DD 6E000000 00203AFF `.Z.e..]n.... :.
757AFB8CAB60: FE800000 00000000 E20EDAFF FE99E513 ~.......b.Z.~.e.
757AFB8CAB70: FC000000 00000000 094EBF15 388E108B |........N?.8...
757AFB8CAB80: 87001DAE 00000000 FC000000 00000000 ........|.......
757AFB8CAB90: 094EBF15 388E .N?.8.
*May 9 17:01:14.185: IPv6 next hdr ICMPV6 type 135, code 0...
*May 9 17:01:14.185: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513069
*May 9 17:01:14.185: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:01:14.250: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8CF678 to 0x757AFB8CF678), datagramsize(from 72 to 72);
*May 9 17:01:14.250: IOSXE-INJECT: add L3 inject hdr
*May 9 17:01:14.250: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:01:14.250: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:01:14.250: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 86, total len 138, inject type adjacency, seqnum 138513070
*May 9 17:01:14.250: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:01:14.250: send out the l3 packet to cpp:
757AFB8CF630: 0102 0000000E 0056008A .......V..
757AFB8CF640: 14002004 00000000 00000000 000B0100 .. .............
757AFB8CF650: 00010010 07000104 00000000 00000000 ................
757AFB8CF660: 00000000 00000000 0000906C ACED6B91 ...........l,mk.
757AFB8CF670: E00EDA99 E51386DD 6E000000 00203AFF `.Z.e..]n.... :.
757AFB8CF680: FE800000 00000000 E20EDAFF FE99E513 ~.......b.Z.~.e.
757AFB8CF690: FE800000 00000000 926CACFF FEED6B91 ~........l,.~mk.
757AFB8CF6A0: 8700E7D0 00000000 FE800000 00000000 ..gP....~.......
757AFB8CF6B0: 926CACFF FEED .l,.~m
*May 9 17:01:14.253: IPv6 next hdr ICMPV6 type 135, code 0...
*May 9 17:01:14.253: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513070
*May 9 17:01:14.253: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:01:31.365: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8D1C08 to 0x757AFB8D1C08), datagramsize(from 64 to 64);
*May 9 17:01:31.365: IOSXE-INJECT: add L3 inject hdr
*May 9 17:01:31.365: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:01:31.365: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:01:31.365: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 78, total len 130, inject type adjacency, seqnum 138513088
*May 9 17:01:31.365: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:01:31.365: send out the l3 packet to cpp:
757AFB8D1BC0: 0102 0000000E 004E0082 .......N..
757AFB8D1BD0: 14002004 00000000 00000000 000B0100 .. .............
757AFB8D1BE0: 00010010 07000104 00000000 00000000 ................
757AFB8D1BF0: 00000000 00000000 0000BC24 11F25B32 ..........<$.r[2
757AFB8D1C00: E00EDA99 E51386DD 6E000000 00183AFF `.Z.e..]n.....:.
757AFB8D1C10: FE800000 00000000 E20EDAFF FE99E513 ~.......b.Z.~.e.
757AFB8D1C20: FE800000 00000000 BE2411FF FEF25B32 ~.......>$..~r[2
757AFB8D1C30: 88005067 C0000000 FE800000 00000000 ..Pg@...~.......
757AFB8D1C40: E20EDAFF FE99 b.Z.~.
*May 9 17:01:31.368: IPv6 next hdr ICMPV6 type 136, code 0...
*May 9 17:01:31.368: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513088
*May 9 17:01:31.368: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0Output intf BD10 matches debug filer
*May 9 17:01:36.435: IOSXE-INJECT: set pak datagramstart(from 0x757AFB8E93A8 to 0x757AFB8E93A8), datagramsize(from 72 to 72);
*May 9 17:01:36.435: IOSXE-INJECT: add L3 inject hdr
*May 9 17:01:36.435: IOSXE-INJECT: Inject type MCP_INJECT_TYPE_MAYBE_L2 filled L2 encap (14 bytes) from pak_encap API adj_id=0x0
*May 9 17:01:36.435: IOSXE-INJECT: In case IPV6 pak->ip_tableid not set, Set pak->ip_tableid 0x0
*May 9 17:01:36.435: IOSXE-INJECT: inject hdr len 52, feature hdr len 20, l2-enc len 14, link type ipv6, pak len 86, total len 138, inject type adjacency, seqnum 138513093
*May 9 17:01:36.435: IOSXE-INJECT: inject_sb inject_flag=0x2, subtype=0, type_flags=0x8,
*May 9 17:01:36.435: send out the l3 packet to cpp:
757AFB8E9360: 0102 0000000E 0056008A .......V..
757AFB8E9370: 14002004 00000000 00000000 000B0100 .. .............
757AFB8E9380: 00010010 07000104 00000000 00000000 ................
757AFB8E9390: 00000000 00000000 0000BC24 11F25B32 ..........<$.r[2
757AFB8E93A0: E00EDA99 E51386DD 6E000000 00203AFF `.Z.e..]n.... :.
757AFB8E93B0: FE800000 00000000 E20EDAFF FE99E513 ~.......b.Z.~.e.
757AFB8E93C0: FE800000 00000000 BE2411FF FEF25B32 ~.......>$..~r[2
757AFB8E93D0: 8700E715 00000000 FE800000 00000000 ..g.....~.......
757AFB8E93E0: BE2411FF FEF2 >$..~r
*May 9 17:01:36.438: IPv6 next hdr ICMPV6 type 135, code 0...
*May 9 17:01:36.438: IOSXE-INJECT: pak inject type adjacency, ready for tx, seqnum 138513093
*May 9 17:01:36.438: IOSXE-INJECT: inject_hdr pal_if_handle=0xB, flags=0x10, cause=7, sub_cause=0
isr4321#no debug interface bdi 10
This condition is the last interface condition set.
Removing all conditions may cause a flood of debugging
messages to result, unless specific debugging flags
are first removed.
Proceed with removal? [yes/no]: yes
Condition 1 has been removed
以下何も表示されていないログ
isr4321#debug interface nvi 0
Condition 1 set
isr4321#no debug interface nvi 0
This condition is the last interface condition set.
Removing all conditions may cause a flood of debugging
messages to result, unless specific debugging flags
are first removed.
Proceed with removal? [yes/no]: yes
Condition 1 has been removed
isr4321#debug interface gigabitEthernet 0/0/1
Condition 1 set
isr4321#no debug interface gigabitEthernet 0/0/1
This condition is the last interface condition set.
Removing all conditions may cause a flood of debugging
messages to result, unless specific debugging flags
are first removed.
Proceed with removal? [yes/no]: yes
Condition 1 has been removed
デバッグとログは以上です。もう疲れました🙃(三度目)
参考
- https://www.ietf.org/archive/id/draft-link-v6ops-6mops-00.html#:~:text=DNS64%20is%20unnecessary%20and%20SHOULD%20NOT%20be%20enabled ↩︎
- 海外勢もキレてます
https://techcommunity.microsoft.com/blog/networkingblog/windows-11-plans-to-expand-clat-support/4078173 ↩︎ - https://datatracker.ietf.org/doc/html/rfc6877 ↩︎
- https://www.nic.ad.jp/ja/basics/terms/464xlat.html ↩︎
- https://www.rfc-editor.org/rfc/rfc8925.html ↩︎
- https://www.ripe.net/participate/forms/uploads/fobi_plugins/file/see-13-presentations/SEE13-IPv6-mostly_on_OpenWRT_41ec5ce8-afc0-4721-9285-12b1891a7af4.pdf ↩︎
- http://www.litech.org/tayga/ ↩︎
- https://github.com/toreanderson/clatd/tree/master ↩︎
- https://github.com/luchina-gabriel/OSX-PROXMOX?tab=readme-ov-file ↩︎
- https://www.youtube.com/watch?v=ApldztEgh8o ↩︎
- https://github.com/systemd/systemd/issues/30891 ↩︎
- https://www.reddit.com/r/ipv6/comments/1ij0k15/merge_request_for_clat_support_in_networkmanager/ ↩︎
コメント