I'm setting up a wireless ap without internet connection. A client can connect to the hostapd server and obtain an ip address thanks to dnsmasq. The problem is that the client cannot ping the server and the server cannot ping the client. My server is a raspberry pi 3.
When pinging the client on the server host computer, I get ping: connect: Network is unreachable
. Though the client is connected and has an ip address (tested with $ ip a
).
I do not need internet access nor do I wanna set it up. I have therefor not set up a bridge.
This is my hostapd.conf
:
# the interface used by the AP
interface=wlan0
# "g" simply means 2.4GHz band
hw_mode=g
# the channel to use
channel=10
# limit the frequencies used to those allowed in the country
ieee80211d=1
# the country code
country_code=SE
# 802.11n support
ieee80211n=1
# QoS support, also required for full speed on 802.11n/ac/ax
wmm_enabled=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid=raspi
wpa_passphrase=********
This is my /etc/dnsmasq.conf
:
interface=wlan0
dhcp-range=192.168.10.2,192.168.10.30,255.255.255.0,12h
dhcp-option=3,192.168.10.1
dhcp-option=6,192.168.10.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1
To start the ap I run:
wpa_cli terminate;
systemctl stop dhcpcd;
systemctl start hostapd;
systemctl start dnsmasq;
To stop the ap I run
systemctl stop dnsmasq;
systemctl stop hostapd;
systemctl restart dhcpcd;
I have tried to nmap -sn 192.168.10.0/24
the network with only one result, the client, nmaping only the router at 192.168.10.1
gives nothing eventhough ssh is working on the pi (when ap is off and pi is connected to another wifi).
When doing $ ip a
on the server it still has the same ip address as it had before starting the ap, when it was connected to the wifi, however, this ip address is not accessible via the "old" wifi.
In conclusion, it seems like the rpi can create an AP and give out IP addresses. It says it is connected with an ip address, but when pinging the rpi, it is not connected anywhere. The OS is freshly installed. How can I resolve this?
EDIT:
From server pov:
$ ping 192.168.10.10 # same for x.x.x.1 and x.x.x.0
ping: connect: Network is unreachable
$ ip route
# No output
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether b8:27:eb:42:db:a0 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:17:8e:f5 brd ff:ff:ff:ff:ff:ff
From client pov:
$ ping 192.168.10.1 ## same output for x.x.x.0 too
ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
From 192.168.10.10 icmp_seq=1 Destination Host Unreachable
From 192.168.10.10 icmp_seq=2 Destination Host Unreachable
From 192.168.10.10 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.10.1 ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5054ms
pipe 3
$ ping 192.168.10.10 ## pinging the client itself
ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.122 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.042 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.040 ms
^C
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3039ms
rtt min/avg/max/mdev = 0.031/0.058/0.122/0.036 ms
$ ip route
default via 192.168.10.1 dev wlan0 proto dhcp metric 302
192.168.10.0/24 dev wlan0 proto dhcp scope link src 192.168.10.10
$ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether d4:61:9d:1b:3f:78 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
Something was probably wrong in my last test as I said the server showed the old ip address it had, it does this every now and then when I restart the ap.