mirror of
https://github.com/nadoo/glider.git
synced 2025-02-23 17:35:40 +08:00
ipset: do not insert to ipset when forwarder is Direct
This commit is contained in:
parent
1f8a3cdf53
commit
2cba536ab4
@ -82,7 +82,7 @@ use the linux server's ip as your dns server
|
|||||||
#### When client requesting to access http://example1.com (in office.rule), the whole process:
|
#### When client requesting to access http://example1.com (in office.rule), the whole process:
|
||||||
DNS Resolving:
|
DNS Resolving:
|
||||||
1. client sends a udp dns request to linux server, and glider will receive the request(as it listen on default dns port :53)
|
1. client sends a udp dns request to linux server, and glider will receive the request(as it listen on default dns port :53)
|
||||||
2. upstream dns server choice: glider will lookup it's rule config and find out the dns server to use for this domain(matched "example1.com" in office.rule, so 208.67.222.222:53 will be choosen)
|
2. upstream dns server choice: glider will lookup it's rule config and find out the dns server to use for this domain(matched "example1.com" in office.rule, so 208.67.222.222:53 will be chosen)
|
||||||
3. glider uses the forwarder in office.rule to ask 208.67.222.222:53 for the resolve answers
|
3. glider uses the forwarder in office.rule to ask 208.67.222.222:53 for the resolve answers
|
||||||
4. glider updates it's office rule config, add the resolved ip address to it
|
4. glider updates it's office rule config, add the resolved ip address to it
|
||||||
5. glider adds the resolved ip into ipset "glider", and return the dns answer to client
|
5. glider adds the resolved ip into ipset "glider", and return the dns answer to client
|
||||||
|
@ -106,6 +106,11 @@ func NewIPSetManager(mainSet string, rules []*RuleConf) (*IPSetManager, error) {
|
|||||||
set = m.mainSet
|
set = m.mainSet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if dialer is Direct, do not insert to ipset, in order to avoid iptables redirect loop
|
||||||
|
if len(r.Forward) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
for _, domain := range r.Domain {
|
for _, domain := range r.Domain {
|
||||||
m.domainSet.Store(domain, set)
|
m.domainSet.Store(domain, set)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user