pair(4) was created for this exact situation, and is available in
-current and will be in 5.9 and later.


On 2015 Dec 17 (Thu) at 12:19:42 +0100 (+0100), Claer wrote:
:Hello,
:
:I'm trying a "strange" setup with rdomains, bridge and vether.  As there is
:something I don't understand, I'd like to know if the behavior is normal or if
:it is an issue. This is not a production system, just experimentations.
:
:Here is what I'm trying to do. With 1 NIC connected to a "physical" network, I
:wish to have several rdomains connected to the same uplink VLAN.
:As this uplink VLAN provides DHCP, it facilitates the configuration.
:
:When everything is up, I can ping the default router from either rdomain but I
:can't ping rdomain 1 from rdomain 2 or vice versa. Arp is failing to resolve
:the IP addresses eventhough the arp packet is received on vether interface.
:With 2 NICs, the communication succeeds.
:
:The results are the same with 5.8 and current (snapshot downloaded yesterday)
:
:Here is the setup :
:
:1/ configure the interfaces
:testhost:~ # cat /etc/hostname.em0
:dhcp
:
:testhost:~ # cat /etc/hostname.em1
:rdomain 1
:!route -T 1 exec dhclient em1
:testhost:~ #
:
:testhost:~ # cat /etc/hostname.vether2
:rdomain 2
:!route -T 2 exec dhclient vether2
:up
:testhost:~ #
:
:2/ Build the bridge :
:testhost:~ # cat /etc/hostname.bridge0
:add em1
:add vether2
:up
:testhost:~ #
:
:3/ Verify configuration :
:testhost:~ # ifconfig bridge0
:bridge0: flags=41<UP,RUNNING>
:        groups: bridge
:        priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp
:        designated: id 00:00:00:00:00:00 priority 0
:        em1 flags=3<LEARNING,DISCOVER>
:                port 2 ifpriority 0 ifcost 0
:        vether2 flags=3<LEARNING,DISCOVER>
:                port 5 ifpriority 0 ifcost 0
:        Addresses (max cache: 100, timeout: 240):
:                08:00:27:2c:87:f2 em1 1 flags=0<>
:                00:50:b6:67:9c:82 em1 1 flags=0<>
:               [...]
:testhost:~ # ifconfig em0
:em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
:        lladdr 08:00:27:2c:87:f2
:        priority: 0
:        groups: egress
:        media: Ethernet autoselect (1000baseT full-duplex)
:        status: active
:        inet 192.168.79.39 netmask 0xffffff00 broadcast 192.168.79.255
:testhost:~ # ifconfig em1
:em1: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> 
rdomain 1 mtu 1500
:        lladdr 08:00:27:36:20:e8
:        priority: 0
:        media: Ethernet autoselect (1000baseT full-duplex)
:        status: active
:        inet 192.168.79.159 netmask 0xffffff00 broadcast 192.168.79.255
:testhost:~ # ifconfig vether2
:vether2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> rdomain 2 
mtu 1500
:        lladdr fe:e1:ba:d0:45:3b
:        priority: 0
:        groups: vether
:        media: Ethernet autoselect
:        status: active
:        inet 192.168.79.193 netmask 0xffffff00 broadcast 192.168.79.255
:testhost:~ # route -n show -inet
:Routing tables
:
:Internet:
:Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
:default            192.168.79.254     UGS        0      788     -     8 em0
:127/8              127.0.0.1          UGRS       0        0 32768     8 lo0
:127.0.0.1          127.0.0.1          UHl        0        0 32768     1 lo0
:192.168.79/24      192.168.79.39      UC         4    12990     -     4 em0
:192.168.79.39      08:00:27:2c:87:f2  UHLl       0       22     -     1 em0
:192.168.79.123     70:5a:b6:af:a0:42  UHLc       1     6503     -     4 em0
:192.168.79.159     08:00:27:36:20:e8  UHLc       0    11027     -     4 em0
:192.168.79.193     fe:e1:ba:d0:45:3b  UHLc       0    11795     -     4 em0
:192.168.79.254     2c:76:8a:30:2b:00  UHLc       1     1192     -     4 em0
:192.168.79.255     192.168.79.39      UHb        0     5764     -     1 em0
:224/4              127.0.0.1          URS        0      195 32768     8 lo0
:
:testhost:~ # route -nT1 show
:Routing tables
:
:Internet:
:Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
:default            192.168.79.254     UGS        0     1752     -     8 em1
:192.168.79/24      192.168.79.159     UC         1    15026     -     4 em1
:192.168.79.159     08:00:27:36:20:e8  UHLl       0        0     -     1 em1
:192.168.79.254     2c:76:8a:30:2b:00  UHLc       1     1167     -     4 em1
:192.168.79.255     192.168.79.159     UHb        0      734     -     1 em1
:
:testhost:~ # route -nT2 show
:Routing tables
:
:Internet:
:Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
:default            192.168.79.254     UGS        0     2215     -     8 vether2
:192.168.79/24      192.168.79.193     UC         1     5334     -     4 vether2
:192.168.79.193     fe:e1:ba:d0:45:3b  UHLl       0        0     -     1 vether2
:192.168.79.254     2c:76:8a:30:2b:00  UHLc       1      399     -     4 vether2
:192.168.79.255     192.168.79.193     UHb        0     2317     -     1 vether2
:
:4/ Ping tests
:testhost:~ # ping -c 2 192.168.79.159
:PING 192.168.79.159 (192.168.79.159): 56 data bytes
:64 bytes from 192.168.79.159: icmp_seq=0 ttl=255 time=1.297 ms
:64 bytes from 192.168.79.159: icmp_seq=1 ttl=255 time=0.639 ms
:--- 192.168.79.159 ping statistics ---
:2 packets transmitted, 2 packets received, 0.0% packet loss
:round-trip min/avg/max/std-dev = 0.639/0.968/1.297/0.329 ms
:
:testhost:~ # ping -c 2 192.168.79.193
:PING 192.168.79.193 (192.168.79.193): 56 data bytes
:64 bytes from 192.168.79.193: icmp_seq=0 ttl=255 time=0.820 ms
:64 bytes from 192.168.79.193: icmp_seq=1 ttl=255 time=0.617 ms
:--- 192.168.79.193 ping statistics ---
:2 packets transmitted, 2 packets received, 0.0% packet loss
:round-trip min/avg/max/std-dev = 0.617/0.718/0.820/0.102 ms
:
:testhost:~ # ping -c2 -V1 192.168.79.39
:PING 192.168.79.39 (192.168.79.39): 56 data bytes
:64 bytes from 192.168.79.39: icmp_seq=0 ttl=255 time=0.587 ms
:64 bytes from 192.168.79.39: icmp_seq=1 ttl=255 time=0.633 ms
:--- 192.168.79.39 ping statistics ---
:2 packets transmitted, 2 packets received, 0.0% packet loss
:round-trip min/avg/max/std-dev = 0.587/0.610/0.633/0.023 ms
:
:testhost:~ # ping -c2 -V1 192.168.79.193
:PING 192.168.79.193 (192.168.79.193): 56 data bytes
:--- 192.168.79.193 ping statistics ---
:2 packets transmitted, 0 packets received, 100.0% packet loss
:
:5/ Arp tables
:testhost:~ # arp -na
:Host                                 Ethernet Address   Netif Expire     Flags
:192.168.79.39                        08:00:27:2c:87:f2    em0 permanent  l
:192.168.79.123                       70:5a:b6:af:a0:42    em0 19m54s
:192.168.79.159                       08:00:27:36:20:e8    em0 14m47s
:192.168.79.193                       fe:e1:ba:d0:45:3b    em0 16m18s
:192.168.79.254                       2c:76:8a:30:2b:00    em0 20m0s
:testhost:~ # arp -nV1 -a
:Host                                 Ethernet Address   Netif Expire     Flags
:192.168.79.39                        08:00:27:2c:87:f2    em1 15m33s
:192.168.79.159                       08:00:27:36:20:e8    em1 permanent  l
:192.168.79.193                       (incomplete)         em1 expired
:192.168.79.254                       2c:76:8a:30:2b:00    em1 19m59s
:testhost:~ # arp -nV2 -a
:Host                                 Ethernet Address   Netif Expire     Flags
:192.168.79.39                        08:00:27:2c:87:f2 vether2 14m6s
:192.168.79.193                       fe:e1:ba:d0:45:3b vether2 permanent  l
:192.168.79.254                       2c:76:8a:30:2b:00 vether2 20m0s
:
:6/ tcpdump on the vether side 
:  On one terminal : # ping -V1 192.168.79.193
:  On another terminal :
:testhost:~ # tcpdump -neli vether2 arp | grep 192.168.79.193
:tcpdump: listening on vether2, link-type EN10MB
:12:14:18.050311 08:00:27:36:20:e8 ff:ff:ff:ff:ff:ff 0806 42: arp who-has 
192.168.79.193 tell 192.168.79.159
:12:14:19.054795 08:00:27:36:20:e8 ff:ff:ff:ff:ff:ff 0806 42: arp who-has 
192.168.79.193 tell 192.168.79.159
:12:14:20.054016 08:00:27:36:20:e8 ff:ff:ff:ff:ff:ff 0806 42: arp who-has 
192.168.79.193 tell 192.168.79.159
:
:Thanks for reading that far :)
:
:
:Claer
:

-- 
Boy, n.:
        A noise with dirt on it.

Reply via email to