Add an option called "random" that combined with "ether" can generate a
random MAC address for an Ethernet interface. PR: 211984 Submitted by: pi@ Reviewed by: gnn, cem, jhb, lidl, rpokala, wblock Approved by: wblock (manpages)
This commit is contained in:
parent
f1a6b7cb09
commit
e700bef2dc
@ -90,13 +90,23 @@ link_getaddr(const char *addr, int which)
|
||||
|
||||
if (which != ADDR)
|
||||
errx(1, "can't set link-level netmask or broadcast");
|
||||
if ((temp = malloc(strlen(addr) + 2)) == NULL)
|
||||
errx(1, "malloc failed");
|
||||
temp[0] = ':';
|
||||
strcpy(temp + 1, addr);
|
||||
sdl.sdl_len = sizeof(sdl);
|
||||
link_addr(temp, &sdl);
|
||||
free(temp);
|
||||
if (!strcmp(addr, "random")) {
|
||||
sdl.sdl_len = sizeof(sdl);
|
||||
sdl.sdl_alen = ETHER_ADDR_LEN;
|
||||
sdl.sdl_nlen = 0;
|
||||
sdl.sdl_family = AF_LINK;
|
||||
arc4random_buf(&sdl.sdl_data, ETHER_ADDR_LEN);
|
||||
/* Non-multicast and claim it is a hardware address */
|
||||
sdl.sdl_data[0] &= 0xfc;
|
||||
} else {
|
||||
if ((temp = malloc(strlen(addr) + 2)) == NULL)
|
||||
errx(1, "malloc failed");
|
||||
temp[0] = ':';
|
||||
strcpy(temp + 1, addr);
|
||||
sdl.sdl_len = sizeof(sdl);
|
||||
link_addr(temp, &sdl);
|
||||
free(temp);
|
||||
}
|
||||
if (sdl.sdl_alen > sizeof(sa->sa_data))
|
||||
errx(1, "malformed link-level address");
|
||||
sa->sa_family = AF_LINK;
|
||||
|
@ -28,7 +28,7 @@
|
||||
.\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 8, 2016
|
||||
.Dd September 17, 2016
|
||||
.Dt IFCONFIG 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -145,6 +145,12 @@ is specified as a series of colon-separated hex digits.
|
||||
This can be used to, for example,
|
||||
set a new MAC address on an Ethernet interface, though the
|
||||
mechanism used is not Ethernet specific.
|
||||
Use the
|
||||
.Pq Dq random
|
||||
keyword to set a randomly generated MAC address.
|
||||
A randomly-generated MAC address might be the same as one already in use
|
||||
in the network.
|
||||
Such duplications are extremely unlikely.
|
||||
If the interface is already
|
||||
up when this option is used, it will be briefly brought down and
|
||||
then brought back up again in order to ensure that the receive
|
||||
@ -254,7 +260,7 @@ Display subnet masks in dotted quad notation, for example:
|
||||
.br
|
||||
255.255.0.0 or 255.255.255.192
|
||||
.It Sy hex
|
||||
Display subnet masks in hexidecimal, for example:
|
||||
Display subnet masks in hexadecimal, for example:
|
||||
.br
|
||||
0xffff0000 or 0xffffffc0
|
||||
.El
|
||||
@ -2615,13 +2621,13 @@ and
|
||||
.Cm vlandev
|
||||
must both be set at the same time.
|
||||
.It Cm vlanpcp Ar priority_code_point
|
||||
Priority code point
|
||||
Priority code point
|
||||
.Pq Dv PCP
|
||||
is an 3-bit field which refers to the IEEE 802.1p
|
||||
class of service and maps to the frame priority level.
|
||||
.Pp
|
||||
Values in order of priority are:
|
||||
.Cm 1
|
||||
.Cm 1
|
||||
.Pq Dv Background (lowest) ,
|
||||
.Cm 0
|
||||
.Pq Dv Best effort (default) ,
|
||||
@ -2759,7 +2765,7 @@ interface to send the frame directly to the remote host instead of
|
||||
broadcasting the frame to the multicast group.
|
||||
This is the default.
|
||||
.It Fl vxlanlearn
|
||||
The forwarding table is not populated by recevied packets.
|
||||
The forwarding table is not populated by received packets.
|
||||
.It Cm vxlanflush
|
||||
Delete all dynamically-learned addresses from the forwarding table.
|
||||
.It Cm vxlanflushall
|
||||
|
Loading…
x
Reference in New Issue
Block a user