転載・引用について

ユーザ用ツール

サイト用ツール


サイドバー

Site Contents Index

転載・引用について

RSS

tweet

つぶやき

技術系や雑感等は再編集して本文の記事にする事を前提としているので、こっちにLinkを張らないでください。

WireGuard for FreeBSD の(おそらく)BUG

大したBUGではないけど、見つけてしまったのだから仕方がない。

minira# diff -c wg-quick /usr/local/bin/wg-quick
*** wg-quick    Thu Aug  5 03:28:13 2021
--- /usr/local/bin/wg-quick     Mon Jul  5 06:18:56 2021
***************
*** 97,103 ****
                        SaveConfig) read_bool SAVE_CONFIG "$value"; continue ;;
                        esac
                fi
!               WG_CONFIG+="$stripped"$'\n'
        done < "$CONFIG_FILE"
        shopt -u nocasematch
  }
--- 97,103 ----
                        SaveConfig) read_bool SAVE_CONFIG "$value"; continue ;;
                        esac
                fi
!               WG_CONFIG+="$line"$'\n'
        done < "$CONFIG_FILE"
        shopt -u nocasematch
  }

見ればわかるけど、本当に大した話じゃない…

# しかし、空行を削除してもいい気はするし、しなくてもいい気もするなぁ。単にuniq通すだけだからまぁ、どっちでもいいんだけど。

· 2021/08/05 03:47 · 2021/08/05 03:47

FreeBSDのMulti-Fibとpacket送出について(駄文)

FreeBSDのMulti-FIBとIPパケット送出について、なんとなく色々考えていたら、少し問題がありそうなことに気がついたので考えてみた。 なお、実際のcodeは見ていないので、もしかすると大勘違いをしている可能性があります。

そこそこ長いかもしれないので、興味のない人はスルーでお願いします。

→ 続き...

· 2021/08/03 02:21 · 2021/08/03 02:21

FreeBSD EtherIP でトラブル(未解決)

FreeBSD 12-RELEASE を利用して以下の環境を構築したところうまくいかなかった。

以下は、症状を再現するための必要設定のみ記載している。

試験環境: FreeBSD rt12 12.2-RELEASE-p6 FreeBSD 12.2-RELEASE-p6 GENERIC amd64 基盤:VMware 5.5 及び、XCP-ng 8.2.0

Bridge0 -- gif0 -- em0 -- (network) -- em0 -- gif0 -- Bridge0
Node A   FreeBSD 12 ->|               |<- FreeBSD 12   Node B

なお、試験環境は、VMware上で構築している。また、自明だと思うが、kernel側でv4 forwarding/v6 forwardingを1にして、Routerモードにしてある

  • NodeAで設定したのは以下の通り
    • ifconfig em0 10.0.0.1/24
      ifconfig gif0 create
      ifconfig gif0 mtu 1500					# 記述ミス。追記
      ifconfig gif0 tunnel inet 10.0.0.1 10.0.0.2
      ifconfig gif0 inet 172.16.0.1/24 alias
      route add -net 172.16.1.0/24 -iface gif0
      ifconfig bridge0 create
      ifconfig bridge0 mtu 1500				# 記述ミス。追記
      ifconfig bridge0 addm gif0 -stp gif0
  • NodeBで設定したのは以下の通り
    • ifconfig em0 10.0.0.2/24
      ifconfig gif0 create
      ifconfig gif0 mtu 1500					# 記述ミス。追記
      ifconfig gif0 tunnel inet 10.0.0.2 10.0.0.1
      ifconfig gif0 inet 172.16.1.1/24 alias
      route add -net 172.16.0.0/24 -iface gif0
      ifconfig bridge0 create
      ifconfig bridge0 mtu 1500				# 記述ミス。追記
      ifconfig bridge0 addm gif0 -stp gif0

以上のように設定したところ、通信ができなかった。(NodeAでping 172.16.1.1を実行した)

tcpdumpでgif0の通信内容を見る(tcpdump -ni gif0) と、AF Unknown (18), length 46:が表示される。また、この時にtcpdump -ni em0を見ると、IP 10.0.0.1 > 10.0.0.2: ip-proto-97 86 のように、Packetは出て行っており、IPのProtocol番号97で通信しているようだが、pingは届かない。(parameter errorが出る)

この問題は、IP AddressをIPv4からIPv6に置き換えても変わらなかった

追記(記載忘れ。20210530)

  • いくつかのWeb Pageに、sysctlでkernelパラメータをいじるという記事があるので、実行したが変化なし
    • sysctl net.link.bridge.ipfw=0
      sysctl net.link.bridge.pfil_bridge=0
      sysctl net.link.bridge.pfil_member=0
  • bridge0 に物理I/Fを追加してみたが、これも効果なし
    • ifconfig bridge0 addm em1 -stf em1

問題を切り分けようと、bridge I/Fを削除すると、問題なくICMPが届くところを見ると、gifでの通信は正常にできていると考えられる。

とすると、FreeBSDのbridge deviceがEtherIP関連でものすごく変なことをしているとしか考えられない… と思って、ifconfig bridge0 deletem gif0 をNodeA/NodeBの両方で実行すると、問題なく通信できるようになる。

よく見る(症状1)と、

  1. bridge0にgif0が所属していない時は、gif経由でいわゆるIPv4/IPv6パケットが流れた
  2. bridge0にgif0が所属している時(addmした時)は、protocol number 97(EtherIP/on em0)/(parameter error/on gif0)の通信のように見える (tcpdumpのBinaryを解析する根性はなかった)。

追記(20210530)

以前、佐藤先生から、中を解析するには、Protocol number=97を追いかけるしかない、というお話をいただいている。

問題は、同一のFreeBSD同士でのgif+bridgeを用いたEtherIP通信が、IPv4でもIPv6でも失敗するところ。なお、NECのIX2000シリーズのEtherIPと繋ごうとしてもつなげないので、流石にFreeBSD側のBUGと考えるしかないが、問題はそのBUGが bridge(if_bridge.c) にあるのか gif(if_gif.c)にあるのかわからない…

なお、いくつか試験するにあたって、

  1. gifのみにIP Address(172.16.0.1/172.16.1.1)を割り当てた場合
  2. bridgeのみにIP Address(172.16.0.1/172.16.0.2)を割り当てた場合 (BridgeはBridgeをDirectに繋いでいるので、同一Segmentである必要がある)
  3. lo9を作成してそこのみにIP Address(172.16.0.1/172.16.1.1)を割り当てた場合

の3パターンを試験したが、全て、上記の症状1が観測された。

FreeBSD 9系列では動いているという報告はあるのだが、それもどこまで信用すれば…(いまさらFreeBSD 9-RELEASEを作る気にならなかった) そして、FreeBSD 13で動くかわからないしなぁ。

なんで俺はこんなに罠にハマるんだろう… しかも、なんで6時間もDebugにはまったんだろう… さて、どうすれば解決できることやら…

· 2021/05/30 03:52 · 2021/06/24 10:16

LibreOffice for Mac 7.1.3.2

Macで便利に使っているLibreOfficeだが、日本語化したあとMenuのToolTipが文字化けするのが非常に気に入らなかった。

色々対策が出ているが、完全なものがなくイライラしていたのだが、どうやら解決したらしいのでメモ。

  • Terminal Appを利用する
  • /Applications/LibreOffice.app/Contents/Resources/fonts 及び /Applications/LibreOffice.app/Contents/Resources/resource/common/fontsに必要なFont Grif がないのが問題の根本の模様
  • 以下を実行すれば良い
mv /Applications/LibreOffice.app/Contents/Resources/fonts /Applications/LibreOffice.app/Contents/Resources/fonts.bak
mv /Applications/LibreOffice.app/Contents/Resources/resource/common/fonts /Applications/LibreOffice.app/Contents/Resources/resource/common/fonts.bak

これで文字化けのほとんど(今のところ、文字化けを見ることはない)が解消する

· 2021/05/24 20:18 · 2021/05/24 20:18

shell関連メモ

  • ash/yash/bash/zshで定義済み関数一覧を出力する typeset -f
  • ash/yash/bash/zshで関数名だけ抜き出す typeset -f | grep '.*()[ ]*[{]*' | tr -d “() {”
  • ash/yash/bash/zshで関数を消す unset -f [funcname]

→ 続き...

· 2021/04/27 22:58 · 2021/04/28 00:10
このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
tweet.txt · 最終更新: 2018/08/14 15:01 by seirios