Eu tenho um roteador, R, e dois hosts, A e B. Todos eles estão executando o Ubuntu 22.04. Tenho acesso físico e permissões necessárias a todas as máquinas envolvidas na configuração e gostaria de fazer o ssh de B para A.
Minha configuração inicial envolveu:
- Conectando A a R através de um cabo ethernet (IP atribuído: 192.168.0.2).
- Conectando B a R usando uma rede sem fio (IP atribuído: 192.168.0.51).
O problema : não consigo conectar de B a A. O host A parece inacessível de B.
Alguém poderia ajudar a diagnosticar o problema, existem certas configurações ou configurações que preciso modificar nos hosts ou roteador?
Obrigado, ficarei feliz em fornecer mais informações quando necessário
EDIÇÃO 1 :
aqui está a saída da rota IP de A, B e do roteador R.
userk@hosta:~$ ip route
default via 192.168.0.1 dev eth0 proto static metric 100
192.168.0.1 dev eth0 proto static scope link metric 100
userk@hostb:~$ ip route
default via 192.168.0.1 dev wlp3s0 proto static metric 20600
169.254.0.0/16 dev wlp3s0 scope link metric 1000
192.168.0.0/24 dev wlp3s0 proto kernel scope link src 192.168.0.226 metric 600
userk@router:~$ ip route
default via 192.168.0.1 dev wlan0 proto static
192.168.0.0/24 dev lanbr0 proto kernel scope link src 192.168.0.1
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.1
EDIÇÃO 2 :
userk@router:~$ ip -details link show lanbr0
13: lanbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether f6:37:88:50:d8:bd brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535
bridge forward_delay 1500 hello_time 200 max_age 2000 ageing_time 30000 stp_state 0 priority 32768 vlan_filtering 0 vlan_protocol 802.1Q bridge_id 8000.f6:37:88:50:d8:bd designated_root 8000.f6:37:88:50:d8:bd root_port 0 root_path_cost 0 topology_change 0 topology_change_detected 0 hello_timer 0.00 tcn_timer 0.00 topology_change_timer 0.00 gc_timer 167.77 vlan_default_pvid 1 vlan_stats_enabled 0 vlan_stats_per_port 0 group_fwd_mask 0 group_address 01:80:c2:00:00:00 mcast_snooping 1 mcast_router 1 mcast_query_use_ifaddr 0 mcast_querier 0 mcast_hash_elasticity 16 mcast_hash_max 4096 mcast_last_member_count 2 mcast_startup_query_count 2 mcast_last_member_interval 100 mcast_membership_interval 26000 mcast_querier_interval 25500 mcast_query_interval 12500 mcast_query_response_interval 1000 mcast_startup_query_interval 3125 mcast_stats_enabled 0 mcast_igmp_version 2 mcast_mld_version 1 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
userk@router:~$ ip link show | grep master
6: lan0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lanbr0 state UP mode DEFAULT group default qlen 1000
7: lan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lanbr0 state UP mode DEFAULT group default qlen 1000
8: lan2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lanbr0 state UP mode DEFAULT group default qlen 1000
9: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master lanbr0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
Se eu adicionar wlan0 à ponte, a seguinte linha será anexada à saída anterior:
11: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lanbr0 state UP mode DORMANT group default qlen 1000
Agora, quando me conecto à rede Wi-Fi, posso ver o outro host A conectado pela Ethernet e posso fazer ssh nele!
Percebi os seguintes arquivos em /etc/systemd/network
userk@router:~$ sudo cat /etc/systemd/network/21-lanbr-bind.network
[Match]
Name=lan0 lan1 lan2 lan3
[Network]
Bridge=lanbr0
Adicionei wlan0 na lista de interfaces em 21-lanbr-bind.network e procura configurar a interface na ponte na inicialização. Isso é bom!
Existe um arquivo dedicado para wlan0
userk@router:~$ sudo cat /etc/systemd/network/30-wlan0.network
[Match]
Name=wlan0
[Network]
#ConfigureWithoutCarrier=true
BindCarrier=eth0
#static setup
Address=192.168.0.1/24
Gateway=192.168.0.1
DNS=192.168.1.1
IPForward=yes
DHCPServer=no
Este arquivo está criando algum conflito? E BindCarrier=eth0 está correto ou necessário?
Você deve usar um switch ou ponte para fazer isso. Claro - o que você faz quando um link é com fio e o outro é sem fio?
O Linux pode unir duas interfaces físicas em uma ponte virtual (por exemplo, switch de software). Isso é comum em roteadores domésticos de plástico (é isso mesmo?)
Parece que já pode ser uma ponte. Confirme executando isto:
ip -details link show lanbr0
Se você vir a palavra "ponte" ali, então é.
Execute isto para descobrir o que já está associado a ele:
ip link show | grep master
Cada linha aqui é um link que está em uma ponte e vai te dizer em qual ponte está (espero que você não tenha mais de
lanbr0
)Aposto que o seguinte é verdade: você tem um enp3s0 (link com fio) ou similar,
lanbr0
mas nãowlan0
.wlan0
alanbr0
-ip link set dev wlan0 master lanbr0
wlan0
não terá um IP e isso é normal -lanbr0
agora sua junção com fio e sem fio está na camada 2 como um switch.