SEIL/x86 AyameでDS-Lite設定とファームウェアアップデート

今年もアゲハの卵が山椒の鉢植えに産み付けられていました。さっそく子どもたちが集まって見ていました、これから世話をして夏休みの自由研究になることと思います。ひと鉢増やしておかないと葉っぱが足りなくなりそうです。

さてSEIL/X86 Ayameで前回PPPoEの設定をしましたが、今度はいよいよDS-Liteの設定をしていきます。前回の作業から数ヶ月たっていて新しいバージョンも出ているようですので、仮想ルータのファームの更新から始めます。


SEIL/x86 Ayameのアップデート

仮想イメージをあらためて展開するのかなと思いきや、そうではなく仮想マシンはそのまま「ファームウェアのアップデート」をするように指示があります。この感覚は物理ルータと同じです。すでにアクティベーションが済んでいる仮想マシンなのでそうですよね、うまくできています。

手順書

https://www.seil.jp/doc/index.html#fn/update/cmd/update_firmware.html

用意するもの

最新ファームと、適当なwebかftpかsshサーバ。通信機器の保守しているならだいたいこのあたりはもっているはず。少し前はtftpばかりでセットアップも手間でしたが最近はhttpやscpが使えるので助かります。

1.https://www.seil.jp/product/download.html からファームウェアを取得。取得したイメージは x86ayame-230.img (2021/03/31版)

2.初期化し、インタフェースにIPアドレスを設定
コンソールで
factory-config
で工場出荷時に初期化もできますが、どのみち復活する出荷時設定は消しますから

VMwareのWebコンソールで、edit でconfig編集モードに入って、これまでの設定を全部消して
interface.ge1.ipv4.address:192.168.1.1/24
telnetd.service:enable
commit で反映。telnetで192.168.1.1に入れるようにします。

3.ローカルLAN 192.168.1.99に適当なWebサーバを立ち上げて、/var/www/html/x86ayame-230.img に先程取得したファームウェアイメージを置きます。

※ローカルLANのWebサーバのIPアドレスに試験用の192.168.1のサブネットのIPを一時的に追加する場合、最近のLinuxは
sudo ip addr add 192.168.1.99/24 dev ネットワークインタフェース名
とすればOKです。


4.ルータのコンソールからアップデート
# update firmware http://192.168.1.99/x86ayame-230.img
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13.7M  100 13.7M    0     0  65.0M      0 --:--:-- --:--:-- --:--:-- 65.0M
running version: 2.22 (Release)
update version : 2.30 (Release)
update?[y/N] y
update firmware succeeded

5.設定値を保存して再起動
save-to flashrom
reboot
これで新しくなりました。

SEIL/x86 AyameのDS-Lite設定

SEIL/x86は、ひかり電話契約ありでは、ONU直結でもホームゲートウェイ配下でも同じ設定で動作します。設定は
・ひかり電話契約あり
・ひかり電話契約なし
の2パターンです。

参考

https://www.seil.jp/blog/ds-lite.html
https://www.seil.jp/blog/2.html
https://www.seil.jp/blog/4.html
https://www.seil.jp/blog/10.html

IIJ SEILシリーズでDS-Liteサンプル
https://www.mfeed.ad.jp/transix/dslite/iij_seil.html

説明は旧バージョンの書式なので、新バージョンに変換。
SEILコンフィグ自動変換ツール
https://iij.github.io/seil2recipe/

インターネット接続 IPv6 IPoE DS-Lite
https://www.seil.jp/sx4/doc/ug/internet/lan_dslite.html

ひかり電話無し環境でSEIL/X1のIPv6 IPoEとtransix
https://maeda577.github.io/2020/06/02/seil-ipv6.html

DS-LiteトンネルのAFTRのアドレス

以下契約プロバイダにより、置き換えて設定してください。
インターネットマルチフィード
gw.transix.jp

アルテリア・ネットワークス
dgw.xpass.jp

※ホームゲートウェイの配下にルータを置いた時、ホームゲートウェイとルータの起動のタイミングによっては、DS-Liteのトンネルがアップしないことがありました。たいてい電源のON/OFFでトンネルはアップしますが、たびたび発生するようなら、AFTRのアドレス(dgw.xpass.jpやgw.transix.jp)はFQDNではなくIPv6アドレスでトンネルの指定をすると確実です。IPv6アドレスはdigコマンドやnslookupコマンドで調べることができます。

editモードで編集します。

#ひかり電話契約あり・なし共通設定
#ge1 LAN側インタフェース IPv4
interface.ge1.ipv4.address: 192.168.1.1/24
telnetd.service: enable
dhcp.server.0.dns.0.address: 192.168.1.1
dhcp.server.0.expire: 24
dhcp.server.0.interface: ge1
dhcp.server.0.pool.address: 192.168.1.2/24
dhcp.server.0.pool.count: 253
dhcp.server.service: enable

#dhcpv6クライアント
dhcp6.client.100.interface: ge0
dhcp6.client.service: enable

#DNSリゾルバ
resolver.100.address: dhcp6
resolver.service: enable

#ge1 LAN側インタフェースにDNSを配布
dhcp6.server.100.dns.100.address: dhcp6
dhcp6.server.100.interface: ge1
dhcp6.server.service: enable

#IPv6ルート
route.ipv6.100.destination: default
route.ipv6.100.gateway: router-advertisement
route.ipv6.100.router-advertisement-interface: ge0

#DNSフォワーダ
dns-forwarder.100.address: dhcp6
dns-forwarder.listen.100.interface: ge1
dns-forwarder.service: enable

#DS-Liteトンネル
interface.tunnel0.ipv4.address: ge1
interface.tunnel0.ipv6.dslite.aftr: dgw.xpass.jp
interface.tunnel0.mtu: 1500
interface.tunnel0.ipv4.tcp-mss: 1420
route.ipv4.100.destination: default
route.ipv4.100.gateway: tunnel0

#旧CONFIGを新CONFIGに変換するときに必ず付いてくる設定
option.ipv4.fragment-requeueing.service: disable
option.ipv4.monitor-linkstate.service: disable
option.ipv4.send-icmp-redirect.service: enable
option.ipv6.fragment-requeueing.service: disable
option.ipv6.monitor-linkstate.service: disable
option.ipv6.send-icmp-redirect.service: enable

#IPv6フィルタ ge0でDS-LiteのIPIPに使うプロトコル4を通します。
filter.ipv6.100.action: pass
filter.ipv6.100.direction: inout
filter.ipv6.100.interface: ge0
filter.ipv6.100.label: DSLite
filter.ipv6.100.logging: off
filter.ipv6.100.protocol: 4
filter.ipv6.100.state: disable

#IPv6フィルタ ge0でDHCPv6を通します。
filter.ipv6.200.action: pass
filter.ipv6.200.destination.address: self
filter.ipv6.200.destination.port: 546
filter.ipv6.200.direction: in
filter.ipv6.200.interface: ge0
filter.ipv6.200.label: DHCPV6_PASS
filter.ipv6.200.logging: off
filter.ipv6.200.protocol: udp
filter.ipv6.200.state: disable

#IPv6フィルタ ge0でICMPv6 raを通します。
filter.ipv6.300.action: pass
filter.ipv6.300.direction: in
filter.ipv6.300.icmp-type: 134
filter.ipv6.300.interface: ge0
filter.ipv6.300.label: ICMPV6_RA_PASS
filter.ipv6.300.logging: off
filter.ipv6.300.protocol: ipv6-icmp
filter.ipv6.300.state: disable

#IPv6フィルタ ge0でICMPv6 nsを通します。
filter.ipv6.400.action: pass
filter.ipv6.400.direction: in
filter.ipv6.400.icmp-type: 135
filter.ipv6.400.interface: ge0
filter.ipv6.400.label: ICMPV6_NS_PASS
filter.ipv6.400.logging: off
filter.ipv6.400.protocol: ipv6-icmp
filter.ipv6.400.state: disable

#IPv6フィルタ ge0で外向きの通信とその応答だけ通し、内向きの通信はすべて落とします。
filter.ipv6.500.action: pass
filter.ipv6.500.direction: out
filter.ipv6.500.interface: ge0
filter.ipv6.500.label: OUTGOING
filter.ipv6.500.state: enable
filter.ipv6.600.action: block
filter.ipv6.600.direction: in
filter.ipv6.600.interface: ge0
filter.ipv6.600.label: BLOCK_IN

#IPv6フィルタ トンネルはIPv6をすべてブロックします。
filter.ipv6.700.action: block
filter.ipv6.700.direction: inout
filter.ipv6.700.interface: tunnel0
filter.ipv6.700.label: BLOCK_DSLITE_V6
filter.ipv6.700.logging: on

#IPv4フィルタ 外向きの通信とその応答だけ通し、内向きの通信はすべて落とします。
filter.ipv4.100.action: pass
filter.ipv4.100.direction: out
filter.ipv4.100.interface: tunnel0
filter.ipv4.100.label: OUTGOING
filter.ipv4.100.logging: off
filter.ipv4.100.state: enable
filter.ipv4.200.action: block
filter.ipv4.200.direction: in
filter.ipv4.200.interface: tunnel0
filter.ipv4.200.label: INCOMING
filter.ipv4.200.logging: on

#NTP 仮想マシンはホストのCMOS時刻で起動するので無くても困らないかも
ntp.client.100.address: ntp.nict.jp
ntp.server: enable
ntp.service: enable


##ひかり電話契約ありとなしの違いは以下

#ひかり電話契約あり。ONU直結でもホームゲートウェイ配下でも同じ。
  #(ONU直結では/56、ホームゲートウェイ配下では/60のサブネットがあるので
  #ge1に0x1、ge2に0x2、ge3に0x3、ge4に0x4、といったようにサブネットごとに
  #/64でIPv6を割り当てることもできます。)
  #(ひかり電話契約のある回線で、ONU直下と、ホームゲートウェイ配下のどちらも接続できることを確認しています。)
dhcp6.client.100.prefix-delegation.100.sla-id: 0x0
dhcp6.client.100.prefix-delegation.100.subnet: ge1
router-advertisement.100.advertise.100.prefix: auto
router-advertisement.100.interface: ge1
router-advertisement.100.other-flag: enable
router-advertisement.service: enable

#ひかり電話契約なし。
  #(最初から/64しか無いのでWAN側とLAN側をブリッジします)
  #(すいません、この内容で大丈夫だと思いますが「ひかり電話契約なし」の環境が無いので試験できていません。)
interface.bridge0.forward.ipv4: disable
interface.bridge0.forward.ipv6: enable
interface.bridge0.member.100.interface: ge1
interface.bridge0.member.200.interface: ge0
router-advertisement.service: disable


反映と設定の保存

commit で反映させます。
問題なければ
save-to flashrom で保存しておきましょう。

動作チェック

スピードテストで300-600Mbpsくらい出ています。それなりの性能が出ていますが、かなり強つよの仮想ホストに乗っているおかげかも。
都会は光クロス(10G)のサービスも始まりましたのでそちらでもSEIL/x86 Ayameを使ってみたいところですが、「スタンダードエディション」が使えるのは1Gインタフェースまでです。残念。
# show status interface
interface ge0:
        Description: ""
        Status: link up, administratively up
        MTU: 1500
        TCPMSS: none
        TCPMSS6: none
        LastChange: 2021/05/17 17:08:50
        Ipkts: 2665069, Ierrs: 0, Opkts: 2812683, Oerrs: 0, Colls: 0
        InOctets: 2804127492, OutOctets: 2993496395, InDrops: 0, OutDiscards: 0
        InUnknownProtos: 0
        Media: auto (1000baseT Full-Duplex)
        EthernetAddress: 00:xx:xx:xx:xx:xx
        IPv6 address: fe80::xxxx:xxxx:xxxx:xxxx%ge0 prefixlen: 64 scopeid: 0x1
interface ge1:
        Description: ""
        Status: link up, administratively up
        MTU: 1500
        TCPMSS: none
        TCPMSS6: none
        LastChange: 2021/05/17 17:08:50
        Ipkts: 2903123, Ierrs: 0, Opkts: 2641292, Oerrs: 0, Colls: 0
        InOctets: 2906011875, OutOctets: 2721149799, InDrops: 0, OutDiscards: 0
        InUnknownProtos: 0
        Media: auto (1000baseT Full-Duplex)
        EthernetAddress: 00:xx:xx:xx:xx:xx
        IP   address: 192.168.1.1 netmask: 255.255.255.0 broadcast: 192.168.1.255
        IPv6 address: fe80::xxxx:xxxx:xxxx:xxxx%ge1 prefixlen: 64 scopeid: 0x2
        IPv6 address: 2001:xxxx:xxxx:xxxx::1 prefixlen: 64 scopeid: 0x2
        IPv6 address: 2001:xxxx:xxxx:xxxx:: prefixlen: 64 scopeid: 0x2 anycast
interface tunnel0:
        Description: ""
        Status: administratively up
        MTU: 1500
        TCPMSS: 1240
        TCPMSS6: 1220
        ToS/TrafficClass: 0x0
        LastChange: 2021/05/17 23:36:33
        Ipkts: 1994612, Ierrs: 0, Opkts: 2333849, Oerrs: 100, Colls: 0
        InOctets: 2002404518, OutOctets: 2286616482, InDrops: 0, OutDiscards: 0
        InUnknownProtos: 0
        Tunnel address: 2001:xxxx:xxxx:xxxx::1 --> 2001:f60:0:200::1:1
        IP   address: 192.168.1.1 --> 192.168.1.1 netmask: 255.255.255.255
        IPv6 address: fe80::xxxx:xxxx:xxxx:xxxx%%tunnel0 --> fe80::xxxx:xxxx:xxxx:xxxx%%tunnel0 prefixlen: 64
interface loopback0:
        Description: ""
        Status: administratively up
        LastChange: 2021/05/17 17:08:50
        Ipkts: 0, Ierrs: 0, Opkts: 0, Oerrs: 0, Colls: 0
        InOctets: 0, OutOctets: 0, InDrops: 0, OutDiscards: 0
        InUnknownProtos: 0
        IPv6 address: ::1 prefixlen: 128 scopeid: 0x555 
        IPv6 address: fe80::1%loopback0 prefixlen: 64 scopeid: 0x555
# 
ONU直下の場合。ホームゲートウェイ配下に移動するとDelegated Prefixが/60になります
# show status dhcp6
========================================
DHCPv6 client: running

----------------------------------------
Interface:          ge0
State:              bound

Client DUID:        00:xx:xx:xx:xx:xx:xx:xx:xx:xx
Server DUID:        00:xx:xx:xx:xx:xx:xx:xx:xx:xx
Server Preference:  0

Delegated Prefix:   2001:xxxx:xxxx:xxxx::/56
    preferred lifetime:      12600
    valid lifetime:          14400
    time to renew  (T1):      7200
    time to rebind (T2):     10800

DNS Servers:        2001:a7ff:5f01:1::a
                    2001:a7ff:5f01::a

SNTP Servers:       2001:a7ff:102::b
                    2001:a7ff:102::a

Last Updated:       2021/05/17 23:07:44


========================================
DHCPv6 server: running

----------------------------------------
Interface:          ge1

Server DUID:        00:xx:xx:xx:xx:xx:xx:xx:xx:xx


========================================
DHCPv6 relay: not running

Amazonの購入先はこちらから。

コメント

このブログの人気の投稿

OfficeのISOダウンロード直リンク

FortiGateシリーズ 40F/50E/60E/60F/80F/90E/100E/100F/200FのCPU

ネクストのIPv6網内折り返し通信で高速VPN