fix: 修复gen_multi2过滤后无边的问题
根因: gen_test_data 第135行 cert_cn 生成有bug
f'*.{random.choice(SERVICES).split(".")[-2:]}'
→ 产生 "*.['example', 'com']" 垃圾cnam
→ 过滤匹配不到任何有效IP
→ 所有节点度=1,无边
修复: 检测并清除垃圾cnam/snam模式,仅保留有效值
测试结果(筛选cnam=api.example.com):
节点718, 边500, 最大度201, 平均度18.5
服务器入度: 152-201
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+11
-2
@@ -145,11 +145,20 @@ def main():
|
||||
for ri in range(args.rows):
|
||||
row = _base_row(total_rows + ri, file_base)
|
||||
|
||||
# ── Remap IPs using topology ──
|
||||
src_ip = row[':ips']
|
||||
# ── Fix garbled cnam/snam from gen_test_data cert_cn bug ──
|
||||
# gen_test_data line 135 generates "*.['example', 'com']" garbage
|
||||
# via f'*.{random.choice(SERVICES).split(".")[-2:]}' — missing .join()
|
||||
snam_val = row.get('snam', '').strip()
|
||||
cnam_val = row.get('cnam', '').strip()
|
||||
import re
|
||||
if snam_val and snam_val != '' and re.match(r'^\*\.[\[\(]', snam_val):
|
||||
row['snam'] = ''
|
||||
snam_val = ''
|
||||
if cnam_val and cnam_val != '' and re.match(r'^\*\.[\[\(]', cnam_val):
|
||||
row['cnam'] = ''
|
||||
cnam_val = ''
|
||||
|
||||
# ── Remap IPs using topology ──
|
||||
# Determine appropriate :ipd based on snam/cnam
|
||||
server_pool = None
|
||||
if snam_val and snam_val in SNAM_TO_IPS:
|
||||
|
||||
Reference in New Issue
Block a user