Skip to content
Discussion options

You must be logged in to vote

被fakeip过滤掉的这部分文档好像也没有说的特别清楚,

不知道会不会有大佬回复,这个问题有点小着急,先去阅读了一下源码。

dns模块首先是会经过一个middleware的链,middleware最后才是resolver进行解析

func NewHandler(resolver *Resolver, mapper *ResolverEnhancer) handler {
	middlewares := []middleware{}

	if resolver.hosts != nil {
		middlewares = append(middlewares, withHosts(R.NewHosts(resolver.hosts), mapper.mapping))
	}

	if mapper.mode == C.DNSFakeIP {
		middlewares = append(middlewares, withFakeIP(mapper.fakePool))
	}

	if mapper.mode != C.DNSNormal {
		middlewares = append(middlewares, withMapping(mapper.mapping))
	}

	return compose(middlewares, withResolver(resolver))
}

如果fakeip模块如果被filter的话,就会直接进入下一个middleware,所以说ping.archlinux.org应该是直接有resolver负责解析。所以这里就是resolver…

Replies: 3 comments 6 replies

Comment options

You must be logged in to vote
0 replies
Answer selected by tomaegg
Comment options

You must be logged in to vote
5 replies
@tomaegg
Comment options

@tomaegg
Comment options

@tomaegg
Comment options

@echs-top
Comment options

@echs-top
Comment options

Comment options

You must be logged in to vote
1 reply
@tomaegg
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
3 participants