landrush 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +12 -178
  3. data/.travis.yml +6 -1
  4. data/CHANGELOG.md +18 -1
  5. data/CONTRIBUTING.adoc +112 -0
  6. data/Gemfile +6 -9
  7. data/Guardfile +10 -0
  8. data/README.adoc +100 -0
  9. data/Rakefile +14 -2
  10. data/appveyor.yml +20 -0
  11. data/doc/Development.adoc +112 -0
  12. data/doc/ProxyMobile.adoc +66 -0
  13. data/doc/Troubleshooting.adoc +42 -0
  14. data/doc/Usage.adoc +271 -0
  15. data/features/commands.feature +35 -0
  16. data/features/dns_resolution.feature +6 -5
  17. data/features/{landrush-ip.feature → landrush_ip.feature} +0 -0
  18. data/features/step_definitions/landrush_custom_steps.rb +48 -0
  19. data/features/support/env.rb +25 -1
  20. data/landrush.gemspec +3 -3
  21. data/lib/landrush/action/common.rb +3 -11
  22. data/lib/landrush/action/install_prerequisites.rb +2 -3
  23. data/lib/landrush/action/redirect_dns.rb +1 -1
  24. data/lib/landrush/action/setup.rb +25 -30
  25. data/lib/landrush/action/teardown.rb +8 -11
  26. data/lib/landrush/cap/guest/all/read_host_visible_ip_address.rb +28 -4
  27. data/lib/landrush/cap/guest/linux/add_iptables_rule.rb +1 -1
  28. data/lib/landrush/cap/guest/linux/redirect_dns.rb +2 -2
  29. data/lib/landrush/cap/guest/suse/add_iptables_rule.rb +20 -0
  30. data/lib/landrush/cap/guest/suse/install_iptables.rb +14 -0
  31. data/lib/landrush/cap/guest/suse/iptables_installed.rb +11 -0
  32. data/lib/landrush/cap/host/suse/dnsmasq_installed.rb +11 -0
  33. data/lib/landrush/cap/host/suse/install_dnsmasq.rb +14 -0
  34. data/lib/landrush/cap/host/suse/restart_dnsmasq.rb +21 -0
  35. data/lib/landrush/cap/host/windows/configure_visibility_on_host.rb +1 -1
  36. data/lib/landrush/command.rb +42 -17
  37. data/lib/landrush/config.rb +29 -14
  38. data/lib/landrush/plugin.rb +30 -0
  39. data/lib/landrush/server.rb +96 -138
  40. data/lib/landrush/start_server.rb +11 -0
  41. data/lib/landrush/store.rb +6 -2
  42. data/lib/landrush/util/path.rb +32 -0
  43. data/lib/landrush/util/process_helper.rb +46 -0
  44. data/lib/landrush/util/retry.rb +2 -2
  45. data/lib/landrush/version.rb +1 -1
  46. data/test/landrush/action/setup_test.rb +19 -25
  47. data/test/landrush/action/teardown_test.rb +18 -15
  48. data/test/landrush/cap/guest/all/read_host_visible_ip_address_test.rb +35 -1
  49. data/test/landrush/cap/guest/linux/configured_dns_servers_test.rb +8 -8
  50. data/test/landrush/cap/guest/linux/redirect_dns_test.rb +4 -4
  51. data/test/landrush/config_test.rb +23 -2
  52. data/test/landrush/dependent_vms_test.rb +5 -5
  53. data/test/landrush/issues/255.rb +115 -0
  54. data/test/landrush/server_test.rb +22 -4
  55. data/test/landrush/store_test.rb +28 -13
  56. data/test/support/test_server_daemon.rb +2 -4
  57. data/test/test_helper.rb +37 -14
  58. metadata +30 -15
  59. data/CONTRIBUTING.md +0 -103
  60. data/NOTES.md +0 -28
  61. data/README.md +0 -406
  62. data/doc/proxy-mobile/README.md +0 -50
  63. data/features/step_definitions/dns.rb +0 -19
  64. data/features/step_definitions/ip.rb +0 -13
data/Rakefile CHANGED
@@ -5,14 +5,18 @@ require 'rake/clean'
5
5
  require 'rubocop/rake_task'
6
6
  require 'cucumber/rake/task'
7
7
  require 'fileutils'
8
+ require 'asciidoctor'
8
9
 
9
10
  CLOBBER.include('pkg')
10
11
  CLEAN.include('build')
11
12
 
12
13
  task :init do
14
+ # general build directory
13
15
  FileUtils.mkdir_p 'build'
16
+ # Vagrant home directory for integration tests
17
+ FileUtils.mkdir_p 'build/vagrant.d'
14
18
  end
15
- task :features => :init
19
+ task features: :init
16
20
 
17
21
  # Default test task
18
22
  desc 'Run all unit tests'
@@ -23,7 +27,15 @@ end
23
27
 
24
28
  # Cucumber acceptance test task
25
29
  Cucumber::Rake::Task.new(:features)
26
- task :features => :init
30
+ task features: :init
31
+
32
+ desc 'Render Asciidoc into HTML'
33
+ adoc_files = Rake::FileList['**/*.adoc']
34
+ task html: adoc_files.ext('.html')
35
+ rule '.html' => '.adoc' do |t|
36
+ FileUtils.mkdir_p 'build/html'
37
+ Asciidoctor.convert_file t.source, to_dir: 'build/html'
38
+ end
27
39
 
28
40
  task default: [
29
41
  :rubocop,
@@ -0,0 +1,20 @@
1
+ # Landrush CI configuration for AppVeyor
2
+ ---
3
+ version: "{build}"
4
+ branches:
5
+ only:
6
+ - master
7
+ install:
8
+ - set PATH=C:\Ruby22\bin;%PATH%
9
+ - ruby --version
10
+ - gem --version
11
+ - gem uninstall -x bundler
12
+ - gem install bundler -v 1.12.5
13
+ - bundler --version
14
+ - bundle install
15
+ build_script:
16
+ - bundle exec rake clean install
17
+ test_script:
18
+ - bundle exec rake rubocop test TESTOPTS="-v"
19
+ artifacts:
20
+ - path: pkg\*.gem
@@ -0,0 +1,112 @@
1
+ = Development
2
+ :toc:
3
+ :toc-placement!:
4
+
5
+ The following should get you started on setting up your development environment. As a prerequisite you will need a Ruby 2.2 environment. We
6
+ recommend to use https://rvm.io/[RVM] to create an isolated development
7
+ environment. On Windows the http://rubyinstaller.org/[RubyInstaller for
8
+ Windows] is probably the easiest way to get started. In this case you
9
+ will need the http://rubyinstaller.org/add-ons/devkit/[DevKit] as well.
10
+
11
+ '''
12
+ toc::[]
13
+ '''
14
+
15
+ Once you have a working Ruby environment it is time to
16
+ https://help.github.com/articles/fork-a-repo/[fork] the repository. Refer to the link:../CONTRIBUTING.adoc[Contributing] guide for more information.
17
+
18
+ The following sections list the most important commands you will need for
19
+ development.
20
+
21
+ == Setup
22
+
23
+ * Install http://bundler.io/[Bundler]:
24
+ +
25
+ ....
26
+ $ gem install bundler
27
+ ....
28
+ * Install dependencies:
29
+ +
30
+ ....
31
+ $ bundle install
32
+ ....
33
+ * Get a list of all available build tasks:
34
+ +
35
+ ....
36
+ $ bundle exec rake -T
37
+ ....
38
+
39
+ * Build the Landrush gem:
40
+ +
41
+ ....
42
+ $ bundle exec rake install
43
+ ....
44
+ * Clean all generated files:
45
+ +
46
+ ....
47
+ $ bundle exec rake clean clobber
48
+ ....
49
+
50
+ == Tests
51
+
52
+ * Run the test suite:
53
+ +
54
+ ....
55
+ $ bundle exec rake test
56
+ ....
57
+ * Run a single test file:
58
+ +
59
+ ....
60
+ $ bundle exec rake test TEST=<path to test file>
61
+ ....
62
+ * Run cucumber/aruba acceptance tests:
63
+ +
64
+ ....
65
+ $ bundle exec rake features
66
+ ....
67
+
68
+ NOTE: The acceptance tests currently work only for OS X, out of the box.
69
+ On Linux, one has to manually configure the host visibility for the
70
+ TLD _landrush-acceptance-test_. See *Linux* in the *Visibility on the Host* section of the link:Usage.adoc[Usage guide]. On Windows,
71
+ the acceptance tests won't work due to a bug in
72
+ https://github.com/cucumber/aruba/issues/387[Aruba].
73
+
74
+ * Run a single cucumber/aruba acceptance tests:
75
+ +
76
+ ....
77
+ $ bundle exec rake features FEATURE=features/<feature-filename>.feature
78
+ ....
79
+
80
+ == Documentation
81
+
82
+ The documentation of this plugin is written in http://asciidoctor.org[Asciidoc]. If you need some syntax help,
83
+ refer to the http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[AsciiDoc Syntax Quick Reference].
84
+
85
+ To build the documentation you can execute
86
+
87
+ ----
88
+ $ bundle exec rake html
89
+ ----
90
+
91
+ which will build the HTML documentation into the folder _build/html_.
92
+
93
+ The source code also contains a link:../Guardfile[Guardfile] for the https://github.com/guard/guard[Guard] library.
94
+ You can execute
95
+
96
+ ----
97
+ $ bundle exec guard
98
+ ----
99
+
100
+ and your HTML documentation will be automatically updated on each change to an Asciidoc source file.
101
+ https://github.com/guard/guard-livereload[Live reload] is also enabled, so you just need to install the right
102
+ http://livereload.com/extensions/#installing-sections[LiveReload Safari/Chrome/Firefox extension] and your
103
+ browser can refresh the page each time you save a change to your Asciidoc files.
104
+
105
+ == Misc
106
+
107
+ * Run the vagrant binary with the Landrush plugin loaded from your local
108
+ source code:
109
+ +
110
+ ....
111
+ bundle exec vagrant landrush <command>
112
+ ....
@@ -0,0 +1,66 @@
1
+ = Resolve Landrush entries on a mobile device
2
+ :toc:
3
+ :toc-placement!:
4
+
5
+ '''
6
+ toc::[]
7
+ '''
8
+
9
+ For your mobile phone to access VM-hosts two conditions need to be met:
10
+
11
+ * Your VM _needs to be accessible_ from the network your phone's on
12
+ (configure a http://docs.vagrantup.com/v2/networking/public_network.html[public network]).
13
+ * The phone should query Landrush to resolve DNS entries.
14
+
15
+ Most smartphones allow you to configure a custom DNS server (instructions further below),
16
+ but unfortunately some don't allow you to configure a DNS server running on port 10053.
17
+
18
+ To work around that one can proxy queries to the default port 53 with a system-wide DNS server to Landrush.
19
+
20
+ == Proxy bind to your Landrush server
21
+
22
+ The DNS-server `bind` can be installed with http://brew.sh/[homebrew] on
23
+ OS X.
24
+
25
+ In its configuration file forward all queries to your local Landrush and
26
+ disable caching:
27
+
28
+ ....
29
+ options {
30
+ directory "/usr/local/var/named";
31
+
32
+ forwarders {
33
+ 127.0.0.1 port 10053;
34
+ };
35
+
36
+ max-cache-ttl 0;
37
+ max-ncache-ttl 0;
38
+ };
39
+ ....
40
+
41
+ After restarting bind you should be able to resolve your VM's entries on
42
+ your local default DNS server (port 53):
43
+
44
+ ....
45
+ $ dig -p 53 @localhost myhost.vagrant.test
46
+ ....
47
+
48
+ == Configure DNS server on your mobile phone
49
+
50
+ Set your bind server's IP address as the DNS server on your external device.
51
+
52
+ === How to set the DNS server on iOS
53
+
54
+ . Open _Settings_ > _Wi-Fi_
55
+ . Tap the _i_-icon next to your network
56
+ . Tap the _DNS_-row and edit the value
57
+
58
+ === How to set the DNS server on Android
59
+
60
+ . Open _Settings_ > _Wi-Fi_
61
+ . Tap and hold your network, then chose _Modify network_
62
+ . Check _Show advanced options_
63
+ . Under _IP Settings_ tap _DHCP / Static_ and change the value to _Static_
64
+ . Change the _DNS 1_ value and tap _Save_
65
+
66
+ Or use the https://play.google.com/store/apps/details?id=net.emrekoc.dnschanger[Dns Changer] application.
@@ -0,0 +1,42 @@
1
+ = Troubleshooting
2
+ :toc:
3
+ :toc-placement!:
4
+
5
+ Use this guide to resolve basic Landrush issues you run into.
6
+
7
+ '''
8
+ toc::[]
9
+ '''
10
+
11
+ == How to avoid providing sudo password on OS X
12
+
13
+ When using Landrush on OS X, Landrush will try to create a file in
14
+ `/etc/resolver` to make the guest VM visible via DNS on the host. See *OS X* in the *Visibility on the Host* section of the link:Usage.adoc[Usage guide]. To create this file, sudo permissions are needed and Landrush
15
+ will ask you for your sudo password. +
16
+ +
17
+ This can be avoided by adding the
18
+ following entries to the bottom of the sudoer configuration. Make sure
19
+ to edit your `/etc/sudoers` configuration via `sudo visudo`:
20
+
21
+ ....
22
+ # Begin Landrush config
23
+ Cmnd_Alias VAGRANT_LANDRUSH_HOST_MKDIR = /bin/mkdir /etc/resolver/*
24
+ Cmnd_Alias VAGRANT_LANDRUSH_HOST_CP = /bin/cp /*/vagrant_landrush_host_config* /etc/resolver/*
25
+ Cmnd_Alias VAGRANT_LANDRUSH_HOST_CHMOD = /bin/chmod 644 /etc/resolver/*
26
+ %admin ALL=(ALL) NOPASSWD: VAGRANT_LANDRUSH_HOST_MKDIR, VAGRANT_LANDRUSH_HOST_CP, VAGRANT_LANDRUSH_HOST_CHMOD
27
+ # End Landrush config
28
+ ....
29
+
30
+ == Guest is unable to access the Internet
31
+
32
+ In some network configurations the access to outside DNS servers is
33
+ restricted (firewalls, VPN, etc). Since unmatched DNS queries are per
34
+ default passed through to Google's DNS servers, this can lead to the
35
+ fact that the guest cannot access anything in the outside world. +
36
+ +
37
+ If you face problem with the guest's DNS, verify that you can access
38
+ Google's DNS server under __8.8.8.8__. If it does not work, you will
39
+ need to set a custom upstream DNS server. Check your network
40
+ configuration on the host or ask your network administrator about the
41
+ right DNS server address to use. You can set the custom DNS server via
42
+ the `config.landrush.upstream` option, see section on *Unmatched Queries* in the link:Usage.adoc[Usage guide].
@@ -0,0 +1,271 @@
1
+ = Usage
2
+ :toc:
3
+ :toc-placement!:
4
+
5
+ The following sections explain how you can use the Landrush DNS server and customize it as per your requirements, once you have link:README.adoc[installed] it.
6
+
7
+ '''
8
+ toc::[]
9
+ '''
10
+
11
+ == Dynamic entries
12
+
13
+ Every time a VM is started, its IP address is automatically detected and
14
+ a DNS record is created that maps the hostname to its IP. The detection
15
+ works by listing all configured interfaces of the guest using
16
+ https://rubygems.org/gems/landrush-ip/versions/0.2.5[landrush-ip],
17
+ picking the last valid IP found, while ignoring any excluded interfaces.
18
+
19
+ Excluded interfaces are an array of regular expressions; the value shown
20
+ here is the default used when no explicit value for
21
+ `config.landrush.host_interface_excludes` is specified in your
22
+ `Vagrantfile`:
23
+
24
+ ....
25
+ config.landrush.host_interface_excludes = [/lo[0-9]*/, /docker[0-9]+/, /tun[0-9]+/]
26
+ ....
27
+
28
+ If Landrush fails to detect the correct IP address (or none at all), you
29
+ can extend this exclusion range to exclude more interfaces.
30
+
31
+ You can also make sure to only select a specific class of IP address
32
+ (`:ipv4`, `:ipv6` or `:any`). Either way, empty values will not be
33
+ returned, but in the case of `:any` you may get the IPv6 address for an
34
+ interface that has no IPv4 address. The default is to return the first
35
+ non-empty IPv4 address:
36
+
37
+ ....
38
+ config.landrush.host_interface_class = :ipv4
39
+ ....
40
+
41
+ If you need or want to select an interface explicitly and you know its
42
+ name, you can also tell Landrush to grab that interface's IP address
43
+ explicitly:
44
+
45
+ ....
46
+ config.landrush.host_interface = 'eth0'
47
+ ....
48
+
49
+ NOTE: If you specify an interface explicitly, it will have
50
+ priority over `config.landrush.host_interface_excludes`. In other words,
51
+ if `config.landrush.host_interface_excludes` is set to `[/eth[0-9]*/]`,
52
+ but `config.landrush.host_interface` is set to `eth0` and `eth0` exists
53
+ as an interface, the IP address of `eth0` is returned. The interface
54
+ setting takes precedence over the exclude setting. If the interface does
55
+ not exist, the regular heuristics will apply and Landrush will pick the
56
+ last non-excluded IP found.
57
+
58
+ If all else fails, you can override it entirely:
59
+
60
+ ....
61
+ config.landrush.host_ip_address = '1.2.3.4'
62
+ ....
63
+
64
+ This setting will override both the exclude and interface settings
65
+ completely.
66
+
67
+ If you are using a multi-machine `Vagrantfile`, configure this inside
68
+ each of your `config.vm.define` sections.
69
+
70
+ == Static entries
71
+
72
+ You can add static host entries to the DNS server in your `Vagrantfile`
73
+ like so:
74
+
75
+ ....
76
+ config.landrush.host 'myhost.example.com', '1.2.3.4'
77
+ ....
78
+
79
+ This is great for overriding production services for nodes you might be
80
+ testing locally. For example, perhaps you might want to override the
81
+ hostname of your puppetmaster to point to a local vagrant box instead.
82
+
83
+ == Wildcard Subdomains
84
+
85
+ For your convenience, any subdomain of a DNS entry known to Landrush
86
+ will resolve to the same IP address as the entry. For example, given
87
+ `myhost.vagrant.test -> 1.2.3.4`, both `foo.myhost.vagrant.test` and
88
+ `bar.myhost.vagrant.test` will also resolve to `1.2.3.4`.
89
+
90
+ If you would like to configure your guests to be accessible from the
91
+ host as subdomains of something other than the default `vagrant.test`,
92
+ you can use the `config.landrush.tld` option in your Vagrantfile like
93
+ so:
94
+
95
+ ....
96
+ config.landrush.tld = 'vm'
97
+ ....
98
+
99
+ NOTE: From the **host**, you will only be able to access subdomains
100
+ of your configured TLD by default, so wildcard subdomains only apply to
101
+ that space. For the **guest**, wildcard subdomains work for anything.
102
+
103
+ == Unmatched Queries
104
+
105
+ Any DNS queries that do not match any of Landrush's configuration data,
106
+ will be passed through to an upstream DNS server. Per default Landrush
107
+ uses Google's DNS server with the IP __8.8.8.8__.
108
+
109
+ If you would like to configure your own upstream servers, add upstream
110
+ entries to your `Vagrantfile` like so:
111
+
112
+ ....
113
+ config.landrush.upstream '10.1.1.10'
114
+ # Set the port to 1001
115
+ config.landrush.upstream '10.1.2.10', 1001
116
+ # If your upstream is TCP only for some strange reason
117
+ config.landrush.upstream '10.1.3.10', 1001, :tcp
118
+ ....
119
+
120
+ == Visibility on the Guest
121
+
122
+ Linux guests should automatically have their DNS traffic redirected via
123
+ `iptables` rules to the Landrush DNS server. File an issue if this does
124
+ not work for you.
125
+
126
+ To disable this functionality:
127
+
128
+ ....
129
+ config.landrush.guest_redirect_dns = false
130
+ ....
131
+
132
+ You may want to do this if you are already proxying all your DNS
133
+ requests through your host (for example, using VirtualBox's natdnshostresolver1
134
+ option) and you have DNS servers that you can easily set as upstreams in
135
+ the daemon (for example, DNS requests that go through the host's VPN
136
+ connection).
137
+
138
+ == Visibility on the Host
139
+
140
+ Visibility on the host means that the hostname of the VMs can be
141
+ resolved on the host's DNS system. Landrush will attempt an automatic
142
+ configuration of the host, but depending on the OS, manual configuration
143
+ might be required as well.
144
+
145
+ To disable this functionality:
146
+
147
+ ....
148
+ config.landrush.host_redirect_dns = false
149
+ ....
150
+
151
+ * OS X
152
+ +
153
+ If you are on an OS X host, we use a nice trick to unobtrusively add a
154
+ secondary DNS server only for specific domains. During startup Landrush automatically adds
155
+ a file into `/etc/resolver` that points
156
+ lookups for hostnames ending in your `config.landrush.tld` domain to its
157
+ DNS server. (See `man 5 resolver` on your Mac OS X host for more
158
+ information on this file's syntax.)
159
+
160
+ * Linux
161
+ +
162
+ Landrush tries to achieve the same behavior on Linux hosts using
163
+ `dnsmasq`. For some Linux distributions this happens automatically (you
164
+ might have to provide your _sudo_ password). If Landrush does not know
165
+ how to install and start `dnsmasq` on your favorite Linux distribution,
166
+ you can adjust the following example from Ubuntu:
167
+ +
168
+ ....
169
+ sudo apt-get install -y resolvconf dnsmasq
170
+ sudo sh -c 'echo "server=/vagrant.test/127.0.0.1#10053" > /etc/dnsmasq.d/vagrant-landrush'
171
+ sudo service dnsmasq restart
172
+ ....
173
+ +
174
+ If you use a TLD other than the default `vagrant.test`, replace the TLD
175
+ in the above instructions accordingly. Please be aware that anything
176
+ ending in `.local` as TLD will not work because the `avahi` daemon
177
+ reserves this TLD for its own uses.
178
+
179
+ * Windows
180
+ +
181
+ On Windows a secondary DNS server can be configured via the properties
182
+ of the network adapter used by the VM. Landrush will attempt to
183
+ configure the adapter automatically during startup. If this fails,
184
+ please follow the manual setup instructions below.
185
+ +
186
+ It is recommended to use an elevated command prompt (command prompt with
187
+ full administrator permissions), since admin privileges are needed to
188
+ make the required changes. Landrush will try to elevate your prompt
189
+ automatically, but this requires spawning of additional processes which in
190
+ turn loose some potentially important log messages.
191
+ +
192
+ In the following section manual network configuration is described using
193
+ Windows 10 and VirtualBox.
194
+ +
195
+ When running VirtualBox on Windows in combination with Landrush the
196
+ Network Connections
197
+ (`Control Panel\Network and Internet\Network Connections`) looks
198
+ somewhat like this after a successful `vagrant up`: +
199
+ +
200
+ +
201
+ image:img/network-connections.png[Network
202
+ Connections,title="Network Connections"] +
203
+ +
204
+ There will be at least one VirtualBox network adapter. There might be
205
+ multiple depending on your configuration (number of networks configured)
206
+ and how many VMs you have running, but you just need to modify one.
207
+ +
208
+ In a first step, you need to identify the VirtualBox network adapter used
209
+ for the private network of your VM. Landrush requires a private network
210
+ adapter to work and will create one in case you are not explicitly
211
+ configuring one in your `Vagrantfile`.
212
+ +
213
+ To quickly view the settings of each network adapter you can run the
214
+ following command in a shell:
215
+ +
216
+ ....
217
+ netsh interface ip show config
218
+ ....
219
+ +
220
+ The output should look something like this:
221
+ +
222
+ ....
223
+ Configuration for interface "Ethernet0"
224
+ DHCP enabled: Yes
225
+ IP Address: 172.16.74.143
226
+ Subnet Prefix: 172.16.74.0/24 (mask 255.255.255.0)
227
+ Default Gateway: 172.16.74.2
228
+ Gateway Metric: 0
229
+ InterfaceMetric: 10
230
+ DNS servers configured through DHCP: 172.16.74.2
231
+ Register with which suffix: Primary only
232
+ WINS servers configured through DHCP: 172.16.74.2
233
+
234
+ Configuration for interface "VirtualBox Host-Only Network"
235
+ DHCP enabled: No
236
+ IP Address: 10.1.2.1
237
+ Subnet Prefix: 10.1.2.0/24 (mask 255.255.255.0)
238
+ InterfaceMetric: 10
239
+ Statically Configured DNS Servers: None
240
+ Register with which suffix: Primary only
241
+ Statically Configured WINS Servers: None
242
+ ....
243
+ +
244
+ In our case we are interested in the `VirtualBox Host-Only Network`
245
+ which has in this example the private network IP 10.1.2.1. If you do not
246
+ have a static private network IP configured and you cannot determine the
247
+ right adapter via the `netsh` output, ssh into the VM (`vagrant ssh`)
248
+ and run `ifconfig` to view the network configuration of the VM.
249
+ +
250
+ Once you identified the right network adapter run the following as
251
+ Administrator (using the network adapter name of the adapter with the
252
+ determined private network IP):
253
+ +
254
+ ....
255
+ netsh interface ipv4 add dnsserver "VirtualBox Host-Only Network" address=127.0.0.1 index=1
256
+ ....
257
+ +
258
+ This should be enough for Windows 10. On other Windows versions, you
259
+ might have to also add your TLD to the DNS suffix list on the DNS
260
+ Advanced TCP/IP Settings tab: +
261
+ +
262
+ image:img/advanced-tcp-properties.png[Advanced TCP/IP
263
+ Settings,title="Advanced TCP/IP Settings"] +
264
+ +
265
+ * Other Devices (phone)
266
+ +
267
+ You might want to resolve Landrush's DNS-entries on _additional_
268
+ computing devices, like a mobile phone.
269
+ Please refer to link:ProxyMobile.adoc[mobile instructions] for further details.
270
+
271
+ You can refer to the link:Troubleshooting.adoc[Troubleshooting guide] if you encounter any problems while using Landrush.