ER-X
encaplimitをsetできるようにするくん。
ウオ! 消えとる!!!!
https://gist.github.com/nna774/7ec7481a0f8ef8dc96a8627964507ab1 最後に使ったやつが残ってたので助かった。
ipv6-tunnelでanyも指定できるようにするくん。
/opt/vyatta/sbin/vyatta-address に169.254/16を scope link で入れさせるくん。↑ このへん、itamaeでやるようにしたよ。
ethernet eth0に直接ipv6 address autoconf入れるとv6アドレス着くしRAも受けられるように見えるけど、疎通しない。
いろいろ試していたら、bridge br0にipv6 address autoconf入れてeth0にbr0とのブリッジ入れたら通った。なにこれ? バグってない?
conf bridge br0 { address 240b:xxxx:xxxx::2/64 aging 300 bridged-conntrack disable hello-time 2 ipv6 { address { autoconf } dup-addr-detect-transmits 1 } max-age 20 priority 32768 promiscuous disable stp false } ethernet eth0 { bridge-group { bridge br0 } duplex auto speed auto }結局全ては
/opt/vyatta/share/vyatta-cfg/templates/ 以下の設定ファイルにどういうlinuxのコマンドになるかが書かれているので、それを読んだり書き変えたりするのが速い。最初に書いてある改変を施してあるので、ファームウェアアップデートするとipv6tunの設定が飛ぶ!
たぶん改変がもどった結果startup-configを流しこむところがコケる?
どうせ上記も忘れてまた設定を飛ばすであろうので、 https://inside.kmc.gr.jp/~nona7/scrapbox/rebuild-kitashirakawa/secret-links/er-x-config に一部消した設定ファイルがある。
tun周りしか飛ばないからこれでなんとかなるやろ。
右上のupgrade的なボタンを押すと、いきなりアップグレードが走るので注意。
上記のがあるので、突然そんなことになると設定が一部飛ぶけど、今回はわかってたのでshowの結果を保存した。
Firmware v1.9.7+hotfix.1だったのがボタンを押した結果 Firmware v1.9.7+hotfix.4 になってしまったので、どうせ上げるならと Firmware v2.0.9-hotfix.4 に行くことに。2系に行くの怖い。
encaplimitのshを走らせた後、ipv6 tunのやつを入れた。
その後tunあたりしか飛ばない という上の記述を信じて、そのへんの記述を再投入したら直った。
outnana@kizuna# commit[ interfaces ipv6-tunnel v6tun1 ]Cannot get device udp-fragmentation-offload settings: Operation not supportedCannot get device udp-fragmentation-offload settings: Operation not supported
[edit] なんかtunの設定を入れた時に出るけど動いてはいる。なにこれ?
jsonの設定ファイルをそのままペーストする方法ってないんだっけ? と思いながらも行数少ないから手で1行づつ
set hogehoge した。bgpnana@kizuna:~$ show ip bgp summary BGP router identifier 192.50.220.190, local AS number 64777BGP table version is 32 BGP AS-PATH entries2 BGP community entries
Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/Down State/PfxRcd169.254.222.5 4 59128 120 68 3 0 0 00:10:57 1169.254.222.9 4 59128 61 35 3 0 0 00:05:20 12001:df0:8500:22:0:a7:0:a4 59128 124 68 3 0 0 00:10:57 02001:df0:8500:22:0:a7:1:a4 59128 62 36 3 0 0 00:05:20 0
Total number of neighbors 4
Total number of Established sessions 4/sbinにpathが通ってないので気付きづらいが、実はtcpdumpが元々入ってた。
ここを押すと突然アップグレードがはじまってしまうので注意……。
↑のdiffがあるので、アップグレードする際にはそういう心づもりが必要なのに。
ER-X#630e10f4afd39200000f8506 以前も書いてた……。
Operation not supportedのことも、1行づつコピペも、完全に前回と同じこと言いながら同じことやってた。
ちゃんと書かれてて過去の私がえらいということで…………。
とりあえず片方のtunnelが直ったらBGPセッション復活するので、家のインターネットが回復した。
v4の出口もPIにした日に事故らなくても……。
EdgeRouter X v2.0.9-hotfix.6 になった。
2023-01-23リリースなの、まだ更新されてるのえらいな。
hotfixってのやめたら?
今日もアップグレードボタンが有効だったので押した(今回はわかってておした)。
EdgeRouter X v2.0.9-hotfix.7 へ。
なんかコマンドから
show ip bgp summary とか見たい時: /usr/bin/vtysh -c 'show ip bgp summary' みたいにすればいいと気付いた。 /opt/vyatta/bin/vtyshow.pl とかがなんかそれっぽいような気がするが? Vyattaのドキュメントを一回読んだほうが幸福な気もしてくる。
中でこれするようなprometheus exporter書くか?
初期設定でのIPは
192.168.1.1 。2026/10/02
転送ネットのアドレスのscope
vyatta-address が ip addr add をscope指定なしで呼ぶので、169.254/16が scope global で入る。 するとdefaultのようなgateway付きscope global経路の送信元選択で
inet_select_addr() に res->scope = RT_SCOPE_UNIVERSE が渡り、転送ネットのアドレスが選ばれる。 ルータ自身が
curl --interface なしでv4に出られないだけでなく、転送中パケットに対して生成するICMP fragmentation-neededの送信元まで到達不能になっていた。リモートにPMTUを通知できていない。 scope link にすれば除外されてloのアドレスに落ちる。BGPピア宛はconnected route経由なので影響しない。上流のKMCのルータもsystemd-networkdで同じ Scope=link を使っていた。 だがこれだけでは転送パケットへのICMPエラーは直らなかった。
net.ipv4.icmp_errors_use_inbound_ifaddr=1 (EdgeOSが /etc/sysctl.d/30-vyatta-router.conf で入れている。コメントは"exiting interface"と書いてあるが実際はinbound)の間は、 icmp_send() が着信ifaceのアドレスを inet_select_addr(dev, saddr, RT_SCOPE_LINK) で選ぶ。scope引数がLINKなので 253 > 253 が偽でscope linkが除外されず、結局 169.254.222.10 になる。 sysctlを0にすると
saddr = 0 になって経路ベースの送信元選択に落ちる。scope linkと両方揃って初めて直る。 外からのtracerouteにkizunaが出ないのもこれだった。0にしたら出るようになった。
icmp_ratelimit=1000 なので1秒あたり1発しか返らず、3プローブ全部には出ない。 sysctlを書ける設定ノードもEdgeOSには無い。
/config/scripts/post-config.d/ に置けばファームウェアアップデートでも消えない。scopeを書ける設定ノードはEdgeOSに無い(templates全走査で確認)。なので上のパッチ。
ip addr change は exit 0 を返すのに何もしない。kernel 4.14の inet_rtm_newaddr() が既存アドレスへの NLM_F_REPLACE でlifetimeしか更新しないせい。 del + add が要る。#edgerouter #ルータ