※このネタは、過去のJCOM仕様です。現在は、DHCPv6-PDによるセグメント配布となったらしいです。 やったね JCOM <- 2024年9月12日
ずっと、ADSLを使い続けて
この度、やっと光 いや JCOM ケーブルネットに移行しました。
時代は、進化しました。
↑ これが
↓こうなりました
ケーブルネットワークは、契約することが無いだろうと思っていたので、どういった仕様なのか調べたことがなかったのです。
JCOM(ジュピターテレコム)が独自で作った有線網なのかと思いきや国際標準規格だったのですね。
ケーブルTVで扱われている同軸ケーブル上に多メディア双方向通信出来るようにする取りまとめが、DOCSISという規格だそうです。
ここやここに、わかりやすく書かれているので、興味のある方は、確認してみて下さい。
で、うちのCMは、DOCSIS3.0 のようですね。 規格としては、3.1まであるようです。
昔の知識しか無かったんですが、いつのまにかケーブルネットワークも高速化していて、そらに高速化する予定があるなんて夢のようです。
次の規格3.1は、10Gまで高速化可能なことが書かれていますが、そんなに早くなっても、家のインフラが追いつきませんから・・・
下り1G、上り200M だと、現状の周波数で行けそうなんで、これで十分かと思います。わざわざ光工事してまで、光ファイバーを家に通さなくても ギガネットワークに参加出来るなら十分ですね。
話を戻しますね。
ということで、あまり興味がなかったんですが、驚異の割引価格だったので、契約してしまいました。
当方のマンションが、JCOMさんと保守契約したそうで、↓こんなのもってきた営業から簡単に落ちました。
電話も込みで、この値段は反則ですよね。
でっ、IPv6って出来るのか調べたところ、出来るようです。
ですが、IPv6は、RAによるセグメント配布ではなく、DHCP6による1個分の払い出しらしいです。
これだと、IPv6を複数台のPCで共有する為には、NATしないといけなくなるんですよね
あきらめて、IPv6パススルーにすると、どいつが掴むかわかったもんじゃないし
せっかく、配布されるんだからなんとかして使いたいなーと思ってしまいました。
しかし、IPv6のNAT6なんて出来るルーター民生用であるんかいな
ラズパイでルーターを作っても性能が出ないし
色々とネットで調べていると、サポセンからどうしようもない回答をされて困っている方も見受けられますね
デュアルスタックなルーターだとOKとかではないですよ
そもそも、日本で販売されている民生用ルーターで、IPv6のNATをサポートするような機器は、存在しないと思います
JCOMさんは、直接PC接続を想定しているので、ルーターを挟んでIPv6するようなことを想定していません
なので、そういったことが出来る機器を導入する必要があります
それと、IPv6だとかならず高速になるというのも違いますよ
ネットの速度(帯域や応答速度)は、接続元から接続先まで、色々な機械を通りますから、その間がどうなっているかわからないと、一概には言えないです
まー、アクセス集中するようなサーバーの場合、IPv6が有利になることはありますけどね
で、ネットの荒波で、探し当てたのが、Ubiquiti Networks Edgerouter ER-X という代物です。
一見、5ポートのスイッチングハブかと思いきや、L3スイッチ並みの機能を誇るおそるべし機器らしいです。
しかも、値段が安い
送料込みで、54.97$です
スイッチングハブの2倍程度ですかね
でも、航空便を選ばなかったので、到着まで待たされました。
結局、12日程度でしょうか
国際郵便のわりには早かったかな
さー、役者は揃った
設定祭りだー
これが、届いた ER-Xです。
心配していた電源ですが、変換プラグを入れてくれていて、 さくっとコンセントに刺せました。
EURO DK すばらしい仕事っぷりです。
初期IPは、 192.168.1.1 のようで、eth0 のみからのアクセスでした。
色々と調査していた時に、わかったのですが、ファームが結構古いままらしいので、アップデートすることにします。
バージョンは、1.10.10と2.0.6があるのですが、2.0.6は、新カーネルのようで良さそうですが、IPv6 NAT6がオフになっているようです。
なので、1.10.10に更新することにしました。 <- ということでしたが、2.0.9 に更新した所、問題無く安定して使えました。
Web経由で、アップデートすると死ぬらしいので、SSH経由のコマンドで行いました。
コマンド3つで終了です。 簡単ですね。
delete system image
add system image https://dl.ui.com/firmwares/edgemax/v2.0.9-hotfix.1/ER-e50.v2.0.9-hotfix.1.5371034.tar
add system boot-image
reboot
※最新ファームは、https://dl.ui.com/firmwares/edgemax/v2.0.9-hotfix.1/ER-e50.v2.0.9-hotfix.1.5371034.tar です。 2021/05/24時点
最新ファームは、ここでチェックして下さい。
とりあえず、WEB経由で接続して、IPv4 Nat設定をやっておきました。
この辺りは、Wizardで適当に設定すれば簡単に済みます。
では、ここから本命の IPv6 MASQUERADE を実現していきます。
Web GUIだと、ほとんど設定が出来ないので、SSHでログインしましょう。
設定モードに入ります。
configure
WAN側インターフェースをeth0とします。
LAN側インターフェースは、スイッチ構成で、switch0とします。
まず、eth0に グローバルユニキャストアドレス(IPv6) を振ってもらいます。
JCOMは、DHCPv6で配布しているらしいので、DHCPv6を設定します。
set interfaces ethernet eth0 address dhcpv6
次に IPv6用にFirewall設定を行います。
set firewall ipv6-name WAN6_IN default-action drop
set firewall ipv6-name WAN6_IN description 'WAN6 to internal'
set firewall ipv6-name WAN6_IN rule 10 action accept
set firewall ipv6-name WAN6_IN rule 10 description 'Allow established/related'
set firewall ipv6-name WAN6_IN rule 10 state established enable
set firewall ipv6-name WAN6_IN rule 10 state related enable
set firewall ipv6-name WAN6_IN rule 20 action drop
set firewall ipv6-name WAN6_IN rule 20 description 'Drop invalid state'
set firewall ipv6-name WAN6_IN rule 20 state invalid enable
set firewall ipv6-name WAN6_IN rule 30 action accept
set firewall ipv6-name WAN6_IN rule 30 description 'Allow ICMPv6'
set firewall ipv6-name WAN6_IN rule 30 protocol icmpv6
set firewall ipv6-name WAN6_LOCAL default-action drop
set firewall ipv6-name WAN6_LOCAL description 'WAN6 to router'
set firewall ipv6-name WAN6_LOCAL rule 10 action accept
set firewall ipv6-name WAN6_LOCAL rule 10 description 'Allow established/related'
set firewall ipv6-name WAN6_LOCAL rule 10 state established enable
set firewall ipv6-name WAN6_LOCAL rule 10 state related enable
set firewall ipv6-name WAN6_LOCAL rule 20 action drop
set firewall ipv6-name WAN6_LOCAL rule 20 description 'Drop invalid state'
set firewall ipv6-name WAN6_LOCAL rule 20 state invalid enable
set firewall ipv6-name WAN6_LOCAL rule 30 action accept
set firewall ipv6-name WAN6_LOCAL rule 30 description 'Allow ICMPv6'
set firewall ipv6-name WAN6_LOCAL rule 30 protocol icmpv6
set firewall ipv6-name WAN6_LOCAL rule 40 action accept
set firewall ipv6-name WAN6_LOCAL rule 40 description 'Allow DHCPv6'
set firewall ipv6-name WAN6_LOCAL rule 40 protocol udp
set firewall ipv6-name WAN6_LOCAL rule 40 destination port 546
set firewall ipv6-name WAN6_LOCAL rule 40 source port 547
set interfaces ethernet eth0 firewall in ipv6-name WAN6_IN
set interfaces ethernet eth0 firewall local ipv6-name WAN6_LOCAL
DHCPv6は、ゲートウェイの配布仕様がドラフト状態となっているらしくって、定義されないようです。
なので、手動でIPv6デフォルトゲートウェイを設定します。 本来、RAを使えってことでしょうか。
仕方がないので、配布されたセグメント内のゲートウェイをARPで探します。
ip neigh show dev eth0 | grep router
fe80::217:10ff:fe9f:388b lladdr 00:17:10:9f:38:8b router REACHABLE
これをゲートウェイとして設定します。
set protocols static route6 '::/0' next-hop 'fe80::217:10ff:fe9f:388b' interface eth0
これで、ER-Xが、IPv6でネット通信することが出来るようになりました。
一旦、設定モードを抜けますかね。
commit
save
試しに、pingしてみましょーか。
ping6 ocn.ne.jp
PING ocn.ne.jp(2001:218:200d:253:153:254:170:142) 56 data bytes
64 bytes from 2001:218:200d:253:153:254:170:142: icmp_seq=1 ttl=50 time=24.9 ms
IPv6による疎通確認がとれますね。
普通ならIPv6は、セグメント配布されて全員、ネットにむきだし状態となるのですが、JCOMさんは、過保護にも1人限定となっています。
なので、ローカル側IPv6ネットワークも自分で管理する必要があります。
v6アドレス配布は、DHCPv6サーバなんて手もありますが、ER-Xは、RAを標準実装しているので、これで行きます。
RAは、ネームサーバの配布は、ドラフトだったらしいですが、最新仕様では、RFCに定義されたらしいです。
設定モードに入ります。
configure
set interfaces switch switch0 address fcde:6600:89fa::1/64
set interfaces switch switch0 ipv6 router-advert prefix ::/64
set interfaces switch switch0 ipv6 router-advert name-server 2400:3800:1301:101::7
set interfaces switch switch0 ipv6 router-advert name-server 2400:3800:1301:101::4
set interfaces switch switch0 ipv6 router-advert name-server 2001:4860:4860::8888
set interfaces switch switch0 ipv6 router-advert name-server 2001:4860:4860::8844
set interfaces switch switch0 ipv6 router-advert managed-flag true
set interfaces switch switch0 ipv6 router-advert other-config-flag false
今回、fcde:6600:89fa::1/64 なんてネットワークを定義しましたが、ユニークローカルアドレス(fc00::/7)であれば何でも良いと思います。
ネームサーバですが、2001:4860:4860::8888と2001:4860:4860::8844にしていますが、これは、Googleさんです。その上2つは、JCOMさんDNSサーバです。
設定モードを抜けましょう
commit
save
これで、ローカル側にもIPv6が配布されているはずです。
いよいよラストです。
このままでは、ローカル側からネットにぬけていく為のルーティング方法がありません。
ユニークローカルからグローバルに抜けるには、NATが必要ですね。
しかし、ER-Xのコマンドでは、NAT6は、サポートされておらず、OSコマンドを使う必要があります。
ルートになって、ip6tablesを直接操作します。
sudo -s
ip6tables -t raw -D OUTPUT -j NOTRACK
ip6tables -t raw -D PREROUTING -j NOTRACK
ip6tables -t nat -A POSTROUTING -o eth0 -s fcde:6600:89fa::1/64 -j MASQUERADE
このコマンドを発行した瞬間から、ローカル側からアクセス出来るようになります。
これで完了かと思いきや、リブートすると、このNAT6を忘れてしまうので、不揮発設定にします。
以下のファイルを作成します。
vi /config/scripts/post-config.d/natv6-enable
#!/bin/sh
ip6tables -t nat -A POSTROUTING -o eth0 -s fcde:6600:89fa::1/64 -j MASQUERADE
chmod a+x /config/scripts/post-config.d/natv6-enable
これで、完了です。
後は、ローカル側から IPv6テストサイトで確認してみましょう。
IPv6 マスカレードが成功したので、サーバー公開もしたいですよね。
TCP 80 と443 を fcde:6600:89fa::10 へフォワードする設定です。
IN側とOUT側のFirewallに穴を空けます。
configure
set firewall ipv6-name WAN6_IN rule 50 action accept
set firewall ipv6-name WAN6_IN rule 50 description 'Allow Forward'
set firewall ipv6-name WAN6_IN rule 50 protocol tcp
set firewall ipv6-name WAN6_IN rule 50 destination port 80,443
set firewall ipv6-name WAN6_LOCAL rule 50 action accept
set firewall ipv6-name WAN6_LOCAL rule 50 description 'Allow Forward'
set firewall ipv6-name WAN6_LOCAL rule 50 protocol tcp
set firewall ipv6-name WAN6_LOCAL rule 50 destination port 80,443
commit
save
あいかわらず、IPv6 NAT系は、直接操作します。
sudo -s
ip6tables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to fcde:6600:89fa::10
ip6tables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to fcde:6600:89fa::10
外から空いているか、チェック出来るサイトで確認してみます。
どうですか
JCOMでも、やれば出来ますよ