SYS(out, "ip link add " TX_NAME " type veth peer " FORWARD_NAME);
SYS(out, "ip link set " TX_NAME " netns " TX_NETNS_NAME);
SYS(out, "ip link set dev " FORWARD_NAME " address " FORWARD_MAC);
SYS(out, "ip addr add " FORWARD_ADDR "/" PREFIX_LEN " dev " FORWARD_NAME);
SYS(out, "ip link set dev " FORWARD_NAME " up");
SYS(out, "ip link add " RX_NAME " type dummy");
SYS(out, "ip link set dev " RX_NAME " address " RX_MAC);
SYS(out, "ip addr add " RX_ADDR "/" PREFIX_LEN " dev " RX_NAME);
SYS(out, "ip link set dev " RX_NAME " up");
/* configure the flowtable */
SYS(out, "nft add table ip filter");
SYS(out, "nft add flowtable ip filter f { hook ingress priority 0\\; " "devices = { " FORWARD_NAME ", " RX_NAME " }\\; }");
SYS(out, "nft add chain ip filter forward " "{ type filter hook forward priority 0\\; }");
SYS(out, "nft add rule ip filter forward ip protocol udp th dport "
UDP_PORT_STR " flow add @f");
close_netns(tok);
tok = open_netns(TX_NETNS_NAME); if (!ASSERT_OK_PTR(tok, "setns")) goto out;
SYS(out, "ip addr add " TX_ADDR "/" PREFIX_LEN " dev " TX_NAME);
SYS(out, "ip link set dev " TX_NAME " address " TX_MAC);
SYS(out, "ip link set dev " TX_NAME " up");
SYS(out, "ip route add default via " FORWARD_ADDR);
close_netns(tok);
tok = open_netns(RX_NETNS_NAME); if (!ASSERT_OK_PTR(tok, "setns")) goto out;
iifindex = if_nametoindex(FORWARD_NAME); if (!ASSERT_NEQ(iifindex, 0, "iifindex")) goto out;
skel = xdp_flowtable__open_and_load(); if (!ASSERT_OK_PTR(skel, "skel")) goto out;
link = bpf_program__attach_xdp(skel->progs.xdp_flowtable_do_lookup,
iifindex); if (!ASSERT_OK_PTR(link, "prog_attach")) goto out;
close_netns(tok);
tok = open_netns(TX_NETNS_NAME); if (!ASSERT_OK_PTR(tok, "setns")) goto out;
if (!ASSERT_OK(send_udp_traffic(), "send udp")) goto out;
close_netns(tok);
tok = open_netns(RX_NETNS_NAME); if (!ASSERT_OK_PTR(tok, "setns")) goto out;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.