Încerc să configurez sistemul Linux, deci în timpul pornirii/adăugării unui modem nou (vizibil ca usb0 interfață) orice software care se leagă de interfața modemului (usb0) # IP va folosi GW/routing oferit de modem în loc de rutare/GW implicită a sistemului.
Încerc să folosesc systemd/networkd, dar până acum fără succes :( mai jos ce încerc:
Având /etc/systemd/network/usb0.network [1] care ar trebui să configureze interfața cu DHCP, să seteze GW și implicit pe tabelul de rutare 101 aka via_usb0.
După ce am conectat modemul [2], văd IP# atribuit pentru usb0 [3], tabelul de rutare a politicilor actualizat cu iif usb0/oif usb0 intrări [4] și via_usb0 tabel de rutare creat [5].
Î1: De ce nu pot face ping usb0 GW acum?
# ping 192.168.42.129
ping: connect: Rețeaua este inaccesibilă
Ruta către 192.168.42.129 ar trebui luată din tabelul local [6], nu?
Î2: De ce ping usb0 GW în mod explicit prin usb0 eșuează cu pachetele marțiane înregistrate în jurnalul kernelului [7] , deși le văd mergând înainte și înapoi pe usb0 interfață [8]?
# ping 192.168.42.129 -I usb0
PING 192.168.42.129 (192.168.42.129) de la 192.168.42.20 usb0: 56(84) octeți de date.
^C
--- 192.168.42.129 statistici ping ---
2 pachete transmise, 0 primite, 100% pierdere de pachete, timp 1016 ms
Î3: De ce adăugarea unei reguli IP explicite pe sursa usb0 # IP ajută la problema din Q2?
După
regulă ip adăugați de la 192.168.42.20 pref 103 tabel via_usb0
Primesc un răspuns ping (și niciun marțian nu a fost conectat):
# ping 192.168.42.129 -I usb0
PING 192.168.42.129 (192.168.42.129) de la 192.168.42.20 usb0: 56(84) octeți de date.
64 de octeți de la 192.168.42.129: icmp_seq=1 ttl=64 time=0,674 ms
Nu ar trebui iif/oif reguli
101: din toate căutările iif usb0 via_usb0
102: din toate căutările oif usb0 via_usb0
fi suficient pentru a utiliza via_usb0 rutarea poveste?
Î4: Există vreo altă modalitate de lucru pentru a-mi atinge obiectivul?
Mulțumesc anticipat pentru orice contribuție.
[1]:
[Meci]
Nume=usb0
[Reţea]
IPForward=da
DHCP=ipv4
DNSDefaultRoute=fals
[DHCPv4]
UseRoutes=true
RouteTable=101
UseGateway=true
UseDNS=fals
UseNTP=fals
UseSIP=false
UseHostname=false
UseDomains=false
UseTimezone=false
[RoutingPolicyRule]
Familie = ipv4
IncomingInterface=usb0
Tabel = 101
Prioritate = 101
[RoutingPolicyRule]
Familie = ipv4
OutgoingInterface=usb0
Tabel = 101
Prioritate = 102
[2]:
kernel: usb 1-1: nou dispozitiv USB de mare viteză numărul 6 folosind xhci_hcd
kernel: usb 1-1: a fost găsit un nou dispozitiv USB, idVendor=04e8, idProduct=6860, bcdDevice= 4.00
kernel: usb 1-1: șiruri noi de dispozitive USB: Mfr=2, Product=3, SerialNumber=4
kernel: usb 1-1: Produs: SAMSUNG_Android
nucleu: usb 1-1: Producator: SAMSUNG
kernel: usb 1-1: Număr de serie: 42000352b6245200
kernel: cdc_acm 1-1:1.1: ttyACM0: dispozitiv USB ACM
networkd-dispatcher[1068]: AVERTISMENT: index necunoscut 6 văzut, reîncărcarea listei de interfețe
systemd-udevd[13537]: se utilizează schema implicită de denumire a interfeței „v245”.
systemd-udevd[13537]: ethtool: negocierea automată este dezactivată sau activată, viteza și duplexul nu pot fi scrise.
systemd-networkd[13409]: usb0: Link UP
systemd-networkd[13409]: usb0: operator câștigat
[3]:
6: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state NECUNOSCUT grup implicit qlen 1000
link/ether 5a:a3:60:fd:ed:4a brd ff:ff:ff:ff:ff:ff
inet 192.168.42.20/24 brd 192.168.42.255 scope global dynamic noprefixroute usb0
valid_lft 3491sec preferred_lft 3491sec
[4]:
# Afișează regulile IP
0: din toate căutările locale
101: din toate căutările iif usb0 via_usb0
102: din toate căutările oif usb0 via_usb0
32766: din toate căutările principale
32767: din toate căutările implicite
[5]:
# ip route show table via_usb0
implicit prin 192.168.42.129 dev usb0 proto dhcp src 192.168.42.20 metric 1024
192.168.42.0/24 dev usb0 proto dhcp scope link src 192.168.42.20
192.168.42.129 dev usb0 proto dhcp scope link src 192.168.42.20 metric 1024
[6]:
# ip route show table local
difuzare 10.41.0.0 dev tinc_korns proto kernel scope link src 10.41.1.2
local 10.41.1.2 dev tinc_korns proto kernel scope host src 10.41.1.2
difuzare 10.41.255.255 dev tinc_korns proto kernel scope link src 10.41.1.2
difuzare 127.0.0.0 dev la proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
difuzare 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
difuzare 192.168.42.0 dev usb0 proto kernel scope link src 192.168.42.20
local 192.168.42.20 dev usb0 proto kernel scope host src 192.168.42.20
difuzare 192.168.42.255 dev usb0 proto kernel scope link src 192.168.42.20
[7]:
kernel: IPv4: sursa martiană 192.168.42.20 de la 192.168.42.129, pe dev usb0
[8]:
# tcpdump -i usb0 -n
10:44:08.361514 IP 192.168.42.20 > 192.168.42.129: Solicitare ecou ICMP, id 4, seq 1, lungime 64
10:44:08.362095 IP 192.168.42.129 > 192.168.42.20: răspuns ecou ICMP, id 4, seq 1, lungime 64