Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ebpf 缓冲区不足 #686

Open
2 of 3 tasks
junknet opened this issue Oct 31, 2024 · 3 comments
Open
2 of 3 tasks

ebpf 缓冲区不足 #686

junknet opened this issue Oct 31, 2024 · 3 comments

Comments

@junknet
Copy link

junknet commented Oct 31, 2024

Checks

  • I have searched the existing issues
  • I have read the documentation
  • Is it your first time sumbitting an issue

Current Behavior

无法正常启动代理内核

Expected Behavior

No response

Steps to Reproduce

配置文件里我设置了 50个分组 ,50个节点,貌似每个分组都加载了50个节点,导致缓冲区不足

Environment

dae 最新版
os : ubuntu20.04
kernel : 5.15

Anything else?

No response

@dae-prow
Copy link
Contributor

dae-prow bot commented Oct 31, 2024

Thanks for opening this issue!

@junknet
Copy link
Author

junknet commented Oct 31, 2024

配置文件如下:

全局配置

global {
# 绑定lan网口提供给内网设备,填自己服务器的网口,多个逗号隔开
lan_interface: docker0
wan_interface: eth0
log_level: info
auto_config_kernel_parameter: true
allow_insecure: true

# tls配置
tls_implementation: utls
utls_imitate: chrome_auto

}

节点配置

node {
LOCAL_2: "http://127.0.0.1:6002"
LOCAL_3: "http://127.0.0.1:6003"
LOCAL_4: "http://127.0.0.1:6004"
LOCAL_5: "http://127.0.0.1:6005"
LOCAL_6: "http://127.0.0.1:6006"
LOCAL_7: "http://127.0.0.1:6007"
LOCAL_8: "http://127.0.0.1:6008"
LOCAL_9: "http://127.0.0.1:6009"
LOCAL_10: "http://127.0.0.1:6010"
LOCAL_11: "http://127.0.0.1:6011"
LOCAL_12: "http://127.0.0.1:6012"
LOCAL_13: "http://127.0.0.1:6013"
LOCAL_14: "http://127.0.0.1:6014"
LOCAL_15: "http://127.0.0.1:6015"
LOCAL_16: "http://127.0.0.1:6016"
LOCAL_17: "http://127.0.0.1:6017"
LOCAL_18: "http://127.0.0.1:6018"
LOCAL_19: "http://127.0.0.1:6019"
LOCAL_20: "http://127.0.0.1:6020"
LOCAL_21: "http://127.0.0.1:6021"
LOCAL_22: "http://127.0.0.1:6022"
LOCAL_23: "http://127.0.0.1:6023"
LOCAL_24: "http://127.0.0.1:6024"
LOCAL_25: "http://127.0.0.1:6025"
LOCAL_26: "http://127.0.0.1:6026"
LOCAL_27: "http://127.0.0.1:6027"
LOCAL_28: "http://127.0.0.1:6028"
LOCAL_29: "http://127.0.0.1:6029"
LOCAL_30: "http://127.0.0.1:6030"
LOCAL_31: "http://127.0.0.1:6031"
LOCAL_32: "http://127.0.0.1:6032"
LOCAL_33: "http://127.0.0.1:6033"
LOCAL_34: "http://127.0.0.1:6034"
LOCAL_35: "http://127.0.0.1:6035"
LOCAL_36: "http://127.0.0.1:6036"
LOCAL_37: "http://127.0.0.1:6037"
LOCAL_38: "http://127.0.0.1:6038"
LOCAL_39: "http://127.0.0.1:6039"
LOCAL_40: "http://127.0.0.1:6040"
LOCAL_41: "http://127.0.0.1:6041"
LOCAL_42: "http://127.0.0.1:6042"
LOCAL_43: "http://127.0.0.1:6043"
LOCAL_44: "http://127.0.0.1:6044"
LOCAL_45: "http://127.0.0.1:6045"
LOCAL_46: "http://127.0.0.1:6046"
LOCAL_47: "http://127.0.0.1:6047"
LOCAL_48: "http://127.0.0.1:6048"
LOCAL_49: "http://127.0.0.1:6049"
LOCAL_50: "http://127.0.0.1:6050"
LOCAL_51: "http://127.0.0.1:6051"
}

分组配置

group {
proxy_2 {
policy: fixed(0)
}
proxy_3 {
policy: fixed(1)
}
proxy_4 {
policy: fixed(2)
}
proxy_5 {
policy: fixed(3)
}
proxy_6 {
policy: fixed(4)
}
proxy_7 {
policy: fixed(5)
}
proxy_8 {
policy: fixed(6)
}
proxy_9 {
policy: fixed(7)
}
proxy_10 {
policy: fixed(8)
}
proxy_11 {
policy: fixed(9)
}
proxy_12 {
policy: fixed(10)
}
proxy_13 {
policy: fixed(11)
}
proxy_14 {
policy: fixed(12)
}
proxy_15 {
policy: fixed(13)
}
proxy_16 {
policy: fixed(14)
}
proxy_17 {
policy: fixed(15)
}
proxy_18 {
policy: fixed(16)
}
proxy_19 {
policy: fixed(17)
}
proxy_20 {
policy: fixed(18)
}
proxy_21 {
policy: fixed(19)
}
proxy_22 {
policy: fixed(20)
}
proxy_23 {
policy: fixed(21)
}
proxy_24 {
policy: fixed(22)
}
proxy_25 {
policy: fixed(23)
}
proxy_26 {
policy: fixed(24)
}
proxy_27 {
policy: fixed(25)
}
proxy_28 {
policy: fixed(26)
}
proxy_29 {
policy: fixed(27)
}
proxy_30 {
policy: fixed(28)
}
proxy_31 {
policy: fixed(29)
}
proxy_32 {
policy: fixed(30)
}
proxy_33 {
policy: fixed(31)
}
proxy_34 {
policy: fixed(32)
}
proxy_35 {
policy: fixed(33)
}
proxy_36 {
policy: fixed(34)
}
proxy_37 {
policy: fixed(35)
}
proxy_38 {
policy: fixed(36)
}
proxy_39 {
policy: fixed(37)
}
proxy_40 {
policy: fixed(38)
}
proxy_41 {
policy: fixed(39)
}
proxy_42 {
policy: fixed(40)
}
proxy_43 {
policy: fixed(41)
}
proxy_44 {
policy: fixed(42)
}
proxy_45 {
policy: fixed(43)
}
proxy_46 {
policy: fixed(44)
}
proxy_47 {
policy: fixed(45)
}
proxy_48 {
policy: fixed(46)
}
proxy_49 {
policy: fixed(47)
}
proxy_50 {
policy: fixed(48)
}
proxy_51 {
policy: fixed(49)
}
}

路由配置

routing {
sip(172.17.0.2)&&l4proto(tcp) -> proxy_2
sip(172.17.0.3)&&l4proto(tcp) -> proxy_3
sip(172.17.0.4)&&l4proto(tcp) -> proxy_4
sip(172.17.0.5)&&l4proto(tcp) -> proxy_5
sip(172.17.0.6)&&l4proto(tcp) -> proxy_6
sip(172.17.0.7)&&l4proto(tcp) -> proxy_7
sip(172.17.0.8)&&l4proto(tcp) -> proxy_8
sip(172.17.0.9)&&l4proto(tcp) -> proxy_9
sip(172.17.0.10)&&l4proto(tcp) -> proxy_10
sip(172.17.0.11)&&l4proto(tcp) -> proxy_11
sip(172.17.0.12)&&l4proto(tcp) -> proxy_12
sip(172.17.0.13)&&l4proto(tcp) -> proxy_13
sip(172.17.0.14)&&l4proto(tcp) -> proxy_14
sip(172.17.0.15)&&l4proto(tcp) -> proxy_15
sip(172.17.0.16)&&l4proto(tcp) -> proxy_16
sip(172.17.0.17)&&l4proto(tcp) -> proxy_17
sip(172.17.0.18)&&l4proto(tcp) -> proxy_18
sip(172.17.0.19)&&l4proto(tcp) -> proxy_19
sip(172.17.0.20)&&l4proto(tcp) -> proxy_20
sip(172.17.0.21)&&l4proto(tcp) -> proxy_21
sip(172.17.0.22)&&l4proto(tcp) -> proxy_22
sip(172.17.0.23)&&l4proto(tcp) -> proxy_23
sip(172.17.0.24)&&l4proto(tcp) -> proxy_24
sip(172.17.0.25)&&l4proto(tcp) -> proxy_25
sip(172.17.0.26)&&l4proto(tcp) -> proxy_26
sip(172.17.0.27)&&l4proto(tcp) -> proxy_27
sip(172.17.0.28)&&l4proto(tcp) -> proxy_28
sip(172.17.0.29)&&l4proto(tcp) -> proxy_29
sip(172.17.0.30)&&l4proto(tcp) -> proxy_30
sip(172.17.0.31)&&l4proto(tcp) -> proxy_31
sip(172.17.0.32)&&l4proto(tcp) -> proxy_32
sip(172.17.0.33)&&l4proto(tcp) -> proxy_33
sip(172.17.0.34)&&l4proto(tcp) -> proxy_34
sip(172.17.0.35)&&l4proto(tcp) -> proxy_35
sip(172.17.0.36)&&l4proto(tcp) -> proxy_36
sip(172.17.0.37)&&l4proto(tcp) -> proxy_37
sip(172.17.0.38)&&l4proto(tcp) -> proxy_38
sip(172.17.0.39)&&l4proto(tcp) -> proxy_39
sip(172.17.0.40)&&l4proto(tcp) -> proxy_40
sip(172.17.0.41)&&l4proto(tcp) -> proxy_41
sip(172.17.0.42)&&l4proto(tcp) -> proxy_42
sip(172.17.0.43)&&l4proto(tcp) -> proxy_43
sip(172.17.0.44)&&l4proto(tcp) -> proxy_44
sip(172.17.0.45)&&l4proto(tcp) -> proxy_45
sip(172.17.0.46)&&l4proto(tcp) -> proxy_46
sip(172.17.0.47)&&l4proto(tcp) -> proxy_47
sip(172.17.0.48)&&l4proto(tcp) -> proxy_48
sip(172.17.0.49)&&l4proto(tcp) -> proxy_49
sip(172.17.0.50)&&l4proto(tcp) -> proxy_50
sip(172.17.0.51)&&l4proto(tcp) -> proxy_51
l4proto(udp) && dport(443) -> block
fallback: direct
}

Use alidns for China mainland domains and googledns for others.

dns {
upstream {
# googledns: 'tcp+udp://dns.google:53'
alidns: 'udp://119.29.29.29:53'
}
routing {
request {
fallback: alidns
}
response {
# upstream(googledns) -> accept
# ip(geoip:private) && !qname(geosite:cn) -> googledns
fallback: accept
}
}
}

报错信息如下:

[Oct 31 12:25:40] FATAL RoutingMatcherBuilder.BuildKernspace: BpfMapBatchUpdate: batch update: key too big for map: argument list too long

@jschwinger233
Copy link
Member

0.8.0可以复现,但是main HEAD已经没有问题了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants