summaryrefslogtreecommitdiff
path: root/docs/troubleshooting/connectivity.md
blob: 31320573c0a2b39115bb92583ce30423e91c3e5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# Connectivity Tests

## Basic Connectivity Tests

Verifying connectivity can be done with the familiar ping and traceroute
commands. The options for each are shown (the options for each command were
displayed using the built-in help as described in the {ref}`cli`
section and are omitted from the output here):

```{opcmd} ping \<destination\>

Send ICMP echo requests to destination host. There are multiple options to
ping, including VRF support.

:::{code-block} none
vyos@vyos:~$ ping 10.1.1.1
Possible completions:
<Enter>       Execute the current command
adaptive      Ping options
allow-broadcast
audible
bypass-route
count
deadline
do-not-fragment
flood
interface
interval
mark
no-loopback
numeric
pattern
quiet
record-route
size
timestamp
tos
ttl
verbose
vrf
:::
```

```{opcmd} ping tcp \<host\> port \<port\> [count \<n\>] [interface \<ifname\>] [vrf \<name\>] [source-address \<address\>]

Test TCP connectivity to a destination host and port. This is useful when
ICMP is blocked or when you need to verify that a specific TCP service is
reachable.

The `count` option sets the number of TCP connection attempts. Use
`interface` to send probes through a specific interface, `vrf` to run
the test in a VRF, and `source-address` to select the local source address.

Example:

:::{code-block} none
vyos@vyos:~$ ping tcp 10.1.1.1 port 443 count 3
vyos@vyos:~$ ping tcp example.com port 80 interface eth0
vyos@vyos:~$ ping tcp 192.0.2.10 port 179 vrf CUSTOMER source-address 192.0.2.1
:::
```

```{opcmd} traceroute \<destination\>

Trace path to target.

:::{code-block} none
vyos@vyos:~$ traceroute
Possible completions:
<hostname>    Track network path to specified node
<x.x.x.x>
<h:h:h:h:h:h:h:h>
ipv4          Track network path to <hostname|IPv4 address>
ipv6          Track network path to <hostname|IPv6 address>
:::
```


## Advanced Connectivity Tests

```{opcmd} monitor traceroute \<destination\>

However, another helper is available which combines ping and traceroute
into a single tool. An example of its output is shown:

:::{code-block} none
vyos@vyos:~$ mtr 10.62.212.12

                           My traceroute  [v0.85]
vyos (0.0.0.0)
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                  Packets               Pings
Host                            Loss%   Snt   Last   Avg  Best  Wrst StDev
1. 10.11.110.4                   0.0%    34    0.5   0.5   0.4   0.8   0.1
2. 10.62.255.184                 0.0%    34    1.1   1.0   0.9   1.4   0.1
3. 10.62.255.71                  0.0%    34    1.4   1.4   1.3   2.0   0.1
4. 10.62.212.12                  0.0%    34    1.6   1.6   1.6   1.7   0.0
:::

:::{note}
The output consumes the screen and will replace your command
prompt.
:::

Several options are available for changing the display output. Press h to
invoke the built in help system. To quit, just press q and you'll be
returned to the VyOS command prompt.
```


## IPv6 Topology Discovery

IPv6 uses different techniques to discover its Neighbors/topology.

### Router Discovery

```{opcmd} force ipv6-rd interface \<interface\> [address \<ipv6-address\>]

Discover routers via eth0.

Example:

:::{code-block} none
vyos@vyos:~$ force ipv6-rd interface eth0
Soliciting ff02::2 (ff02::2) on eth0...

Hop limit                 :           60 (      0x3c)
Stateful address conf.    :           No
Stateful other conf.      :           No
Mobile home agent         :           No
Router preference         :         high
Neighbor discovery proxy  :           No
Router lifetime           :         1800 (0x00000708) seconds
Reachable time            :  unspecified (0x00000000)
Retransmit time           :  unspecified (0x00000000)
 Prefix                   : 240e:fe:8ca7:ea01::/64
On-link                 :          Yes
Autonomous address conf.:          Yes
Valid time              :      2592000 (0x00278d00) seconds
Pref. time              :        14400 (0x00003840) seconds
 Prefix                   : fc00:470:f1cd:101::/64
On-link                 :          Yes
Autonomous address conf.:          Yes
Valid time              :      2592000 (0x00278d00) seconds
Pref. time              :        14400 (0x00003840) seconds
 Recursive DNS server     : fc00:470:f1cd::ff00
DNS server lifetime     :          600 (0x00000258) seconds
 Source link-layer address: 00:98:2B:F8:3F:11
 from fe80::298:2bff:fef8:3f11
:::
```


### Neighbor Discovery

```{opcmd} force ipv6-nd interface \<interface\> address \<ipv6-address\>

Example:

:::{code-block} none
vyos@vyos:~$ force ipv6-nd interface eth0 address fc00:470:f1cd:101::1

Soliciting fc00:470:f1cd:101::1 (fc00:470:f1cd:101::1) on eth0...
Target link-layer address: 00:98:2B:F8:3F:11 from fc00:470:f1cd:101::1
:::
```