(self)
| 82 | CsHelper.service("dnsmasq", "reload") |
| 83 | |
| 84 | def configure_server(self): |
| 85 | self.conf.add("bind-interfaces", 0) |
| 86 | idx = 0 |
| 87 | listen_address = ["127.0.0.1"] |
| 88 | for i in self.devinfo: |
| 89 | if not i['dnsmasq']: |
| 90 | continue |
| 91 | device = i['dev'] |
| 92 | ip = i['ip'].split('/')[0] |
| 93 | gn = CsGuestNetwork(device, self.config) |
| 94 | # Gateway |
| 95 | gateway = '' |
| 96 | if self.config.is_vpc(): |
| 97 | gateway = gn.get_gateway() |
| 98 | else: |
| 99 | gateway = i['gateway'] |
| 100 | sline = "dhcp-range=set:interface-%s-%s" % (device, idx) |
| 101 | if self.cl.is_redundant(): |
| 102 | line = "dhcp-range=set:interface-%s-%s,%s,static" % (device, idx, gateway) |
| 103 | else: |
| 104 | line = "dhcp-range=set:interface-%s-%s,%s,static" % (device, idx, ip) |
| 105 | self.conf.search(sline, line) |
| 106 | sline = "dhcp-option=tag:interface-%s-%s,15" % (device, idx) |
| 107 | line = "dhcp-option=tag:interface-%s-%s,15,%s" % (device, idx, gn.get_domain()) |
| 108 | self.conf.search(sline, line) |
| 109 | # DNS search order |
| 110 | if gn.get_dns() and device: |
| 111 | sline = "dhcp-option=tag:interface-%s-%s,6" % (device, idx) |
| 112 | dns_list = [x for x in gn.get_dns() if x] |
| 113 | if self.config.is_vpc() and not gn.is_vr_guest_gateway(): |
| 114 | if gateway in dns_list: |
| 115 | dns_list.remove(gateway) |
| 116 | if gn.data['router_guest_ip'] != ip: |
| 117 | dns_list.insert(0, ip) |
| 118 | elif self.config.is_dhcp() and not self.config.use_extdns(): |
| 119 | guest_ip = self.config.address().get_guest_ip() |
| 120 | if guest_ip and guest_ip in dns_list and ip not in dns_list: |
| 121 | # Replace the default guest IP in VR with the ip in additional IP ranges, if shared network has multiple IP ranges. |
| 122 | dns_list.remove(guest_ip) |
| 123 | dns_list.insert(0, ip) |
| 124 | line = "dhcp-option=tag:interface-%s-%s,6,%s" % (device, idx, ','.join(dns_list)) |
| 125 | self.conf.search(sline, line) |
| 126 | if gateway != '0.0.0.0': |
| 127 | sline = "dhcp-option=tag:interface-%s-%s,3," % (device, idx) |
| 128 | line = "dhcp-option=tag:interface-%s-%s,3,%s" % (device, idx, gateway) |
| 129 | self.conf.search(sline, line) |
| 130 | |
| 131 | sline = "dhcp-option=%s,26" % device |
| 132 | line = "dhcp-option=%s,26,%s" % (device, i['mtu']) |
| 133 | self.conf.search(sline, line) |
| 134 | |
| 135 | # Netmask |
| 136 | netmask = '' |
| 137 | if self.config.is_vpc(): |
| 138 | netmask = gn.get_netmask() |
| 139 | else: |
| 140 | netmask = str(i['network'].netmask) |
| 141 | sline = "dhcp-option=tag:interface-%s-%s,1," % (device, idx) |
no test coverage detected