tweet:2021:0530_01
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
tweet:2021:0530_01 [2021/05/30 04:06] – seirios | tweet:2021:0530_01 [2021/06/24 10:16] (現在) – seirios | ||
---|---|---|---|
行 4: | 行 4: | ||
以下は、症状を再現するための必要設定のみ記載している。 | 以下は、症状を再現するための必要設定のみ記載している。 | ||
+ | |||
+ | 試験環境: | ||
+ | 基盤:VMware 5.5 及び、XCP-ng 8.2.0 | ||
< | < | ||
行 15: | 行 18: | ||
* < | * < | ||
ifconfig em0 10.0.0.1/24 | ifconfig em0 10.0.0.1/24 | ||
- | route add default 10.0.0.2 | ||
ifconfig gif0 create | ifconfig gif0 create | ||
+ | ifconfig gif0 mtu 1500 # 記述ミス。追記 | ||
ifconfig gif0 tunnel inet 10.0.0.1 10.0.0.2 | ifconfig gif0 tunnel inet 10.0.0.1 10.0.0.2 | ||
- | ifconfig gif0 inet 172.16.0.1/ | + | ifconfig gif0 inet 172.16.0.1/ |
route add -net 172.16.1.0/ | route add -net 172.16.1.0/ | ||
ifconfig bridge0 create | ifconfig bridge0 create | ||
- | ifconfig bridge0 addm gif0 -stf gif0 | + | ifconfig bridge0 mtu 1500 # 記述ミス。追記 |
+ | ifconfig bridge0 addm gif0 -stp gif0 | ||
</ | </ | ||
行 27: | 行 31: | ||
* < | * < | ||
ifconfig em0 10.0.0.2/24 | ifconfig em0 10.0.0.2/24 | ||
- | route add default 10.0.0.1 | ||
ifconfig gif0 create | ifconfig gif0 create | ||
+ | ifconfig gif0 mtu 1500 # 記述ミス。追記 | ||
ifconfig gif0 tunnel inet 10.0.0.2 10.0.0.1 | ifconfig gif0 tunnel inet 10.0.0.2 10.0.0.1 | ||
- | ifconfig gif0 inet 172.16.1.1/ | + | ifconfig gif0 inet 172.16.1.1/ |
route add -net 172.16.0.0/ | route add -net 172.16.0.0/ | ||
ifconfig bridge0 create | ifconfig bridge0 create | ||
- | ifconfig bridge0 addm gif0 -stf gif0 | + | ifconfig bridge0 mtu 1500 # 記述ミス。追記 |
+ | ifconfig bridge0 addm gif0 -stp gif0 | ||
</ | </ | ||
以上のように設定したところ、通信ができなかった。(NodeAでping 172.16.1.1を実行した) | 以上のように設定したところ、通信ができなかった。(NodeAでping 172.16.1.1を実行した) | ||
- | tcpdumpでgif0の通信内容を見る('' | + | tcpdumpでgif0の通信内容を見る('' |
- | この問題は、IP AddressをIPv4からIPv6に置き換えても変わらなかった。 | + | この問題は、IP AddressをIPv4からIPv6に置き換えても変わらなかった |
+ | |||
+ | <WRAP box> | ||
+ | **追記(記載忘れ。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/ | ||
+ | * < | ||
+ | ifconfig bridge0 addm em1 -stf em1 | ||
+ | </ | ||
+ | </ | ||
問題を切り分けようと、bridge I/ | 問題を切り分けようと、bridge I/ | ||
行 48: | 行 67: | ||
よく見る(症状1)と、 | よく見る(症状1)と、 | ||
- | - bridge0にgif0が所属していない時は、いわゆるIPv4/ | + | - bridge0にgif0が所属していない時は、gif経由でいわゆるIPv4/ |
- | - bridge0にgif0が所属している時(addmした時)は、protocol number 97(EtherIP)の通信のように見える (tcpdumpのBinaryを解析する根性はなかった)。 | + | - bridge0にgif0が所属している時(addmした時)は、protocol number 97(EtherIP/on __em0__)/ |
+ | |||
+ | <WRAP box> | ||
+ | ** 追記(20210530) ** | ||
+ | |||
+ | 以前、佐藤先生から、中を解析するには、Protocol number=97を追いかけるしかない、というお話をいただいている。 | ||
+ | |||
+ | 問題は、同一のFreeBSD同士でのgif+bridgeを用いたEtherIP通信が、IPv4でもIPv6でも失敗するところ。なお、NECのIX2000シリーズのEtherIPと繋ごうとしてもつなげないので、流石にFreeBSD側のBUGと考えるしかないが、問題はそのBUGが bridge(if_bridge.c) にあるのか gif(if_gif.c)にあるのかわからない... | ||
+ | </ | ||
なお、いくつか試験するにあたって、 | なお、いくつか試験するにあたって、 | ||
行 57: | 行 84: | ||
の3パターンを試験したが、全て、上記の症状1が観測された。 | の3パターンを試験したが、全て、上記の症状1が観測された。 | ||
- | FreeBSD 9系列では動いているという報告はあるのだが、それもどこまで信用すれば... | + | FreeBSD 9系列では動いているという報告はあるのだが、それもどこまで信用すれば...(いまさらFreeBSD 9-RELEASEを作る気にならなかった) |
+ | そして、FreeBSD 13で動くかわからないしなぁ。 | ||
- | さて、どうすれば解決できることやら... | + | なんで俺はこんなに罠にハマるんだろう... しかも、なんで6時間もDebugにはまったんだろう... |
tweet/2021/0530_01.txt · 最終更新: 2021/06/24 10:16 by seirios