landrush 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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.