Closed albiorix closed 7 years ago
Thanks for the lot of detail in your report.
When I first read it, I thought some new change I made in my local copy might be the issue, but I didn't check it in yet, so that was a red herring.
But it did make me wonder -- you mention that you don't get an address on the tap interface, suggesting to me that this is a change. There is long-standing code to actually remove an address on taps (osdnet.c line 1913; for non-Linux systems though), so can you confirm that you did get one before? (I am considering to leave addresses on existing taps alone, since the scenario for setting up a routed tap involves pre-creating a tap with an address which matches the virtual system's default route).
Given the recent 2 commits, can you check which one causes the problem? For both I can argue that they should not have an effect on networking, at least not before termination. The first checkin (29452634326f4d75d6dac14e28ba250dfbaf7ed2) ought to only add some front-end commands that might help with debugging. But I could have broken command parsing somehow, maybe. The second one (09ee2e73c8cc30a9c4e86455fbde49ea0064faf6) should fix the termination of dpni20 and have no effect before that.
The following is kind of a giveaway:
[root@wol ~]# telnet 192.168.0.51 Trying 192.168.0.51... telnet: connect to address 192.168.0.51: Connection refused
This (connection refused) means that someone (your host machine) is receiving the connection attempt, and refusing it. If you turn on the telnet server on your host you can verify this. Or you can try telnet to another port if you have something else enabled on the host system. Ping works, naturally, since the host handles it no matter what. Setting the Tops-20 system's IP address on the tap interface is plain wrong. Something else is the cause of the problem.
--Johnny
OK, it gets a little more interesting - I have now configured 2 systems -
panda current git 192.168.0.61 tap0 networking broken
pandatest previous release 192.168.0.62 tap1 networking works
I have them both up and running at the same time.
panda - 192.168.0.61 tap0
[root@wol ~]# ip addr show dev tap0
24: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master enp3s5homenet state UNKNOWN group default qlen 1000
link/ether 46:ae:d0:c8:dd:de brd ff:ff:ff:ff:ff:ff
inet6 fe80::44ae:d0ff:fec8:ddde/64 scope link
valid_lft forever preferred_lft forever
pandatest - 192.168.0.62 tap1
[root@wol ~]# ip addr show dev tap1
25: tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master enp3s5homenet state UNKNOWN group default qlen 1000
link/ether 4a:6f:0c:96:25:76 brd ff:ff:ff:ff:ff:ff
inet6 fe80::486f:cff:fe96:2576/64 scope link
valid_lft forever preferred_lft forever
No IP address for either right? But -
root@wol ~]# ping -c 5 192.168.0.61
PING 192.168.0.61 (192.168.0.61) 56(84) bytes of data.
From 192.168.0.5 icmp_seq=1 Destination Host Unreachable
From 192.168.0.5 icmp_seq=2 Destination Host Unreachable
From 192.168.0.5 icmp_seq=3 Destination Host Unreachable
From 192.168.0.5 icmp_seq=4 Destination Host Unreachable
From 192.168.0.5 icmp_seq=5 Destination Host Unreachable
--- 192.168.0.61 ping statistics ---
5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4104ms
pipe 4
[root@wol ~]# ping -c 5 192.168.0.62
PING 192.168.0.62 (192.168.0.62) 56(84) bytes of data.
64 bytes from 192.168.0.62: icmp_seq=1 ttl=255 time=0.278 ms
64 bytes from 192.168.0.62: icmp_seq=2 ttl=255 time=0.250 ms
64 bytes from 192.168.0.62: icmp_seq=3 ttl=255 time=0.277 ms
64 bytes from 192.168.0.62: icmp_seq=4 ttl=255 time=0.223 ms
64 bytes from 192.168.0.62: icmp_seq=5 ttl=255 time=0.247 ms
--- 192.168.0.62 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4128ms
rtt min/avg/max/mdev = 0.223/0.255/0.278/0.020 ms
And
[neilt@wol ~]$ telnet 192.168.0.61
Trying 192.168.0.61...
telnet: connect to address 192.168.0.61: No route to host
[neilt@wol ~]$ telnet 192.168.0.62
Trying 192.168.0.62...
Connected to 192.168.0.62.
Escape character is '^]'.
Neil's Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4
This system is for the use of authorized users only. Usage of
this system may be monitored and recorded by system personnel.
Anyone using this system expressly consents to such monitoring
and is advised that if such monitoring reveals possible
evidence of criminal activity, system personnel may provide the
evidence from such monitoring to law enforcement officials.
@
I'm going to back the two changes out and see which one does it (it might take me a bit of time as my git-fu is not strong), but it's quite weird that neither of the tap interfaces show IP addresses.
Also the startup is different - working -
[dpni20: ifc "tap1" => ether f2:b:a4:84:ab:a8]
not working
[dpni20: ifc "tap0" => ether 0:0:0:0:0:0]
i.e no MAC address
Back soon
Interesting. I think the hint is probably the [dpni20: ifc "tap0" => ether 0:0:0:0:0:0]
but I'll have to ponder and look closer to see how that could have happened.
That the taps have no address is not surprising; if they are bridged they don't need one.
Code to set the mac address is in osdnet.c. Initial value:
static struct eth_addr emhost_ea = /* Emulated host ether addr for tap */
{ 0xf2, 0x0b, 0xa4, 0xff, 0xff, 0xff };
and in the function osn_pfeaget
just below it, the rightmost 3 bytes are randomized.
If the ethernet address ends up as all 0, this proably doesn't get called for some reason.
@Rhialto OK... there was a screw up on this side somewhere. My extreme apologies.
I reverted your two changes. No effect.
I checked the code. Did a git blame - nothing apparent.
So I blew away everything I had, re-cloned from github and suddenly everything was working. I have absolutely no idea what caused it because the only code I've been playing with is read20.c
.
I now have the following -
[neilt@wol ~]$ telnet panda
Trying 192.168.0.61...
Connected to panda.
Escape character is '^]'.
Neil's Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4
This system is for the use of authorized users only. Usage of
this system may be monitored and recorded by system personnel.
Anyone using this system expressly consents to such monitoring
and is advised that if such monitoring reveals possible
evidence of criminal activity, system personnel may provide the
evidence from such monitoring to law enforcement officials.
@log nrt
Job 9 on TTY44 (TCP) 22-Jan-2017 12:28:12
Last interactive login 22-Jan-2017 12:15:13
Last non-interactive login Never
End of LOGIN.CMD.4
[neilt@wol ~]$ telnet pandatest
Trying 192.168.0.62...
Connected to pandatest.
Escape character is '^]'.
Neil's Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4
This system is for the use of authorized users only. Usage of
this system may be monitored and recorded by system personnel.
Anyone using this system expressly consents to such monitoring
and is advised that if such monitoring reveals possible
evidence of criminal activity, system personnel may provide the
evidence from such monitoring to law enforcement officials.
@log nrt
Job 9 on TTY44 (TCP) 22-Jan-2017 16:28:21
Last interactive login 22-Jan-2017 16:09:10
Last non-interactive login 22-Jan-2017 00:09:05
End of LOGIN.CMD.6
Once again, apologies.
No problem! Glad it is solved.
@Rhialto @hrlzm Thanks for the assistance.
With the latest git changes to klh10 my previously working TCP/IP setup no longer works.
System - Linux Fedora 24 64 bit
Software - Latest git klh10 running TOPS-20 Panda distribution.
Startup Script (klt20) -
ini file (klt20.ini) -
System Startup Messages -
bridge interface is up -
tap0 is up and connected to the bridge -
But no IP address on tap0 -
If I manually add an IP address -
@Rhialto I can ping it, but not telnet to my Panda -
Entire network broken - At this stage, the networking on my machine is broken, I can ping my own interface (192.168.0.5) and the tap0 interface (192.168.0.51) but nothing's going into or out of my machine. Once I shutdown klh10, everything's back to normal.
Closedown works On the plus side - dpni20 no longer hangs around, and everything shuts down properly.
If you need any more info/debugging, please shout.