Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

by ricalfonso (Initiate)
on Nov 26, 2003 at 22:32 UTC ( #310396=perlquestion: print w/replies, xml ) Need Help??

ricalfonso has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: Taking your marbles and running away in regret
by tye (Sage) on Nov 27, 2003 at 02:35 UTC

    The node I'm replying to was emptied (including the title) by the author, apparently in regret after several people replied stating that they couldn't understand it (and/or because a few people downvoted it).

    See (tye)Re: why a nodelet can be kept against author wish? for a longer description of my position on such things. In short: We all make mistakes, there is no good reason to try to hide your mistakes. I often learn more from peoples' mistakes than from anything else. I appreciate seeing a mature correction when a mistake is discovered, leaving the original mistake visible (perhaps with a line through it or such) so the replies below it make sense.

    Deleting your node content is an immature act like "taking your marbles and going home" because you weren't winning. It leaves an ugly mark at the Monastery (replies suddenly with no context).

    I have heard a lot of people express (usually strong) disapproval of such behavior and I don't think I've ever heard anyone praise it so, when I found the node had been quite quickly reaped (with a justification of simply "empty"), I wondered if those who voted for reaping realized that they were helping the author to try to "change history" and just make their mistake "go away" and, in doing so, were more likely to encourage future acts than to discourage them.

    So I've unreaped the node for several reasons:

    • I feel strongly that such nodes shouldn't be reaped
    • I'm hoping to call attention to this problem and get more feedback on how it should be dealt with
    • I feel it was reaped too quickly and worry that those who voted to reap it hadn't considered the consequences
    • I want the original author to have the chance to change their mind and restore the node or at least insert a mature retraction in place of the sulking blankness
    • I'd like to upvote the node (I haven't voted on it) once the author comes to his or her senses and makes a more mature and less rude update to it
    • and, yes, I don't think the author should get off so easy (once a node is reaped, the author can no longer get or lose XP from votes against the node) if the author refuses to take the mature route
    I'd also like to encourage people to not downvote the node. I'm sure it will get several more downvotes despite my request. But I'd rather give the author some time to recover from whatever emotions lead to this retraction and fix the mistake instead of compounding it. If too much time passes or the author makes it clear that they refuse to take the high road, then I will very much want to downvote the node. But I'll check Worst Nodes first and not add to the dogpile if I think too big of one has already formed (which I sincerely hope doesn't happen).

    I also don't think it is appropriate to approve an empty root node and such certainly shouldn't be front-paged. If attention needs to be called to such things on the front page, then a PM Discussion root node about it is what needs to be displayed there.

                    - tye
      Although I do not know what the question was it does seem to have been answered. As this was the first post by the author and it would appear that the account was created to post the question could this be a misunderstanding?

      Perhaps ricalfonso just stumbled across the Monastery and posted. When his question was answered perhaps he tried to remove the question and could only do this by deleteing the contents? Perhaps...

      Going by the name ricalfonso and the quote 'I don't see a question here, just a couple of sentence fragments.' I wonder if the poster is a native English speaker - sometimes we are a bit harsh on speling and grammer.

      Seems like a bit of a baptism by fire - I too have had posted some ill-judged things that have cost me both in terms of ego and XP - but they teach humility, especially when you take tye's advice and update them but acknowledge the changes.

      --tidiness is the memory loss of environmental mnemonics

      thanks tye for explaining what has happened, i was really confused by the empty node and odd replies. can you check the more recent Anonymous posts in that other thread? there was mention about problems logging in....

    A reply falls below the community's threshold of quality. You may see it by logging in.
Re: Query a MAC address
by sauoq (Abbot) on Nov 26, 2003 at 22:40 UTC
Re: Query a MAC address
by Ninthwave (Chaplain) on Nov 26, 2003 at 22:55 UTC
Re: finding MAC/Port on Bridge/Switch
by zengargoyle (Deacon) on Nov 27, 2003 at 01:19 UTC

    first, see if your device tells you what MIBs it supports, some do.

    $ snmpwalk $ARGS $HOSTNAME system ... system.sysORTable.sysOREntry.sysORID.1 = OID: .iso.org.dod.internet.mg +mt.mib-2 system.sysORTable.sysOREntry.sysORID.2 = OID: 17 system.sysORTable.sysOREntry.sysORID.3 = OID: 16 system.sysORTable.sysOREntry.sysORID.4 = OID: .iso.org.dod.internet.sn +mpV2.snmpModules.snmpMIB system.sysORTable.sysOREntry.sysORID.5 = OID: ifMIB system.sysORTable.sysOREntry.sysORID.6 = OID: .iso.org.dod.internet.sn +mpV2.snmpModules.snmpFrameworkMIB system.sysORTable.sysOREntry.sysORID.7 = OID: .iso.org.dod.internet.sn +mpV2.snmpModules.snmpMPDMIB system.sysORTable.sysOREntry.sysORID.8 = OID: .iso.org.dod.internet.sn +mpV2.snmpModules.snmpTargetMIB system.sysORTable.sysOREntry.sysORID.9 = OID: .iso.org.dod.internet.sn +mpV2.snmpModules.snmpNotificationMIB system.sysORTable.sysOREntry.sysORID.10 = OID: .iso.org.dod.internet.s +nmpV2.snmpModules.snmpUsmMIB system.sysORTable.sysOREntry.sysORID.11 = OID: .iso.org.dod.internet.s +nmpV2.snmpModules.snmpVacmMIB system.sysORTable.sysOREntry.sysORID.12 = OID: transmission.7 system.sysORTable.sysOREntry.sysORID.13 = OID: 17.6 system.sysORTable.sysOREntry.sysORID.14 = OID: 17.7 system.sysORTable.sysOREntry.sysORID.15 = OID: enterprises.731.2.2.1 system.sysORTable.sysOREntry.sysORID.16 = OID: enterprises.731.2.2.2 system.sysORTable.sysOREntry.sysORID.17 = OID: 67.1.2 system.sysORTable.sysOREntry.sysORID.18 = OID: 67.2.2 system.sysORTable.sysOREntry.sysORID.19 = OID: .iso.0.8802.1.1.1 system.sysORTable.sysOREntry.sysORID.20 = OID: .iso.2.840.10036 system.sysORTable.sysOREntry.sysORID.21 = OID: enterprises.5624.1.2.4 system.sysORTable.sysOREntry.sysORID.22 = OID: enterprises.5624.1.2.6 system.sysORTable.sysOREntry.sysORID.23 = OID: enterprises.5624.1.2.9 system.sysORTable.sysOREntry.sysORID.24 = OID: enterprises.5624.1.2.10 system.sysORTable.sysOREntry.sysORID.25 = OID: enterprises.5624.1.2.11 system.sysORTable.sysOREntry.sysORID.26 = OID: enterprises.5624.1.2.17 system.sysORTable.sysOREntry.sysORID.27 = OID: enterprises.5624.1.2.18 system.sysORTable.sysOREntry.sysORID.28 = OID: enterprises.5624.1.2.26 system.sysORTable.sysOREntry.sysORID.29 = OID: enterprises.5624.1.2.27 system.sysORTable.sysOREntry.sysORID.30 = OID: enterprises.5624.1.2.30 system.sysORTable.sysOREntry.sysORDescr.1 = RFC 1213 - (AT, IP, ICMP, +TCP, UDP groups) system.sysORTable.sysOREntry.sysORDescr.2 = RFC 1493 - BRIDGE-MIB system.sysORTable.sysOREntry.sysORDescr.3 = RFC 1757 - RMON-MIB (1, 2, + 3, 9) system.sysORTable.sysOREntry.sysORDescr.4 = RFC 1907 - SNMPv2-MIB (SYS +TEM, SNMP) system.sysORTable.sysOREntry.sysORDescr.5 = RFC 2233 - IF-MIB (IF) system.sysORTable.sysOREntry.sysORDescr.6 = RFC 2571 - SNMP-FRAMEWORK- +MIB system.sysORTable.sysOREntry.sysORDescr.7 = RFC 2572 - SNMP-MPD-MIB system.sysORTable.sysOREntry.sysORDescr.8 = RFC 2573 - SNMP-TARGET-MIB system.sysORTable.sysOREntry.sysORDescr.9 = RFC 2573 - SNMP-NOTIFICATI +ON-MIB system.sysORTable.sysOREntry.sysORDescr.10 = RFC 2574 - SNMP-USER-BASE +D-SM-MIB system.sysORTable.sysOREntry.sysORDescr.11 = RFC 2575 - SNMP-VIEW-BASE +D-ACM-MIB system.sysORTable.sysOREntry.sysORDescr.12 = RFC 2665 - EtherLike-MIB system.sysORTable.sysOREntry.sysORDescr.13 = RFC 2674p - P-BRIDGE-MIB system.sysORTable.sysOREntry.sysORDescr.14 = RFC 2674q - Q-BRIDGE-MIB system.sysORTable.sysOREntry.sysORDescr.15 = TMS Common - TMS-COMMON-M +IB system.sysORTable.sysOREntry.sysORDescr.16 = TMS L3 - TMS-L3-MIB system.sysORTable.sysOREntry.sysORDescr.17 = RFC 2618 - RADIUS Authent +ication Client MIB system.sysORTable.sysOREntry.sysORDescr.18 = RFC 2620 - RADIUS Account +ing Client MIB system.sysORTable.sysOREntry.sysORDescr.19 = IEEE 802.1X Port Access C +ontrol MIB system.sysORTable.sysOREntry.sysORDescr.20 = IEEE 802.11 Wireless LAN +MIB system.sysORTable.sysOREntry.sysORDescr.21 = Enterasys RADIUS Authenti +cation Client Config MIB system.sysORTable.sysOREntry.sysORDescr.22 = Enterasys Policy Profile +MIB system.sysORTable.sysOREntry.sysORDescr.23 = Enterasys Extended 802.11 + MIB system.sysORTable.sysOREntry.sysORDescr.24 = Enterasys Extended Switch + MIB system.sysORTable.sysOREntry.sysORDescr.25 = Enterasys R2 Management M +IB system.sysORTable.sysOREntry.sysORDescr.26 = Enterasys 802.1X Rapid Re +keying MIB system.sysORTable.sysOREntry.sysORDescr.27 = Enterasys 802.1X Extensio +ns MIB system.sysORTable.sysOREntry.sysORDescr.28 = Enterasys SSH Server MIB system.sysORTable.sysOREntry.sysORDescr.29 = Enterasys RADIUS Accounti +ng Client Config MIB system.sysORTable.sysOREntry.sysORDescr.30 = Enterasys TLS MIB ...

    this may tell you what's supported, but it's not required.

    second, the information you want can be found in the Q-BRIDGE-MIB (RFC 2674). check MibDepot and search for the MIB.

    -- dot1qTp MIB group ( 1.3.6.1.2.1.17.7.1.2 ) -- iso(1). org(3). dod(6). internet(1). mgmt(2). mib-2(1). dot1dBridge +(17). qBridgeMIB(7). qBridgeMIBObjects(1). dot1qTp(2) dot1qTpFdbTable OBJECT-TYPE -- 1.3.6.1.2.1.17.7.1.2.2 -- iso(1). org(3). dod(6). internet(1). mgmt(2). mib-2(1). dot1dBridge +(17). qBridgeMIB(7). qBridgeMIBObjects(1). dot1qTp(2). dot1qTpFdbTabl +e(2) SYNTAX SEQUENCE OF Dot1qTpFdbEntry MAX-ACCESS not-accessible DESCRIPTION "A table that contains information about unicast entries for which the device has forwarding and/or filtering information. This information is used by the transparent bridging function in determining how to propagate a received frame." REFERENCE "IEEE 802.1Q/D11 Section 12.7.7" ::= { dot1qTp 2}

    you can walk this table and find MAC<->Port mappings.

    $ snmpwalk -M+$HOME/mibs/PublicDomain -m+Q-BRIDGE-MIB -OSX $ARGS $HOST +NAME .1.3.6.1.2.1.17.7.1.2 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:0:1d:d4:4c:2f] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:e6:8b:6e:db] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:10:a4:f5] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:88] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:89] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:8a] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:8b] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:8c] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:8d] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:8e] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:cc:97] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:13:d5:17] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:74:e5:2f] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:ee:40:8a] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:ee:42:b5] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:1:f4:ee:91:3c] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:2:2d:5e:92:6d] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:3:93:ed:a1:6d] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:3:93:ee:d5:a1] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:4:23:4c:96:c2] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:4:23:55:41:c9] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:6:25:b:b9:30] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:6:25:16:69:3c] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:6:25:1d:cb:bc] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:6:25:28:ba:63] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:8:2:44:38:a4] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:a:b7:bb:b:75] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:30:65:6:97:3d] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:40:5:b7:86:99] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:90:4b:5:e:52] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:90:4b:43:2c:3b] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:c0:9f:12:4b:2a] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:d0:1:bb:37:fc] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:e0:63:24:22:17] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:e0:63:24:22:1c] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:e0:63:82:85:cd] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][0:e0:f9:c5:b0:ae] = 1 Q-BRIDGE-MIB::dot1qTpFdbPort[1][1:0:5e:0:0:1] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2048][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2049][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2049][0:1:f4:ee:91:3c] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2050][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2051][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2052][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2053][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2054][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbPort[2055][0:1:f4:13:cc:87] = 0 Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:0:1d:d4:4c:2f] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:e6:8b:6e:db] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:10:a4:f5] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:88] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:89] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:8a] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:8b] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:8c] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:8d] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:8e] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:cc:97] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:13:d5:17] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:74:e5:2f] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:ee:40:8a] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:ee:42:b5] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:1:f4:ee:91:3c] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:2:2d:5e:92:6d] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:3:93:ed:a1:6d] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:3:93:ee:d5:a1] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:4:23:4c:96:c2] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:4:23:55:41:c9] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:6:25:b:b9:30] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:6:25:16:69:3c] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:6:25:1d:cb:bc] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:6:25:28:ba:63] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:8:2:44:38:a4] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:a:b7:bb:b:75] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:30:65:6:97:3d] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:40:5:b7:86:99] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:90:4b:5:e:52] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:90:4b:43:2c:3b] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:c0:9f:12:4b:2a] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:d0:1:bb:37:fc] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:e0:63:24:22:17] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:e0:63:24:22:1c] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:e0:63:82:85:cd] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][0:e0:f9:c5:b0:ae] = learned(3) Q-BRIDGE-MIB::dot1qTpFdbStatus[1][1:0:5e:0:0:1] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2048][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2049][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2049][0:1:f4:ee:91:3c] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2050][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2051][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2052][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2053][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2054][0:1:f4:13:cc:87] = self(4) Q-BRIDGE-MIB::dot1qTpFdbStatus[2055][0:1:f4:13:cc:87] = self(4)

    the port info you have to decode, it's a bitmaped list of ports.

    0 - 00000000 - unknown 1 - 00000001 - first port 2 - 00000010 - second port 3 - 00000011 - first and second port ... # for my AP port 1 is the wired side, port 2 & 3 are the wireless card +s so i look for port & 00000110 to see if a MAC is using that AP.

    see Re: Getting MAC Adress from wireless device and access point for a tiny bit more.

Re: Address a MAC query
by thatguy (Parson) on Nov 26, 2003 at 22:51 UTC
    Overall the examples point to less than that of that. Provided answers the riddle of questions that monks present answer to whether not MAC addresses can be ported to bridge.

    seriously tho, it sounds like this guy is looking either for an example of code that hits a 3com bridge/switch and returns a MAC address for each port and how to turn it on or off OR he's trying his hand at the new age poetry.

    I could be wrong.
    -phill

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://310396]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2023-02-02 07:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I prefer not to run the latest version of Perl because:







    Results (16 votes). Check out past polls.

    Notices?