Slide 27
Slide 27 text
Next Hop Group & Netlink on Linux | @ebiken | 2022/12/01
④ nexthop group を利用 Multipath (1/2)
> ip nexthop add id 1 via 172.20.105.172 dev eno1
> ip nexthop add id 2 via 172.20.105.173 dev eno1
sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=48, nlmsg_type=RTM_NEWNEXTHOP,
nlmsg_flags=NLM_F_REQUEST|NLM_F_ACK|NLM_F_EXCL|NLM_F_CREATE, nlmsg_seq=1669711458, nlmsg_pid=0}, {nh_family=AF_INET, nh_scope=RT_SCOPE_UNIVERSE,
nh_protocol=RTPROT_UNSPEC, nh_flags=0}, [[{nla_len=8, nla_type=NHA_ID}, 1], [{nla_len=8, nla_type=NHA_GATEWAY}, inet_addr("172.20.105.172")], [{nla_len=8,
nla_type=NHA_OIF}, if_nametoindex("eno1")]]], iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48
sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=48, nlmsg_type=RTM_NEWNEXTHOP,
nlmsg_flags=NLM_F_REQUEST|NLM_F_ACK|NLM_F_EXCL|NLM_F_CREATE, nlmsg_seq=1669711492, nlmsg_pid=0}, {nh_family=AF_INET, nh_scope=RT_SCOPE_UNIVERSE,
nh_protocol=RTPROT_UNSPEC, nh_flags=0}, [[{nla_len=8, nla_type=NHA_ID}, 2], [{nla_len=8, nla_type=NHA_GATEWAY}, inet_addr("172.20.105.173")], [{nla_len=8,
nla_type=NHA_OIF}, if_nametoindex("eno1")]]], iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48
1. RTM_NEWNEXTHOP メッセージを送信し nexthop を作成(2個以上)
Netlink Message Type: RTM_NEWNEXTHOP
Next Hop Message:
nh_family=AF_INET,
nh_scope=RT_SCOPE_UNIVERSE,
nh_protocol=RTPROT_UNSPEC,
nh_flags=0
Netlink Attribute:
{nla_len=8, nla_type=NHA_ID}, 2
{nla_len=8, nla_type=NHA_GATEWAY}, inet_addr("172.20.105.173")
{nla_len=8, nla_type=NHA_OIF}, if_nametoindex("eno1")
Netlink Message Type: RTM_NEWNEXTHOP
Next Hop Message:
nh_family=AF_INET,
nh_scope=RT_SCOPE_UNIVERSE,
nh_protocol=RTPROT_UNSPEC,
nh_flags=0
Netlink Attribute:
{nla_len=8, nla_type=NHA_ID}, 1
{nla_len=8, nla_type=NHA_GATEWAY}, inet_addr("172.20.105.172")
{nla_len=8, nla_type=NHA_OIF}, if_nametoindex("eno1")